From 4f09317cb3c2550c6d510764d9c6c12ee6c4b0c6 Mon Sep 17 00:00:00 2001 From: Robin Ward <robin.ward@gmail.com> Date: Thu, 3 Jul 2014 12:39:14 -0400 Subject: [PATCH] ES6: A bunch of modal views --- .../discourse/routes/application_route.js | 2 +- ..._account_view.js => create-account.js.es6} | 18 +++------------ .../discourse/views/forgot-password.js.es6 | 4 ++++ .../discourse/views/hide-modal.js.es6 | 8 +++++++ .../{modal/history_view.js => history.js.es6} | 11 +-------- .../{modal/login_view.js => login.js.es6} | 23 +++---------------- .../views/modal/forgot_password_view.js | 14 ----------- .../discourse/views/modal/hide_modal_view.js | 18 --------------- .../discourse/views/modal/modal_body_view.js | 11 ++++----- 9 files changed, 25 insertions(+), 84 deletions(-) rename app/assets/javascripts/discourse/views/{modal/create_account_view.js => create-account.js.es6} (68%) create mode 100644 app/assets/javascripts/discourse/views/forgot-password.js.es6 create mode 100644 app/assets/javascripts/discourse/views/hide-modal.js.es6 rename app/assets/javascripts/discourse/views/{modal/history_view.js => history.js.es6} (54%) rename app/assets/javascripts/discourse/views/{modal/login_view.js => login.js.es6} (76%) delete mode 100644 app/assets/javascripts/discourse/views/modal/forgot_password_view.js delete mode 100644 app/assets/javascripts/discourse/views/modal/hide_modal_view.js diff --git a/app/assets/javascripts/discourse/routes/application_route.js b/app/assets/javascripts/discourse/routes/application_route.js index 5d0a1ef6e..40b464832 100644 --- a/app/assets/javascripts/discourse/routes/application_route.js +++ b/app/assets/javascripts/discourse/routes/application_route.js @@ -66,7 +66,7 @@ Discourse.ApplicationRoute = Em.Route.extend({ @method closeModal **/ closeModal: function() { - this.render('hide_modal', {into: 'modal', outlet: 'modalBody'}); + this.render('hide-modal', {into: 'modal', outlet: 'modalBody'}); }, /** diff --git a/app/assets/javascripts/discourse/views/modal/create_account_view.js b/app/assets/javascripts/discourse/views/create-account.js.es6 similarity index 68% rename from app/assets/javascripts/discourse/views/modal/create_account_view.js rename to app/assets/javascripts/discourse/views/create-account.js.es6 index 7946c4613..f3a269f8f 100644 --- a/app/assets/javascripts/discourse/views/modal/create_account_view.js +++ b/app/assets/javascripts/discourse/views/create-account.js.es6 @@ -1,20 +1,9 @@ -/** - This view handles the create account modal - - @class CreateAccountView - @extends Discourse.ModalBodyView - @namespace Discourse - @module Discourse -**/ -Discourse.CreateAccountView = Discourse.ModalBodyView.extend({ +export default Discourse.ModalBodyView.extend({ templateName: 'modal/create_account', title: I18n.t('create_account.title'), classNames: ['create-account'], - didInsertElement: function() { - - this._super(); - + _setup: function() { // allows the submission the form when pressing 'ENTER' on *any* text input field // but only when the submit button is enabled var createAccountController = this.get('controller'); @@ -25,6 +14,5 @@ Discourse.CreateAccountView = Discourse.ModalBodyView.extend({ } }); }); - } - + }.on('didInsertElement') }); diff --git a/app/assets/javascripts/discourse/views/forgot-password.js.es6 b/app/assets/javascripts/discourse/views/forgot-password.js.es6 new file mode 100644 index 000000000..5bb6b40ee --- /dev/null +++ b/app/assets/javascripts/discourse/views/forgot-password.js.es6 @@ -0,0 +1,4 @@ +export default Discourse.ModalBodyView.extend({ + templateName: 'modal/forgot_password', + title: I18n.t('forgot_password.title'), +}); diff --git a/app/assets/javascripts/discourse/views/hide-modal.js.es6 b/app/assets/javascripts/discourse/views/hide-modal.js.es6 new file mode 100644 index 000000000..03ebe4080 --- /dev/null +++ b/app/assets/javascripts/discourse/views/hide-modal.js.es6 @@ -0,0 +1,8 @@ +export default Em.View.extend({ + // No rendering! + render: Em.K, + + _hideModal: function() { + $('#discourse-modal').modal('hide'); + }.on('didInsertElement') +}); diff --git a/app/assets/javascripts/discourse/views/modal/history_view.js b/app/assets/javascripts/discourse/views/history.js.es6 similarity index 54% rename from app/assets/javascripts/discourse/views/modal/history_view.js rename to app/assets/javascripts/discourse/views/history.js.es6 index c02c4dfd0..f88b3f178 100644 --- a/app/assets/javascripts/discourse/views/modal/history_view.js +++ b/app/assets/javascripts/discourse/views/history.js.es6 @@ -1,12 +1,4 @@ -/** - This view handles rendering of the history of a post - - @class HistoryView - @extends Discourse.View - @namespace Discourse - @module Discourse -**/ -Discourse.HistoryView = Discourse.ModalBodyView.extend({ +export default Discourse.ModalBodyView.extend({ templateName: 'modal/history', title: I18n.t('history'), @@ -14,5 +6,4 @@ Discourse.HistoryView = Discourse.ModalBodyView.extend({ var viewPortHeight = $(window).height(); this.$(".modal-body").css("max-height", Math.floor(0.8 * viewPortHeight) + "px"); }.on("didInsertElement") - }); diff --git a/app/assets/javascripts/discourse/views/modal/login_view.js b/app/assets/javascripts/discourse/views/login.js.es6 similarity index 76% rename from app/assets/javascripts/discourse/views/modal/login_view.js rename to app/assets/javascripts/discourse/views/login.js.es6 index 05390df73..334e91774 100644 --- a/app/assets/javascripts/discourse/views/modal/login_view.js +++ b/app/assets/javascripts/discourse/views/login.js.es6 @@ -1,26 +1,14 @@ -/** - A modal view for handling user logins - - @class LoginView - @extends Discourse.ModalBodyView - @namespace Discourse - @module Discourse -**/ -Discourse.LoginView = Discourse.ModalBodyView.extend({ +export default Discourse.ModalBodyView.extend({ templateName: 'modal/login', title: I18n.t('login.title'), classNames: ['login-modal'], - mouseMove: function(e) { this.set('controller.lastX', e.screenX); this.set('controller.lastY', e.screenY); }, - didInsertElement: function() { - - this._super(); - + _setup: function() { var loginController = this.get('controller'); // Get username and password from the browser's password manager, @@ -28,7 +16,6 @@ Discourse.LoginView = Discourse.ModalBodyView.extend({ loginController.set('loginName', $('#hidden-login-form input[name=username]').val()); loginController.set('loginPassword', $('#hidden-login-form input[name=password]').val()); - Em.run.schedule('afterRender', function() { $('#login-account-password, #login-account-name').keydown(function(e) { if (e.keyCode === 13) { @@ -38,9 +25,5 @@ Discourse.LoginView = Discourse.ModalBodyView.extend({ } }); }); - - } - + }.on('didInsertElement') }); - - diff --git a/app/assets/javascripts/discourse/views/modal/forgot_password_view.js b/app/assets/javascripts/discourse/views/modal/forgot_password_view.js deleted file mode 100644 index 0a5b37866..000000000 --- a/app/assets/javascripts/discourse/views/modal/forgot_password_view.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - This view handles the modal for when a user forgets their password - - @class ForgotPasswordView - @extends Discourse.ModalBodyView - @namespace Discourse - @module Discourse -**/ -Discourse.ForgotPasswordView = Discourse.ModalBodyView.extend({ - templateName: 'modal/forgot_password', - title: I18n.t('forgot_password.title') -}); - - diff --git a/app/assets/javascripts/discourse/views/modal/hide_modal_view.js b/app/assets/javascripts/discourse/views/modal/hide_modal_view.js deleted file mode 100644 index f6a54a82b..000000000 --- a/app/assets/javascripts/discourse/views/modal/hide_modal_view.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - An empty view for when we want to close a modal. - - @class HideModalView - @extends Discourse.ModalBodyView - @namespace Discourse - @module Discourse -**/ -Discourse.HideModalView = Discourse.ModalBodyView.extend({ - - // No rendering! - render: function() { }, - - didInsertElement: function() { - $('#discourse-modal').modal('hide'); - } - -}); diff --git a/app/assets/javascripts/discourse/views/modal/modal_body_view.js b/app/assets/javascripts/discourse/views/modal/modal_body_view.js index 21c1a84c5..f161045cb 100644 --- a/app/assets/javascripts/discourse/views/modal/modal_body_view.js +++ b/app/assets/javascripts/discourse/views/modal/modal_body_view.js @@ -8,11 +8,9 @@ **/ Discourse.ModalBodyView = Discourse.View.extend({ - // Focus on first element - didInsertElement: function() { - var self = this; - - var $discourseModal = $('#discourse-modal'); + _setupModal: function() { + var self = this, + $discourseModal = $('#discourse-modal'); $discourseModal.modal('show'); $discourseModal.one("hide", function () { @@ -21,6 +19,7 @@ Discourse.ModalBodyView = Discourse.View.extend({ $('#modal-alert').hide(); + // Focus on first element if (!Discourse.Mobile.mobileView) { Em.run.schedule('afterRender', function() { self.$('input:first').focus(); @@ -31,7 +30,7 @@ Discourse.ModalBodyView = Discourse.View.extend({ if (title) { this.set('controller.controllers.modal.title', title); } - }, + }.on('didInsertElement'), flashMessageChanged: function() { var flashMessage = this.get('controller.flashMessage');