diff --git a/app/assets/javascripts/admin/helpers/admin_helpers.js b/app/assets/javascripts/admin/helpers/admin_helpers.js new file mode 100644 index 00000000000..be55436e88c --- /dev/null +++ b/app/assets/javascripts/admin/helpers/admin_helpers.js @@ -0,0 +1,14 @@ +/** + Inserts a rich code editor + + @method aceEditor + @for Handlebars +**/ +Ember.Handlebars.registerHelper('aceEditor', function(options) { + var hash = options.hash, + types = options.hashTypes; + + Discourse.Utilities.normalizeHash(hash, types); + + return Ember.Handlebars.helpers.view.call(this, Discourse.AceEditorView, options); +}); \ No newline at end of file diff --git a/app/assets/javascripts/admin/templates/customize.js.handlebars b/app/assets/javascripts/admin/templates/customize.js.handlebars index 9b544ecbb9a..85e5dae271c 100644 --- a/app/assets/javascripts/admin/templates/customize.js.handlebars +++ b/app/assets/javascripts/admin/templates/customize.js.handlebars @@ -26,10 +26,10 @@ {{#with selectedItem}} {{textField class="style-name" value=name}} {{#if view.headerActive}} - {{view Discourse.AceEditorView contentBinding="header" mode="html"}} + {{aceEditor content=header mode="html"}} {{/if}} {{#if view.stylesheetActive}} - {{view Discourse.AceEditorView contentBinding="stylesheet" mode="css"}} + {{aceEditor content=stylesheet mode="css"}} {{/if}} {{/with}}
diff --git a/app/assets/javascripts/admin/templates/dashboard.js.handlebars b/app/assets/javascripts/admin/templates/dashboard.js.handlebars index 85b04aab9dd..02b07be8dcc 100644 --- a/app/assets/javascripts/admin/templates/dashboard.js.handlebars +++ b/app/assets/javascripts/admin/templates/dashboard.js.handlebars @@ -91,7 +91,7 @@ {{#unless loading}} - {{ render 'admin_report_trust_levels' users_by_trust_level }} + {{ render 'admin/templates/reports/trust_levels_report' users_by_trust_level tagName="tbody" }} {{/unless}} @@ -162,14 +162,14 @@ {{#unless loading}} - {{ render 'admin_report_visits' visits }} + {{ render 'admin/templates/reports/per_day_counts_report' visits tagName="tbody"}} {{/unless}}
- {{ render admin_github_commits githubCommits }} + {{ render 'admin/templates/commits' githubCommits }}
diff --git a/app/assets/javascripts/admin/templates/site_content_edit.js.handlebars b/app/assets/javascripts/admin/templates/site_content_edit.js.handlebars index 1c182978cfa..20a2e3035e7 100644 --- a/app/assets/javascripts/admin/templates/site_content_edit.js.handlebars +++ b/app/assets/javascripts/admin/templates/site_content_edit.js.handlebars @@ -11,11 +11,11 @@ {{/if}} {{#if html}} - {{view Discourse.AceEditorView contentBinding="model.content" mode="html"}} + {{aceEditor content=model.content mode="html"}} {{/if}} {{#if css}} - {{view Discourse.AceEditorView contentBinding="model.content" mode="css"}} + {{aceEditor content=model.content mode="css"}} {{/if}} diff --git a/app/assets/javascripts/admin/views/ace_editor_view.js b/app/assets/javascripts/admin/views/ace_editor_view.js index b3b2451427b..fa3e7ed5cf3 100644 --- a/app/assets/javascripts/admin/views/ace_editor_view.js +++ b/app/assets/javascripts/admin/views/ace_editor_view.js @@ -34,31 +34,25 @@ Discourse.AceEditorView = Discourse.View.extend({ }, didInsertElement: function() { - var initAce, - _this = this; - initAce = function() { - _this.editor = ace.edit(_this.$('.ace')[0]); - _this.editor.setTheme("ace/theme/chrome"); - _this.editor.setShowPrintMargin(false); - _this.editor.getSession().setMode("ace/mode/" + (_this.get('mode'))); - return _this.editor.on("change", function(e) { - /* amending stuff as you type seems a bit out of scope for now - can revisit after launch - changes = @get('changes') - unless changes - changes = [] - @set('changes', changes) - changes.push e.data - */ - _this.skipContentChangeEvent = true; - _this.set('content', _this.editor.getSession().getValue()); - _this.skipContentChangeEvent = false; + var aceEditorView = this; + + var initAce = function() { + aceEditorView.editor = ace.edit(aceEditorView.$('.ace')[0]); + aceEditorView.editor.setTheme("ace/theme/chrome"); + aceEditorView.editor.setShowPrintMargin(false); + aceEditorView.editor.getSession().setMode("ace/mode/" + (aceEditorView.get('mode'))); + aceEditorView.editor.on("change", function(e) { + aceEditorView.skipContentChangeEvent = true; + aceEditorView.set('content', aceEditorView.editor.getSession().getValue()); + aceEditorView.skipContentChangeEvent = false; }); }; + if (window.ace) { - return initAce(); + initAce(); } else { - return $LAB.script('http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js').wait(initAce); + $LAB.script('http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js').wait(initAce); } } }); diff --git a/app/assets/javascripts/admin/views/admin_github_commits_view.js b/app/assets/javascripts/admin/views/admin_github_commits_view.js deleted file mode 100644 index 2f5511bca44..00000000000 --- a/app/assets/javascripts/admin/views/admin_github_commits_view.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - A view for showing commits to the discourse repo. - - @class AdminGithubCommitsView - @extends Discourse.View - @namespace Discourse - @module Discourse -**/ -Discourse.AdminGithubCommitsView = Discourse.View.extend({ - templateName: 'admin/templates/commits' -}); \ No newline at end of file diff --git a/app/assets/javascripts/admin/views/admin_groups_view.js b/app/assets/javascripts/admin/views/admin_groups_view.js deleted file mode 100644 index 09243fcb42a..00000000000 --- a/app/assets/javascripts/admin/views/admin_groups_view.js +++ /dev/null @@ -1,4 +0,0 @@ -Discourse.AdminGroupsView = Discourse.View.extend({ -}); - - diff --git a/app/assets/javascripts/admin/views/report/admin_report_trust_levels_view.js b/app/assets/javascripts/admin/views/report/admin_report_trust_levels_view.js deleted file mode 100644 index b2b902bdcb8..00000000000 --- a/app/assets/javascripts/admin/views/report/admin_report_trust_levels_view.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - The view that displays the number of users at each trust level - on the admin dashboard. - - @class AdminReportTrustLevelsView - @extends Discourse.View - @namespace Discourse - @module Discourse -**/ -Discourse.AdminReportTrustLevelsView = Discourse.View.extend({ - templateName: 'admin/templates/reports/trust_levels_report', - tagName: 'tbody' -}); \ No newline at end of file diff --git a/app/assets/javascripts/admin/views/report/admin_report_visits_view.js b/app/assets/javascripts/admin/views/report/admin_report_visits_view.js deleted file mode 100644 index 31ab82c0559..00000000000 --- a/app/assets/javascripts/admin/views/report/admin_report_visits_view.js +++ /dev/null @@ -1,4 +0,0 @@ -Discourse.AdminReportVisitsView = Discourse.View.extend({ - templateName: 'admin/templates/reports/per_day_counts_report', - tagName: 'tbody' -}); \ No newline at end of file diff --git a/app/assets/javascripts/discourse/components/utilities.js b/app/assets/javascripts/discourse/components/utilities.js index 8cce203e6e9..2a08c38cea6 100644 --- a/app/assets/javascripts/discourse/components/utilities.js +++ b/app/assets/javascripts/discourse/components/utilities.js @@ -17,6 +17,18 @@ Discourse.Utilities = { return size; }, + /** + Allows us to supply bindings without "binding" to a helper. + **/ + normalizeHash: function(hash, hashTypes) { + for (var prop in hash) { + if (hashTypes[prop] === 'ID') { + hash[prop + 'Binding'] = hash[prop]; + delete hash[prop]; + } + } + }, + categoryUrlId: function(category) { if (!category) return ""; var id = Em.get(category, 'id'); diff --git a/app/assets/javascripts/discourse/helpers/application_helpers.js b/app/assets/javascripts/discourse/helpers/application_helpers.js index d9c4cc756e0..9318181a28a 100644 --- a/app/assets/javascripts/discourse/helpers/application_helpers.js +++ b/app/assets/javascripts/discourse/helpers/application_helpers.js @@ -1,15 +1,3 @@ -/** - Allows us to supply bindings without "binding" to a helper. -**/ -function normalizeHash(hash, hashTypes) { - for (var prop in hash) { - if (hashTypes[prop] === 'ID') { - hash[prop + 'Binding'] = hash[prop]; - delete hash[prop]; - } - } -} - /** Breaks up a long string @@ -78,7 +66,7 @@ Ember.Handlebars.registerHelper('textField', function(options) { var hash = options.hash, types = options.hashTypes; - normalizeHash(hash, types); + Discourse.Utilities.normalizeHash(hash, types); return Ember.Handlebars.helpers.view.call(this, Discourse.TextField, options); }); @@ -93,7 +81,7 @@ Ember.Handlebars.registerHelper('inputTip', function(options) { var hash = options.hash, types = options.hashTypes; - normalizeHash(hash, types); + Discourse.Utilities.normalizeHash(hash, types); return Ember.Handlebars.helpers.view.call(this, Discourse.InputTipView, options); }); @@ -108,7 +96,7 @@ Ember.Handlebars.registerHelper('popupInputTip', function(options) { var hash = options.hash, types = options.hashTypes; - normalizeHash(hash, types); + Discourse.Utilities.normalizeHash(hash, types); return Ember.Handlebars.helpers.view.call(this, Discourse.PopupInputTipView, options); });