# HG changeset patch # User Marcin Lulek # Date 2016-07-05 15:01:04 # Node ID 379025d6635251b05e1d22561a7d356fa515a5a7 # Parent 21804de5d24c30f68b81b57688ebc8f591a952e5 frontend: prepare for plugin registration and life-cycle handling diff --git a/rhodecode/lib/plugins/utils.py b/rhodecode/lib/plugins/utils.py --- a/rhodecode/lib/plugins/utils.py +++ b/rhodecode/lib/plugins/utils.py @@ -23,8 +23,6 @@ def get_plugin_settings(prefix, settings """ Returns plugin settings. Use:: - - :param prefix: :param settings: :return: @@ -45,21 +43,15 @@ def register_rhodecode_plugin(config, pl 'javascript': None, 'static': None, 'css': None, - 'top_nav': None, + 'nav': None, 'fulltext_indexer': None, 'sqlalchemy_migrations': None, 'default_values_setter': None, - 'resource_types': [], - 'url_gen': None + 'url_gen': None, + 'template_hooks': {} } config.registry.rhodecode_plugins[plugin_name].update( plugin_config) - # inform RC what kind of resource types we have available - # so we can avoid failing when a plugin is removed but data - # is still present in the db - if plugin_config.get('resource_types'): - config.registry.resource_types.extend( - plugin_config['resource_types']) config.action( 'register_rhodecode_plugin={}'.format(plugin_name), register) diff --git a/rhodecode/public/js/src/rhodecode.js b/rhodecode/public/js/src/rhodecode.js --- a/rhodecode/public/js/src/rhodecode.js +++ b/rhodecode/public/js/src/rhodecode.js @@ -397,5 +397,4 @@ function offsetScroll(element, offset){ } collapsableContent(); - $.Topic('/plugins/__REGISTER__').prepare({}); }); diff --git a/rhodecode/templates/base/plugins_base.html b/rhodecode/templates/base/plugins_base.html new file mode 100644 --- /dev/null +++ b/rhodecode/templates/base/plugins_base.html @@ -0,0 +1,14 @@ +<% +from pyramid.renderers import render as pyramid_render +from pyramid.threadlocal import get_current_registry, get_current_request +pyramid_registry = get_current_registry() +%> +% for plugin, config in pyramid_registry.rhodecode_plugins.items(): +% if config['template_hooks'].get('plugin_init_template'): +${pyramid_render(config['template_hooks'].get('plugin_init_template'), +{'config':config}, request=get_current_request(), package='rc_ae')|n} +% endif +% endfor + diff --git a/rhodecode/templates/base/root.html b/rhodecode/templates/base/root.html --- a/rhodecode/templates/base/root.html +++ b/rhodecode/templates/base/root.html @@ -140,6 +140,8 @@ <%def name="head_extra()"> ${self.head_extra()} + <%include file="/base/plugins_base.html"/> + ## extra stuff %if c.pre_code: ${c.pre_code|n}