Support a `url` field in plugin metadata

This commit is contained in:
Robin Ward 2015-02-06 18:08:57 -05:00
parent 3d7b534564
commit 7dea65122e
8 changed files with 21 additions and 4 deletions

View File

@ -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"}}
</ul>

View File

@ -20,8 +20,8 @@
{{#each plugin in controller}}
<tr>
<td>
{{#if plugin.admin_route}}
{{#link-to plugin.admin_route.full_location}}{{plugin.name}}{{/link-to}}
{{#if plugin.url}}
<a {{bind-attr href=plugin.url}} target="_blank">{{plugin.name}}</a>
{{else}}
{{plugin.name}}
{{/if}}
@ -34,3 +34,6 @@
{{else}}
<p>{{i18n "admin.plugins.none_installed"}}</p>
{{/if}}
<p><a href="https://meta.discourse.org/t/install-a-plugin/19157">{{i18n "admin.plugins.howto"}}</a></p>

View File

@ -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

View File

@ -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"

View File

@ -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)

View File

@ -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"

View File

@ -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__)

View File

@ -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