diff --git a/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 b/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 index 22fbed3..65c4833 100644 --- a/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 +++ b/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 @@ -1,7 +1,7 @@ import showModal from 'discourse/lib/show-modal'; import Query from 'discourse/plugins/discourse-data-explorer/discourse/models/query'; -export default Ember.Controller.extend({ +export default Ember.ArrayController.extend({ selectedItem: null, actions: { @@ -12,9 +12,13 @@ export default Ember.Controller.extend({ dummy() {}, create() { - var newQuery = Query.create({name: this.get('newQueryName')}); - //var newQuery = this.store.createRecord('query', {name: this.get('newQueryName')}); - newQuery.save(); + const self = this; + var newQuery = this.store.createRecord('query', {name: this.get('newQueryName')}); + newQuery.save().then(function(result) { + self.pushObject(result.target); + self.set('selectedItem', result.target); + debugger; + }); }, importQuery() { diff --git a/assets/javascripts/discourse/models/query.js.es6 b/assets/javascripts/discourse/models/query.js.es6 index 1f71f82..ac00458 100644 --- a/assets/javascripts/discourse/models/query.js.es6 +++ b/assets/javascripts/discourse/models/query.js.es6 @@ -14,7 +14,4 @@ const Query = RestModel.extend({ } }); -console.log('query model loaded'); - -Discourse.Query = Query; export default Query; diff --git a/assets/javascripts/discourse/templates/admin/plugins-explorer-show.hbs b/assets/javascripts/discourse/templates/admin/plugins-explorer-show.hbs index a8180ba..6edc411 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-explorer-show.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-explorer-show.hbs @@ -1,6 +1,21 @@ {{#if model}} -

{{model.name}}

-
{{model.description}}
- {{textarea value=model.sql}} +
+ {{#if editName}} + {{text-field value=model.name}} + {{else}} +

{{model.name}}

+ {{d-button action="editName" icon="pencil" class="no-text"}} + {{/if}} +
+
+ {{#if editName}} + {{textarea value=model.description}} + {{else}} + {{model.description}} + {{/if}} +
+
+ {{textarea value=model.sql}} +
{{d-button action="run" label="explorer.run"}} {{/if}} diff --git a/assets/javascripts/discourse/templates/admin/plugins-explorer.hbs b/assets/javascripts/discourse/templates/admin/plugins-explorer.hbs index 23ab322..30fb60d 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-explorer.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-explorer.hbs @@ -1,9 +1,9 @@ +

Queries

{{text-field value=newQueryName placeholderKey="explorer.create_placeholder"}} {{d-button action="create" label="explorer.create" icon="plus"}} {{d-button action="importQuery" label="explorer.import.label" icon="upload" class="import-button"}} - -

Queries

- +
+
@@ -19,7 +19,12 @@ {{/each}}
Name
- -{{render "admin/plugins-explorer-show" selectedItem}} - -{{! results }} + +
+
+ {{render "admin/plugins-explorer-show" selectedItem}} +
+
+
+ {{results}} +
diff --git a/assets/stylesheets/tagging.scss b/assets/stylesheets/tagging.scss index 301aa41..ef5871a 100644 --- a/assets/stylesheets/tagging.scss +++ b/assets/stylesheets/tagging.scss @@ -1,68 +1,20 @@ -.topic-title-outlet.choose-tags { - margin-left: 25px; - margin-top: 3px; +.query-list { + overflow-y: scroll; + max-height: 15em; } -.tag-cloud { - .discourse-tag { - display: inline-block; - color: #333 !important; - } +.query-edit .sql textarea { + width: 800px; + height: 100px; + font-family: monospace; + border-color: $tertiary; } -.extra-info-wrapper { - .discourse-tag { - -webkit-animation: fadein .7s; - animation: fadein .7s; - } +.query-edit .desc textarea { + width: 200px; } - -.add-tags .select2 { - margin: 0; -} - -.discourse-tag-count { - font-size: 0.8em; - color: #999; -} - -.select2-result-label .discourse-tag { - margin-right: 0; -} - -.discourse-tag { - padding: 0; - margin: 0 5px 0 0; - font-size: 0.857em; - - /* !important is needed in the select2 widget to overwrite default styles */ - color: #999 !important; - border: 0 !important; - border-radius: 0 !important; - background-color: transparent !important; - font-weight: bold !important; - line-height: 1.4em !important; -} - -.list-tags { - display: inline; - margin-left: 4px; -} - -.tag-chooser { - width: 500px; - margin: 5px 0; -} - -.tag-notification-menu { - float: right; - margin-bottom: 10px; -} -.tag-notification-menu .dropdown-menu { - right: 0; - top: 30px; - bottom: auto; - left: auto; +.query-list, .query-edit, .query-results { + margin: 10px 0; } diff --git a/plugin.rb b/plugin.rb index d4b9112..5b15886 100644 --- a/plugin.rb +++ b/plugin.rb @@ -240,7 +240,7 @@ SQL def create # guardian.ensure_can_create_explorer_query! - query = DataExplorer::Query.from_hash params.permit(:name, :sql, :defaults, :description) + query = DataExplorer::Query.from_hash params.require(:query) # Set the ID _only_ if undeleting if params[:recover] query.id = params[:id].to_i @@ -252,8 +252,9 @@ SQL def update query = DataExplorer::Query.find(params[:id].to_i) + hash = params.require(:query) [:name, :sql, :defaults, :description].each do |sym| - query.send("#{sym}=", params[sym]) if params[sym] + query.send("#{sym}=", params[sym]) if hash[sym] end query.save @@ -321,7 +322,7 @@ SQL DataExplorer::Engine.routes.draw do root to: "query#index" get 'queries' => "query#index" - # POST /query -> explorer#create + post 'queries' => "query#create" # GET /query/:id -> explorer#show # PUT /query/:id -> explorer#update # DELETE /query/:id -> explorer#destroy