Ejemplo n.º 1
0
def collect_addon_js(node,
                     visited=None,
                     filename='files.js',
                     config_entry='files'):
    """Collect JavaScript includes for all add-ons implementing HGrid views.

    :return list: List of JavaScript include paths

    """
    # NOTE: must coerce to list so it is JSON-serializable
    visited = visited or []
    visited.append(node._id)
    js = set()
    for addon in node.get_addons():
        # JS modules configured in each addon's __init__ file
        js = js.union(addon.config.include_js.get(config_entry, []))
        # Webpack bundle
        js_path = paths.resolve_addon_path(addon.config, filename)
        if js_path:
            js.add(js_path)
    for each in node.nodes:
        if each._id not in visited:
            visited.append(each._id)
            js = js.union(collect_addon_js(each, visited=visited))
    return js
Ejemplo n.º 2
0
def collect_node_config_js(addons):
    """Collect webpack bundles for each of the addons' node-cfg.js modules. Return
    the URLs for each of the JS modules to be included on the node addons config page.

    :param list addons: List of node's addon config records.
    """
    js_modules = []
    for addon in addons:
        js_path = paths.resolve_addon_path(addon.config, 'node-cfg.js')
        if js_path:
            js_modules.append(js_path)
    return js_modules
Ejemplo n.º 3
0
def collect_user_config_js(addon_configs):
    """Collect webpack bundles for each of the addons' user-cfg.js modules. Return
    the URLs for each of the JS modules to be included on the user addons config page.

    :param list addons: List of user's addon config records.
    """
    js_modules = []
    for addon_config in addon_configs:
        js_path = paths.resolve_addon_path(addon_config, "user-cfg.js")
        if js_path:
            js_modules.append(js_path)
    return js_modules
Ejemplo n.º 4
0
def collect_user_config_js(addon_configs):
    """Collect webpack bundles for each of the addons' user-cfg.js modules. Return
    the URLs for each of the JS modules to be included on the user addons config page.

    :param list addons: List of user's addon config records.
    """
    js_modules = []
    for addon_config in addon_configs:
        js_path = paths.resolve_addon_path(addon_config, 'user-cfg.js')
        if js_path:
            js_modules.append(js_path)
    return js_modules
Ejemplo n.º 5
0
def collect_addon_js(node, visited=None, filename='files.js', config_entry='files'):
    """Collect JavaScript includes for all add-ons implementing HGrid views.

    :return list: List of JavaScript include paths

    """
    js = []
    for addon_config in settings.ADDONS_AVAILABLE_DICT.values():
        # JS modules configured in each addon's __init__ file
        js.extend(addon_config.include_js.get(config_entry, []))
        # Webpack bundle
        js_path = paths.resolve_addon_path(addon_config, filename)
        if js_path:
            js.append(js_path)
    return js
Ejemplo n.º 6
0
def collect_addon_js(node, visited=None, filename='files.js', config_entry='files'):
    """Collect JavaScript includes for all add-ons implementing HGrid views.

    :return list: List of JavaScript include paths

    """
    js = []
    for addon_config in settings.ADDONS_AVAILABLE_DICT.values():
        # JS modules configured in each addon's __init__ file
        js.extend(addon_config.include_js.get(config_entry, []))
        # Webpack bundle
        js_path = paths.resolve_addon_path(addon_config, filename)
        if js_path:
            js.append(js_path)
    return js
Ejemplo n.º 7
0
def collect_addon_js(node, visited=None, filename='files.js', config_entry='files'):
    """Collect JavaScript includes for all add-ons implementing HGrid views.

    :return list: List of JavaScript include paths

    """
    # NOTE: must coerce to list so it is JSON-serializable
    visited = visited or []
    visited.append(node._id)
    js = set()
    for addon in node.get_addons():
        # JS modules configured in each addon's __init__ file
        js = js.union(addon.config.include_js.get(config_entry, []))
        # Webpack bundle
        js_path = paths.resolve_addon_path(addon.config, filename)
        if js_path:
            js.add(js_path)
    for each in node.nodes:
        if each._id not in visited:
            visited.append(each._id)
            js = js.union(collect_addon_js(each, visited=visited))
    return js