diff --git a/app-loader/app-loader.coffee b/app-loader/app-loader.coffee index b93e09e7..9f7e90af 100644 --- a/app-loader/app-loader.coffee +++ b/app-loader/app-loader.coffee @@ -35,7 +35,11 @@ loadStylesheet = (path) -> loadPlugin = (pluginPath) -> return new Promise (resolve, reject) -> success = (plugin) -> - window.taigaContribPlugins.push(plugin) + if plugin.isPack + for item in plugin.plugins + window.taigaContribPlugins.push(item) + else + window.taigaContribPlugins.push(plugin) if plugin.css loadStylesheet(plugin.css) @@ -47,7 +51,7 @@ loadPlugin = (pluginPath) -> resolve() fail = () -> - console.error("error loading", pluginPath); + console.error("error loading", pluginPath) $.getJSON(pluginPath).then(success, fail) diff --git a/scripts/generated-packed-plugins.py b/scripts/generated-packed-plugins.py new file mode 100644 index 00000000..57d24297 --- /dev/null +++ b/scripts/generated-packed-plugins.py @@ -0,0 +1,38 @@ +import os +import json + +plugins = [] +for f in os.listdir("./dist/plugins"): + if f != "packed": + plugins.append(json.load(open("./dist/plugins/{}/{}.json".format(f,f)))) + +js = "" +css = "" +for plugin in plugins: + if "js" in plugin: + js += open("./dist{}".format(plugin['js']), "r").read() + del plugin["js"] + if "css" in plugin: + js += open("./dist{}".format(plugin['css']), "r").read() + del plugin["css"] + +os.makedirs("./dist/plugins/packed", exist_ok=True) + +plugins_js_file = open("./dist/plugins/packed/plugins.js", "w") +plugins_js_file.write(js) +plugins_js_file.close() + +plugins_css_file = open("./dist/plugins/packed/plugins.css", "w") +plugins_css_file.write(css) +plugins_css_file.close() + +packedPlugin = { + "isPack": True, + "js": "/plugins/packed/plugins.js", + "css": "/plugins/packed/plugins.css", + "plugins": plugins +} + +plugins_json_file = open("./dist/plugins/packed/packed.json", "w") +json.dump(packedPlugin, plugins_json_file) +plugins_json_file.close()