annotate client/Makefile @ 289:aee175e3f82c usermanagement

feat: Listing of users on management page Prototypical implementation of listing of all users on management page implemented. Data is fetched before route is entered. Unless the data isn't available the route is not changed. After data is available currently a simple unstyled table with data is rendered.
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 31 Jul 2018 12:02:48 +0200
parents 3d9341f6da4e
children bba166f0326e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
141
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
1 # On OSX the PATH variable isn't exported unless "SHELL" is also set, see: http://stackoverflow.com/a/25506676
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
2 SHELL = /bin/bash
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
3 NODE_BINDIR = ./node_modules/.bin
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
4 export PATH := $(NODE_BINDIR):$(PATH)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
5
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
6 # Where to write the files generated by this makefile.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
7 OUTPUT_DIR = src
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
8
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
9 # Available locales for the app.
159
3d9341f6da4e feat: Locale of browser determines the default language
Thomas Junk <thomas.junk@intevation.de>
parents: 141
diff changeset
10 LOCALES = de_AT en_GB
141
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
11
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
12 # Name of the generated .po files for each available locale.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
13 LOCALE_FILES ?= $(patsubst %,$(OUTPUT_DIR)/locale/%/LC_MESSAGES/app.po,$(LOCALES))
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
14
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
15 GETTEXT_HTML_SOURCES = $(shell find $(OUTPUT_DIR) -name '*.vue' -o -name '*.html' 2> /dev/null)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
16 GETTEXT_JS_SOURCES = $(shell find $(OUTPUT_DIR) -name '*.vue' -o -name '*.js')
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
17
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
18 # Makefile Targets
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
19 .PHONY: clean makemessages translations
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
20
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
21 clean:
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
22 rm -f /tmp/template.pot $(OUTPUT_DIR)/translations.json
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
23
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
24 makemessages: /tmp/template.pot
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
25
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
26 translations: ./$(OUTPUT_DIR)/translations.json
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
27
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
28 # Create a main .pot template, then generate .po files for each available language.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
29 # Thanx to Systematic: https://github.com/Polyconseil/systematic/blob/866d5a/mk/main.mk#L167-L183
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
30 /tmp/template.pot: $(GETTEXT_HTML_SOURCES)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
31 # `dir` is a Makefile built-in expansion function which extracts the directory-part of `$@`.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
32 # `$@` is a Makefile automatic variable: the file name of the target of the rule.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
33 # => `mkdir -p /tmp/`
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
34 mkdir -p $(dir $@)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
35 which gettext-extract
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
36 # Extract gettext strings from templates files and create a POT dictionary template.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
37 gettext-extract --attribute v-translate --quiet --output $@ $(GETTEXT_HTML_SOURCES)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
38 # Extract gettext strings from JavaScript files.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
39 xgettext --language=JavaScript --keyword=npgettext:1c,2,3 \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
40 --from-code=utf-8 --join-existing --no-wrap \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
41 --package-name=$(shell node -e "console.log(require('./package.json').name);") \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
42 --package-version=$(shell node -e "console.log(require('./package.json').version);") \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
43 --output $@ $(GETTEXT_JS_SOURCES)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
44 # Generate .po files for each available language.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
45 @for lang in $(LOCALES); do \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
46 export PO_FILE=$(OUTPUT_DIR)/locale/$$lang/LC_MESSAGES/app.po; \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
47 echo "msgmerge --update $$PO_FILE $@"; \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
48 mkdir -p $$(dirname $$PO_FILE); \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
49 [ -f $$PO_FILE ] && msgmerge --lang=$$lang --update $$PO_FILE $@ || msginit --no-translator --locale=$$lang --input=$@ --output-file=$$PO_FILE; \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
50 msgattrib --no-wrap --no-obsolete -o $$PO_FILE $$PO_FILE; \
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
51 done;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
52
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
53 $(OUTPUT_DIR)/translations.json: clean /tmp/template.pot
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
54 mkdir -p $(OUTPUT_DIR)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
55 gettext-compile --output $@ $(LOCALE_FILES)