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);
});