diff --git a/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 b/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 index f7085aa..1ef81a2 100644 --- a/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 +++ b/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 @@ -2,10 +2,11 @@ import showModal from 'discourse/lib/show-modal'; import Query from 'discourse/plugins/discourse-data-explorer/discourse/models/query'; import { popupAjaxError } from 'discourse/lib/ajax-error'; +const NoQuery = Query.create({name: "No queries", fake: true}); + export default Ember.ArrayController.extend({ queryParams: { selectedQueryId: "id" }, selectedQueryId: null, - results: null, showResults: false, loading: false, @@ -17,15 +18,13 @@ export default Ember.ArrayController.extend({ selectedItem: function() { const _id = this.get('selectedQueryId'); const id = parseInt(_id); - return this.get('content').find(function(q) { + const item = this.get('content').find(function(q) { return q.get('id') === id; }); + return item || NoQuery; }.property('selectedQueryId'), - clearResults: function() { - this.set('showResults', false); - this.set('results', null); - }.observes('selectedQueryId'), + results: Em.computed.alias('selectedItem.results'), addCreatedRecord(record) { this.pushObject(record); @@ -103,7 +102,6 @@ export default Ember.ArrayController.extend({ query.setProperties(result.getProperties(Query.updatePropertyNames)); query.markNotDirty(); self.set('editName', false); - self.set('results', null); }).catch(popupAjaxError).finally(function() { self.set('loading', false); }); @@ -138,6 +136,7 @@ export default Ember.ArrayController.extend({ } this.set('loading', true); + this.set('showResults', false); Discourse.ajax("/admin/plugins/explorer/queries/" + this.get('selectedItem.id') + "/run", { type: "POST", data: { diff --git a/assets/javascripts/discourse/models/query.js.es6 b/assets/javascripts/discourse/models/query.js.es6 index 2c965c3..0d85887 100644 --- a/assets/javascripts/discourse/models/query.js.es6 +++ b/assets/javascripts/discourse/models/query.js.es6 @@ -4,6 +4,7 @@ let Query; Query = RestModel.extend({ dirty: false, params: {}, + results: null, _init: function() { this._super(); diff --git a/assets/javascripts/discourse/templates/admin/plugins-explorer.hbs b/assets/javascripts/discourse/templates/admin/plugins-explorer.hbs index afedbdb..5ef9446 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-explorer.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-explorer.hbs @@ -22,43 +22,47 @@
-
- {{partial "admin/plugins-explorer-show" model=selectedItem}} -
+{{#if selectedItem.fake}} + {{i18n "explorer.no_queries"}} {{i18n "explorer.no_queries_hook"}} +{{else}} +
+ {{partial "admin/plugins-explorer-show" model=selectedItem}} +
-
- {{#if selectedItem.param_names}} -
-
- {{d-button action="saveDefaults" label="explorer.save_params"}} - {{d-button action="resetParams" label="explorer.reset_params"}} -
- {{#each selectedItem.param_names as |pname|}} -
- {{param-field params=selectedItem.params pname=pname}} - {{pname}} +
+ {{#if selectedItem.param_names}} +
+
+ {{d-button action="saveDefaults" label="explorer.save_params"}} + {{d-button action="resetParams" label="explorer.reset_params"}}
- {{/each}} + {{#each selectedItem.param_names as |pname|}} +
+ {{param-field params=selectedItem.params pname=pname}} + {{pname}} +
+ {{/each}} +
+ {{/if}} +
+ +
+ {{d-button action="run" label="explorer.run" disabled=runDisabled}} +
+ +
+{{/if}} +{{conditional-loading-spinner condition=loading}} +{{#unless selectedItem.fake}} + {{#if results}} +
+ {{#if showResults}} + {{query-result query=selectedItem content=results}} + {{else}} + {{#each results.errors as |err|}} +
{{~err}}
+ {{/each}} + {{/if}}
{{/if}} -
- -
- {{d-button action="run" label="explorer.run" disabled=runDisabled}} -
- -
- -{{conditional-loading-spinner condition=loading}} - -{{#if results}} -
- {{#if showResults}} - {{query-result query=selectedItem content=results}} - {{else}} - {{#each results.errors as |err|}} -
{{~err}}
- {{/each}} - {{/if}} -
-{{/if}} +{{/unless}} diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 6b747d4..a1e373f 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -41,3 +41,5 @@ en: save_params: "Set Defaults" reset_params: "Reset" https_warning: "Use of the Data Explorer on sites not protected by HTTPS is discouraged. Please be careful to not retrieve sensitive information over insecure links." + no_queries: "There are no queries. Why not " + no_queries_hook: "create one?"