diff --git a/app/assets/javascripts/admin/templates/email_logs.js.handlebars b/app/assets/javascripts/admin/templates/email_logs.js.handlebars
index a05c63639..ee549c155 100644
--- a/app/assets/javascripts/admin/templates/email_logs.js.handlebars
+++ b/app/assets/javascripts/admin/templates/email_logs.js.handlebars
@@ -1,9 +1,9 @@
- {{view Discourse.TextField valueBinding="controller.testEmailAddress" placeholderKey="admin.email_logs.test_email_address"}}
+ {{textField value=testEmailAddress placeholderKey="admin.email_logs.test_email_address"}}
-
+
{{#if controller.sentTestEmail}}{{i18n admin.email_logs.sent_test}}{{/if}}
@@ -16,9 +16,9 @@
{{i18n admin.email_logs.email_type}} |
- {{#if controller.content.length}}
+ {{#if model.length}}
{{#group}}
- {{#collection contentBinding="controller.content" tagName="tbody" itemTagName="tr"}}
+ {{#collection contentBinding="model" tagName="tbody" itemTagName="tr"}}
{{date view.content.created_at}} |
{{#if view.content.user}}
diff --git a/app/assets/javascripts/admin/templates/groups.js.handlebars b/app/assets/javascripts/admin/templates/groups.js.handlebars
index 89038c43e..ea5070ef1 100644
--- a/app/assets/javascripts/admin/templates/groups.js.handlebars
+++ b/app/assets/javascripts/admin/templates/groups.js.handlebars
@@ -22,7 +22,7 @@
{{#if automatic}}
{{name}}
{{else}}
- {{view Discourse.TextField valueBinding="name" placeholderKey="admin.groups.name_placeholder"}}
+ {{textField value=name placeholderKey="admin.groups.name_placeholder"}}
{{/if}}
{{view Discourse.UserSelector id="group-users" placeholderKey="admin.groups.selector_placeholder" tabindex="1" usernamesBinding="usernames"}}
diff --git a/app/assets/javascripts/admin/templates/site_settings.js.handlebars b/app/assets/javascripts/admin/templates/site_settings.js.handlebars
index dfc10a508..f8e2ceb3e 100644
--- a/app/assets/javascripts/admin/templates/site_settings.js.handlebars
+++ b/app/assets/javascripts/admin/templates/site_settings.js.handlebars
@@ -1,12 +1,12 @@
- {{view Discourse.TextField valueBinding="controller.filter" placeholderKey="type_to_filter"}}
+ {{textField value=filter placeHolderKey="type_to_filter"}}
diff --git a/app/assets/javascripts/admin/templates/users_list.js.handlebars b/app/assets/javascripts/admin/templates/users_list.js.handlebars
index f38da4df6..d7e25942b 100644
--- a/app/assets/javascripts/admin/templates/users_list.js.handlebars
+++ b/app/assets/javascripts/admin/templates/users_list.js.handlebars
@@ -9,13 +9,13 @@
- {{view Discourse.TextField valueBinding="controller.username" placeholderKey="username"}}
+ {{textField value=username placeholderKey="username"}}
{{#if hasSelection}}
-
+
{{/if}}
@@ -49,7 +49,7 @@
{{#each content}}
|
- {{#if controller.showApproval}}
+ {{#if showApproval}}
{{#if can_approve}}
{{view Ember.Checkbox checkedBinding="selected"}}
@@ -67,7 +67,7 @@
| {{{unbound created_at_age}}} |
- {{#if controller.showApproval}}
+ {{#if showApproval}}
{{#if approved}}
{{i18n yes_value}}
diff --git a/app/assets/javascripts/discourse/controllers/user_private_messages_controller.js b/app/assets/javascripts/discourse/controllers/user_private_messages_controller.js
index eea4d849b..83d44e1e6 100644
--- a/app/assets/javascripts/discourse/controllers/user_private_messages_controller.js
+++ b/app/assets/javascripts/discourse/controllers/user_private_messages_controller.js
@@ -9,7 +9,7 @@
Discourse.UserPrivateMessagesController = Discourse.ObjectController.extend({
editPreferences: function() {
- return Discourse.URL.routeTo("/users/" + (this.get('content.username_lower')) + "/preferences");
+ Discourse.URL.routeTo("/users/" + (this.get('content.username_lower')) + "/preferences");
},
composePrivateMessage: function() {
diff --git a/app/assets/javascripts/discourse/helpers/application_helpers.js b/app/assets/javascripts/discourse/helpers/application_helpers.js
index 2054034e6..44d86537e 100644
--- a/app/assets/javascripts/discourse/helpers/application_helpers.js
+++ b/app/assets/javascripts/discourse/helpers/application_helpers.js
@@ -1,3 +1,15 @@
+/**
+ 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
@@ -66,16 +78,27 @@ Ember.Handlebars.registerHelper('textField', function(options) {
var hash = options.hash,
types = options.hashTypes;
- for (var prop in hash) {
- if (types[prop] === 'ID') {
- hash[prop + 'Binding'] = hash[prop];
- delete hash[prop];
- }
- }
+ normalizeHash(hash, types);
return Ember.Handlebars.helpers.view.call(this, Discourse.TextField, options);
});
+/**
+ Inserts a Discourse.InputTipView
+
+ @method inputTip
+ @for Handlebars
+**/
+Ember.Handlebars.registerHelper('inputTip', function(options) {
+ var hash = options.hash,
+ types = options.hashTypes;
+
+ normalizeHash(hash, types);
+
+ return Ember.Handlebars.helpers.view.call(this, Discourse.InputTipView, options);
+});
+
+
/**
Produces a bound link to a category
diff --git a/app/assets/javascripts/discourse/helpers/i18n_helpers.js b/app/assets/javascripts/discourse/helpers/i18n_helpers.js
index 12506cb96..2e3eb8c19 100644
--- a/app/assets/javascripts/discourse/helpers/i18n_helpers.js
+++ b/app/assets/javascripts/discourse/helpers/i18n_helpers.js
@@ -35,17 +35,19 @@ Ember.String.i18n = function(scope, options) {
@for Handlebars
**/
Ember.Handlebars.registerHelper('countI18n', function(key, options) {
- var view;
- view = Discourse.View.extend({
+ var view = Discourse.View.extend({
tagName: 'span',
+
render: function(buffer) {
- return buffer.push(Ember.String.i18n(key, {
+ buffer.push(Ember.String.i18n(key, {
count: this.get('count')
}));
},
- countChanged: (function() {
- return this.rerender();
- }).observes('count')
+
+ countChanged: function() {
+ this.rerender();
+ }.observes('count')
+
});
return Ember.Handlebars.helpers.view.call(this, view, options);
});
diff --git a/app/assets/javascripts/discourse/templates/auto_close_form.js.handlebars b/app/assets/javascripts/discourse/templates/auto_close_form.js.handlebars
index eff55b4f0..ce93f2e90 100644
--- a/app/assets/javascripts/discourse/templates/auto_close_form.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/auto_close_form.js.handlebars
@@ -1,6 +1,6 @@
{{view.label}}
- {{view Discourse.TextField valueBinding="view.autoCloseDays" maxlength="3"}}
+ {{textField value=view.autoCloseDays maxlength="3"}}
{{i18n composer.auto_close_units}}
diff --git a/app/assets/javascripts/discourse/templates/composer.js.handlebars b/app/assets/javascripts/discourse/templates/composer.js.handlebars
index 4150619b4..0805489ae 100644
--- a/app/assets/javascripts/discourse/templates/composer.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/composer.js.handlebars
@@ -32,7 +32,7 @@
{{#if content.creatingPrivateMessage}}
{{view Discourse.UserSelector topicIdBinding="controller.controllers.topic.content.id" excludeCurrentUser="true" id="private-message-users" class="span8" placeholderKey="composer.users_placeholder" tabindex="1" usernamesBinding="content.targetUsernames"}}
{{/if}}
- {{view Discourse.TextField valueBinding="content.title" tabindex="2" id="reply-title" maxlength="255" class="span8" placeholderKey="composer.title_placeholder"}}
+ {{textField value=content.title tabindex="2" id="reply-title" maxlength="255" class="span8" placeholderKey="composer.title_placeholder"}}
{{#unless content.creatingPrivateMessage}}
{{view Discourse.ComboboxViewCategory valueAttribute="name" contentBinding="Discourse.site.categories" valueBinding="content.categoryName"}}
{{#if content.archetype.hasOptions}}
diff --git a/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars b/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars
index 1c8b34d58..5c004a348 100644
--- a/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars
@@ -6,8 +6,8 @@
|
|
- {{view Discourse.TextField valueBinding="view.accountName" elementId="new-account-name" autofocus="autofocus"}}
- {{view Discourse.InputTipView validationBinding="view.nameValidation"}}
+ {{textField value=view.accountName id="new-account-name" autofocus="autofocus"}}
+ {{inputTip validation=nameValidation}}
|
@@ -18,8 +18,8 @@
|
- {{view Ember.TextField valueBinding="view.accountEmail" id="new-account-email"}}
- {{view Discourse.InputTipView validationBinding="view.emailValidation"}}
+ {{input value=view.accountEmail id="new-account-email"}}
+ {{inputTip validation=view.emailValidation}}
|
@@ -30,8 +30,8 @@
|
- {{view Ember.TextField valueBinding="view.accountUsername" id="new-account-username" maxlength="15"}}
- {{view Discourse.InputTipView validationBinding="view.usernameValidation"}}
+ {{input value=view.accountUsername id="new-account-username" maxlength="15"}}
+ {{inputTip validation=view.usernameValidation}}
|
@@ -43,8 +43,8 @@
|
- {{view Ember.TextField valueBinding="view.accountPassword" type="password" id="new-account-password"}}
- {{view Discourse.InputTipView validationBinding="view.passwordValidation"}}
+ {{input type="password" value=view.accountPassword id="new-account-password"}}
+ {{inputTip validation=view.passwordValidation}}
|
{{/if}}
@@ -52,8 +52,8 @@
|
- {{view Ember.TextField valueBinding="view.accountPasswordConfirm" type="password" id="new-account-password-confirmation"}}
- {{view Ember.TextField valueBinding="view.accountChallenge" id="new-account-challenge"}}
+ {{input type="password" value=view.accountPasswordConfirm id="new-account-confirmation"}}
+ {{input value=view.accountChallenge id="new-account-challenge"}}
|
diff --git a/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars b/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars
index e8c5a58a6..b63548fbd 100644
--- a/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars
@@ -20,7 +20,7 @@