diff --git a/app/assets/javascripts/admin/templates/admin.hbs b/app/assets/javascripts/admin/templates/admin.hbs index 1838e268d79..a651826c86c 100644 --- a/app/assets/javascripts/admin/templates/admin.hbs +++ b/app/assets/javascripts/admin/templates/admin.hbs @@ -23,7 +23,7 @@ {{admin-nav-item route='admin.api' label='admin.api.title'}} {{admin-nav-item route='admin.backups' label='admin.backups.title'}} {{/if}} - {{admin-nav-item route='adminPlugins.index' label='admin.plugins.title'}} + {{admin-nav-item route='adminPlugins' label='admin.plugins.title'}} {{plugin-outlet "admin-menu" tagName="li"}} diff --git a/app/assets/javascripts/admin/templates/plugins-index.hbs b/app/assets/javascripts/admin/templates/plugins-index.hbs index e6648b975d1..1686e34b9f6 100644 --- a/app/assets/javascripts/admin/templates/plugins-index.hbs +++ b/app/assets/javascripts/admin/templates/plugins-index.hbs @@ -20,8 +20,8 @@ {{#each plugin in controller}} - {{#if plugin.admin_route}} - {{#link-to plugin.admin_route.full_location}}{{plugin.name}}{{/link-to}} + {{#if plugin.url}} + {{plugin.name}} {{else}} {{plugin.name}} {{/if}} @@ -34,3 +34,6 @@ {{else}}

{{i18n "admin.plugins.none_installed"}}

{{/if}} + +

{{i18n "admin.plugins.howto"}}

+ diff --git a/app/serializers/admin_plugin_serializer.rb b/app/serializers/admin_plugin_serializer.rb index 28b9eea7baf..2c89c128b51 100644 --- a/app/serializers/admin_plugin_serializer.rb +++ b/app/serializers/admin_plugin_serializer.rb @@ -1,6 +1,7 @@ class AdminPluginSerializer < ApplicationSerializer attributes :name, :version, + :url, :admin_route def name @@ -11,6 +12,14 @@ class AdminPluginSerializer < ApplicationSerializer object.metadata.version end + def url + object.metadata.url + end + + def include_url? + url.present? + end + def admin_route route = object.admin_route return unless route diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 0f3cc76ea62..3d1daeb24e6 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1672,6 +1672,7 @@ en: none_installed: "You don't have any plugins installed." version: "Version" change_settings: "Change Settings" + howto: "How do I install plugins?" backups: title: "Backups" diff --git a/lib/plugin/metadata.rb b/lib/plugin/metadata.rb index 65686ede452..d031e2b2112 100644 --- a/lib/plugin/metadata.rb +++ b/lib/plugin/metadata.rb @@ -2,7 +2,7 @@ module Plugin; end class Plugin::Metadata - FIELDS ||= [:name, :about, :version, :authors] + FIELDS ||= [:name, :about, :version, :authors, :url] attr_accessor *FIELDS def self.parse(text) diff --git a/plugins/lazyYT/plugin.rb b/plugins/lazyYT/plugin.rb index 3bb49aeb996..cf02d90882c 100644 --- a/plugins/lazyYT/plugin.rb +++ b/plugins/lazyYT/plugin.rb @@ -2,6 +2,7 @@ # about: Uses the lazyYT plugin to lazy load Youtube videos # version: 1.0.1 # authors: Arpit Jalan +# url: https://github.com/discourse/discourse/tree/master/plugins/lazyYT # javascript register_asset "javascripts/lazyYT.js" diff --git a/plugins/poll/plugin.rb b/plugins/poll/plugin.rb index a5f0b1fe5af..56abf4f3029 100644 --- a/plugins/poll/plugin.rb +++ b/plugins/poll/plugin.rb @@ -2,6 +2,7 @@ # about: adds poll support to Discourse # version: 0.1 # authors: Vikhyat Korrapati +# url: https://github.com/discourse/discourse/tree/master/plugins/poll load File.expand_path("../poll.rb", __FILE__) diff --git a/spec/components/plugin/metadata_spec.rb b/spec/components/plugin/metadata_spec.rb index 7b8b0880d03..7e922e2a4c6 100644 --- a/spec/components/plugin/metadata_spec.rb +++ b/spec/components/plugin/metadata_spec.rb @@ -9,6 +9,7 @@ describe Plugin::Metadata do # about: about: my plugin # version: 0.1 # authors: Frank Zappa +# url: http://discourse.org some_ruby TEXT @@ -17,6 +18,7 @@ TEXT expect(metadata.about).to eq("about: my plugin") expect(metadata.version).to eq("0.1") expect(metadata.authors).to eq("Frank Zappa") + expect(metadata.url).to eq("http://discourse.org") end end