From 45ab3ab8920419d12e7cee6b5697d1d951b7706f Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Fri, 22 Feb 2013 10:20:23 -0500 Subject: [PATCH] JS refactoring that fixes presence errors in earlier reverted commit. --- .../javascripts/admin/models/site_setting.js | 2 +- .../admin/routes/admin_user_route.js | 2 +- .../admin/views/ace_editor_view.js | 4 +- .../admin/views/admin_customize_view.js | 4 +- .../admin/views/admin_dashboard_view.js | 4 +- app/assets/javascripts/application.js.erb | 2 +- .../discourse/helpers/i18n_helpers.js | 2 +- .../javascripts/discourse/mixins/presence.js | 34 +++++- .../discourse/models/action_summary.js | 2 +- .../discourse/models/invite_list.js | 2 +- .../javascripts/discourse/models/model.js | 49 +++++--- .../javascripts/discourse/models/nav_item.js | 2 +- .../discourse/models/notification.js | 2 +- .../javascripts/discourse/models/post.js | 2 +- .../discourse/models/post_action_type.js | 2 +- .../javascripts/discourse/models/site.js | 2 +- .../javascripts/discourse/models/topic.js | 2 +- .../javascripts/discourse/models/user.js | 2 +- .../discourse/routes/application_routes.js | 114 ++++++------------ .../discourse/routes/discourse_route.js | 54 +++------ .../discourse/routes/user_route.js | 15 ++- .../discourse/views/actions_history_view.js | 2 +- .../discourse/views/application_view.js | 2 +- .../discourse/views/auto_sized_text_view.js | 2 +- .../discourse/views/button_view.js | 2 +- .../discourse/views/combobox_view.js | 2 +- .../discourse/views/composer_view.js | 2 +- .../discourse/views/dropdown_button_view.js | 2 +- .../discourse/views/embedded_post_view.js | 2 +- .../views/excerpt/excerpt_category_view.js | 2 +- .../views/excerpt/excerpt_post_view.js | 2 +- .../views/excerpt/excerpt_user_view.js | 4 +- .../discourse/views/featured_threads_view.js | 2 +- .../discourse/views/featured_topics_view.js | 2 +- .../discourse/views/header_view.js | 2 +- .../discourse/views/history_view.js | 2 +- .../discourse/views/image_selector.js | 2 +- .../discourse/views/input_tip_view.js | 2 +- .../views/list/list_categories_view.js | 2 +- .../discourse/views/list/list_topics_view.js | 2 +- .../discourse/views/list/list_view.js | 2 +- .../views/list/topic_list_item_view.js | 2 +- .../views/modal/create_account_view.js | 2 +- .../views/modal/forgot_password_view.js | 2 +- .../views/modal/invite_modal_view.js | 2 +- .../views/modal/invite_private_modal_view.js | 2 +- .../discourse/views/modal/login_view.js | 2 +- .../discourse/views/modal/modal_body_view.js | 2 +- .../views/modal/move_selected_view.js | 2 +- .../views/modal/option_boolean_view.js | 2 +- .../discourse/views/nav_item_view.js | 2 +- .../discourse/views/notifications_view.js | 2 +- .../discourse/views/participant_view.js | 2 +- .../discourse/views/post_link_view.js | 2 +- .../discourse/views/post_menu_view.js | 2 +- .../javascripts/discourse/views/post_view.js | 2 +- .../discourse/views/search/search_view.js | 2 +- .../discourse/views/selected_posts_view.js | 2 +- .../discourse/views/suggested_topic_view.js | 2 +- .../discourse/views/topic_admin_menu_view.js | 2 +- .../views/topic_summary/topic_links_view.js | 2 +- .../views/topic_summary/topic_summary_view.js | 4 +- .../javascripts/discourse/views/topic_view.js | 2 +- .../views/user/activity_filter_view.js | 2 +- .../views/user/preferences_email_view.js | 2 +- .../views/user/preferences_username_view.js | 2 +- .../discourse/views/user/preferences_view.js | 2 +- .../views/user/user_activity_view.js | 2 +- .../discourse/views/user/user_invited_view.js | 2 +- .../views/user/user_private_messages_view.js | 2 +- .../discourse/views/user/user_stream_view.js | 2 +- .../discourse/views/user/user_view.js | 2 +- .../javascripts/discourse/views/view.js | 17 +-- spec/javascripts/spec.js | 1 - 74 files changed, 207 insertions(+), 221 deletions(-) diff --git a/app/assets/javascripts/admin/models/site_setting.js b/app/assets/javascripts/admin/models/site_setting.js index 7026043ab9..155871f721 100644 --- a/app/assets/javascripts/admin/models/site_setting.js +++ b/app/assets/javascripts/admin/models/site_setting.js @@ -8,7 +8,7 @@ @namespace Discourse @module Discourse **/ - window.Discourse.SiteSetting = Discourse.Model.extend(Discourse.Presence, { + window.Discourse.SiteSetting = Discourse.Model.extend({ // Whether a property is short. short: (function() { diff --git a/app/assets/javascripts/admin/routes/admin_user_route.js b/app/assets/javascripts/admin/routes/admin_user_route.js index a0c2295cae..1e67210d82 100644 --- a/app/assets/javascripts/admin/routes/admin_user_route.js +++ b/app/assets/javascripts/admin/routes/admin_user_route.js @@ -1,7 +1,7 @@ (function() { /** - Handles routes related to users. + Handles routes related to users in the admin section. @class AdminUserRoute @extends Discourse.Route diff --git a/app/assets/javascripts/admin/views/ace_editor_view.js b/app/assets/javascripts/admin/views/ace_editor_view.js index f928c73652..f31c19d57a 100644 --- a/app/assets/javascripts/admin/views/ace_editor_view.js +++ b/app/assets/javascripts/admin/views/ace_editor_view.js @@ -5,11 +5,11 @@ A view that wraps the ACE editor (http://ace.ajax.org/) @class AceEditorView - @extends Discourse.View + @extends Em.View @namespace Discourse @module Discourse **/ - Discourse.AceEditorView = window.Discourse.View.extend({ + Discourse.AceEditorView = Discourse.View.extend({ mode: 'css', classNames: ['ace-wrapper'], diff --git a/app/assets/javascripts/admin/views/admin_customize_view.js b/app/assets/javascripts/admin/views/admin_customize_view.js index 895b0aa89e..1ab5532b57 100644 --- a/app/assets/javascripts/admin/views/admin_customize_view.js +++ b/app/assets/javascripts/admin/views/admin_customize_view.js @@ -5,11 +5,11 @@ A view to handle site customizations @class AdminCustomizeView - @extends Discourse.View + @extends Em.View @namespace Discourse @module Discourse **/ - Discourse.AdminCustomizeView = window.Discourse.View.extend({ + Discourse.AdminCustomizeView = Discourse.View.extend({ templateName: 'admin/templates/customize', classNames: ['customize'], diff --git a/app/assets/javascripts/admin/views/admin_dashboard_view.js b/app/assets/javascripts/admin/views/admin_dashboard_view.js index 55cbbbc889..48c352cbef 100644 --- a/app/assets/javascripts/admin/views/admin_dashboard_view.js +++ b/app/assets/javascripts/admin/views/admin_dashboard_view.js @@ -4,11 +4,11 @@ The default view in the admin section @class AdminDashboardView - @extends Discourse.View + @extends Em.View @namespace Discourse @module Discourse **/ - Discourse.AdminDashboardView = window.Discourse.View.extend({ + Discourse.AdminDashboardView = Discourse.View.extend({ templateName: 'admin/templates/dashboard', updateIconClasses: function() { diff --git a/app/assets/javascripts/application.js.erb b/app/assets/javascripts/application.js.erb index 0efcaf0b02..ad5d61fa55 100644 --- a/app/assets/javascripts/application.js.erb +++ b/app/assets/javascripts/application.js.erb @@ -28,8 +28,8 @@ // Stuff we need to load first //= require_tree ./discourse/mixins -//= require ./discourse/components/debounce //= require ./discourse/views/view +//= require ./discourse/components/debounce //= require ./discourse/controllers/controller //= require ./discourse/views/modal/modal_body_view //= require ./discourse/models/model diff --git a/app/assets/javascripts/discourse/helpers/i18n_helpers.js b/app/assets/javascripts/discourse/helpers/i18n_helpers.js index 6bb8856d19..1b63efeba9 100644 --- a/app/assets/javascripts/discourse/helpers/i18n_helpers.js +++ b/app/assets/javascripts/discourse/helpers/i18n_helpers.js @@ -27,7 +27,7 @@ Ember.Handlebars.registerHelper('countI18n', function(key, options) { var view; - view = Em.View.extend({ + view = Discourse.View.extend({ tagName: 'span', render: function(buffer) { return buffer.push(Ember.String.i18n(key, { diff --git a/app/assets/javascripts/discourse/mixins/presence.js b/app/assets/javascripts/discourse/mixins/presence.js index 3857e6e6ed..f810095f67 100644 --- a/app/assets/javascripts/discourse/mixins/presence.js +++ b/app/assets/javascripts/discourse/mixins/presence.js @@ -1,15 +1,29 @@ (function() { - window.Discourse.Presence = Em.Mixin.create({ - /* Is a property blank? - */ + /** + This mixin provides `blank` and `present` to determine whether properties are + there, accounting for more cases than just null and undefined. + @class Discourse.Presence + @extends Ember.Mixin + @namespace Discourse + @module Discourse + **/ + window.Discourse.Presence = Em.Mixin.create({ + + /** + Returns whether a property is blank. It considers empty arrays, string, objects, undefined and null + to be blank, otherwise true. + + @method blank + @param {String} name the name of the property we want to check + @return {Boolean} + */ blank: function(name) { var prop; prop = this.get(name); - if (!prop) { - return true; - } + if (!prop) return true; + switch (typeof prop) { case "string": return prop.trim().isBlank(); @@ -18,6 +32,14 @@ } return false; }, + + /** + Returns whether a property is present. A present property is the opposite of a `blank` one. + + @method present + @param {String} name the name of the property we want to check + @return {Boolean} + */ present: function(name) { return !this.blank(name); } diff --git a/app/assets/javascripts/discourse/models/action_summary.js b/app/assets/javascripts/discourse/models/action_summary.js index c3e7caf81a..655498cd6e 100644 --- a/app/assets/javascripts/discourse/models/action_summary.js +++ b/app/assets/javascripts/discourse/models/action_summary.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ActionSummary = Em.Object.extend(Discourse.Presence, { + window.Discourse.ActionSummary = Discourse.Model.extend({ /* Description for the action */ diff --git a/app/assets/javascripts/discourse/models/invite_list.js b/app/assets/javascripts/discourse/models/invite_list.js index 50e70e8203..1ea19fca5f 100644 --- a/app/assets/javascripts/discourse/models/invite_list.js +++ b/app/assets/javascripts/discourse/models/invite_list.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.InviteList = Discourse.Model.extend(Discourse.Presence, { + window.Discourse.InviteList = Discourse.Model.extend({ empty: (function() { return this.blank('pending') && this.blank('redeemed'); }).property('pending.@each', 'redeemed.@each') diff --git a/app/assets/javascripts/discourse/models/model.js b/app/assets/javascripts/discourse/models/model.js index acb3d33735..9e5d4fb0c8 100644 --- a/app/assets/javascripts/discourse/models/model.js +++ b/app/assets/javascripts/discourse/models/model.js @@ -1,30 +1,42 @@ (function() { - window.Discourse.Model = Ember.Object.extend({ - /* Our own AJAX handler that handles erronous responses - */ + /** + A base object we can use to handle models in the Discourse client application. + @class Model + @extends Ember.Object + @uses Discourse.Presence + @namespace Discourse + @module Discourse + **/ + window.Discourse.Model = Ember.Object.extend(Discourse.Presence, { + + /** + Our own AJAX handler that handles erronous responses + + @method ajax + @param {String} url The url to contact + @param {Object} args The arguments to pass to jQuery.ajax + **/ ajax: function(url, args) { - /* Error handler - */ - - var oldError, - _this = this; - oldError = args.error; + var oldError = args.error; args.error = function(xhr) { return oldError(jQuery.parseJSON(xhr.responseText).errors); }; return jQuery.ajax(url, args); }, - /* Update our object from another object - */ + /** + Update our object from another object + + @method mergeAttributes + @param {Object} attrs The attributes we want to merge with + @param {Object} builders Optional builders to use when merging attributes + **/ mergeAttributes: function(attrs, builders) { var _this = this; return Object.keys(attrs, function(k, v) { - /* If they're in a builder we use that - */ - + // If they're in a builder we use that var builder, col; if (typeof v === 'object' && builders && (builder = builders[k])) { if (!_this.get(k)) { @@ -42,9 +54,14 @@ }); window.Discourse.Model.reopenClass({ - /* Given an array of values, return them in a hash - */ + /** + Given an array of values, return them in a hash + + @method extractByKey + @param {Object} collection The collection of values + @param {Object} klass Optional The class to instantiate + **/ extractByKey: function(collection, klass) { var retval; retval = {}; diff --git a/app/assets/javascripts/discourse/models/nav_item.js b/app/assets/javascripts/discourse/models/nav_item.js index de5b8a9af7..ee3e9230dd 100644 --- a/app/assets/javascripts/discourse/models/nav_item.js +++ b/app/assets/javascripts/discourse/models/nav_item.js @@ -10,7 +10,7 @@ validAnon = ['popular', 'category', 'categories']; - window.Discourse.NavItem = Em.Object.extend({ + window.Discourse.NavItem = Discourse.Model.extend({ categoryName: (function() { var split; split = this.get('name').split('/'); diff --git a/app/assets/javascripts/discourse/models/notification.js b/app/assets/javascripts/discourse/models/notification.js index fb2fcbc0fb..cb0b731f8c 100644 --- a/app/assets/javascripts/discourse/models/notification.js +++ b/app/assets/javascripts/discourse/models/notification.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.Notification = Discourse.Model.extend(Discourse.Presence, { + window.Discourse.Notification = Discourse.Model.extend({ readClass: (function() { if (this.read) { return 'read'; diff --git a/app/assets/javascripts/discourse/models/post.js b/app/assets/javascripts/discourse/models/post.js index 65f9d7a34f..8c4a581766 100644 --- a/app/assets/javascripts/discourse/models/post.js +++ b/app/assets/javascripts/discourse/models/post.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.Post = Ember.Object.extend(Discourse.Presence, { + window.Discourse.Post = Discourse.Model.extend({ /* Url to this post */ diff --git a/app/assets/javascripts/discourse/models/post_action_type.js b/app/assets/javascripts/discourse/models/post_action_type.js index b54203e8cc..eece4210bc 100644 --- a/app/assets/javascripts/discourse/models/post_action_type.js +++ b/app/assets/javascripts/discourse/models/post_action_type.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.PostActionType = Em.Object.extend({ + window.Discourse.PostActionType = Discourse.Model.extend({ alsoName: (function() { if (this.get('is_flag')) { return Em.String.i18n('post.actions.flag'); diff --git a/app/assets/javascripts/discourse/models/site.js b/app/assets/javascripts/discourse/models/site.js index 3d48484ca0..ec5f1cf7d9 100644 --- a/app/assets/javascripts/discourse/models/site.js +++ b/app/assets/javascripts/discourse/models/site.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.Site = Ember.Object.extend({ + window.Discourse.Site = Discourse.Model.extend({ notificationLookup: (function() { var result; result = []; diff --git a/app/assets/javascripts/discourse/models/topic.js b/app/assets/javascripts/discourse/models/topic.js index 3dc309f5ae..41fed72d03 100644 --- a/app/assets/javascripts/discourse/models/topic.js +++ b/app/assets/javascripts/discourse/models/topic.js @@ -1,6 +1,6 @@ (function() { - Discourse.Topic = Discourse.Model.extend(Discourse.Presence, { + Discourse.Topic = Discourse.Model.extend({ categoriesBinding: 'Discourse.site.categories', fewParticipants: (function() { if (!this.present('participants')) { diff --git a/app/assets/javascripts/discourse/models/user.js b/app/assets/javascripts/discourse/models/user.js index 51925e06fd..320c1395f9 100644 --- a/app/assets/javascripts/discourse/models/user.js +++ b/app/assets/javascripts/discourse/models/user.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.User = Discourse.Model.extend(Discourse.Presence, { + window.Discourse.User = Discourse.Model.extend({ avatarLarge: (function() { return Discourse.Utilities.avatarUrl(this.get('username'), 'large', this.get('avatar_template')); }).property('username'), diff --git a/app/assets/javascripts/discourse/routes/application_routes.js b/app/assets/javascripts/discourse/routes/application_routes.js index 8751b19530..7e8d33a1b7 100644 --- a/app/assets/javascripts/discourse/routes/application_routes.js +++ b/app/assets/javascripts/discourse/routes/application_routes.js @@ -1,93 +1,49 @@ - -/* Ways we can filter the topics list -*/ - - (function() { Discourse.buildRoutes(function() { - var router; - this.resource('topic', { - path: '/t/:slug/:id' - }, function() { - this.route('fromParams', { - path: '/' - }); - this.route('fromParams', { - path: '/:nearPost' - }); - return this.route('bestOf', { - path: '/best_of' - }); - }); - /* Generate static page routes - */ + var router = this; - router = this; + // Topic routes + this.resource('topic', { path: '/t/:slug/:id' }, function() { + this.route('fromParams', { path: '/' }); + this.route('fromParams', { path: '/:nearPost' }); + this.route('bestOf', { path: '/best_of' }); + }); + + // Generate static page routes Discourse.StaticController.pages.forEach(function(p) { - return router.route(p, { - path: "/" + p - }); + router.route(p, { path: "/" + p }); }); - this.route('faq', { - path: '/faq' - }); - this.route('tos', { - path: '/tos' - }); - this.route('privacy', { - path: '/privacy' - }); - this.resource('list', { - path: '/' - }, function() { - router = this; - /* Generate routes for all our filters - */ + this.route('faq', { path: '/faq' }); + this.route('tos', { path: '/tos' }); + this.route('privacy', { path: '/privacy' }); + + // List routes + this.resource('list', { path: '/' }, function() { + router = this; + + // Generate routes for all our filters Discourse.ListController.filters.forEach(function(r) { - router.route(r, { - path: "/" + r - }); - return router.route(r, { - path: "/" + r + "/more" - }); - }); - router.route('popular', { - path: '/' - }); - router.route('categories', { - path: '/categories' - }); - router.route('category', { - path: '/category/:slug/more' - }); - return router.route('category', { - path: '/category/:slug' + router.route(r, { path: "/" + r }); + router.route(r, { path: "/" + r + "/more" }); }); + + this.route('popular', { path: '/' }); + this.route('categories', { path: '/categories' }); + this.route('category', { path: '/category/:slug/more' }); + this.route('category', { path: '/category/:slug' }); }); - return this.resource('user', { - path: '/users/:username' - }, function() { - this.route('activity', { - path: '/' - }); - this.resource('preferences', { - path: '/preferences' - }, function() { - this.route('username', { - path: '/username' - }); - return this.route('email', { - path: '/email' - }); - }); - this.route('privateMessages', { - path: '/private-messages' - }); - return this.route('invited', { - path: 'invited' + + // User routes + this.resource('user', { path: '/users/:username' }, function() { + this.route('activity', { path: '/' }); + this.resource('preferences', { path: '/preferences' }, function() { + this.route('username', { path: '/username' }); + this.route('email', { path: '/email' }); }); + this.route('privateMessages', { path: '/private-messages' }); + this.route('invited', { path: 'invited' }); }); }); diff --git a/app/assets/javascripts/discourse/routes/discourse_route.js b/app/assets/javascripts/discourse/routes/discourse_route.js index 9609d20bd9..48246bfa6c 100644 --- a/app/assets/javascripts/discourse/routes/discourse_route.js +++ b/app/assets/javascripts/discourse/routes/discourse_route.js @@ -1,49 +1,31 @@ (function() { - window.Discourse.Route = Em.Route.extend({ - /* Called every time we enter a route - */ + /** + The base admin route for all routes on Discourse. Includes global enter functionality. + @class Route + @extends Em.Route + @namespace Discourse + @module Discourse + **/ + Discourse.Route = Em.Route.extend({ + + /** + Called every time we enter a route on Discourse. + + @method enter + **/ enter: function(router, context) { - /* Close mini profiler - */ - - var composerController, f, search, shareController; + // Close mini profiler jQuery('.profiler-results .profiler-result').remove(); - /* Close stuff that may be open - */ + // Close some elements that may be open jQuery('.d-dropdown').hide(); jQuery('header ul.icons li').removeClass('active'); jQuery('[data-toggle="dropdown"]').parent().removeClass('open'); - /* TODO: need to adjust these - */ - - if (false) { - if (shareController = router.get('shareController')) { - shareController.close(); - } - /* Hide any searches - */ - - if (search = router.get('searchController')) { - search.close(); - } - /* get rid of "save as draft stuff" - */ - - composerController = Discourse.get('router.composerController'); - if (composerController) { - composerController.closeIfCollapsed(); - } - } - f = jQuery('html').data('hide-dropdown'); - if (f) { - return f(); - } - /*return @_super(router, context) - */ + var hideDropDownFunction = jQuery('html').data('hide-dropdown'); + if (hideDropDownFunction) return hideDropDownFunction(); } }); diff --git a/app/assets/javascripts/discourse/routes/user_route.js b/app/assets/javascripts/discourse/routes/user_route.js index 8f1c37a032..698313874a 100644 --- a/app/assets/javascripts/discourse/routes/user_route.js +++ b/app/assets/javascripts/discourse/routes/user_route.js @@ -1,13 +1,20 @@ (function() { - window.Discourse.UserRoute = Discourse.Route.extend({ + /** + Handles routes related to users. + + @class UserRoute + @extends Discourse.Route + @namespace Discourse + @module Discourse + **/ + Discourse.UserRoute = Discourse.Route.extend({ model: function(params) { return Discourse.User.find(params.username); }, + serialize: function(params) { - return { - username: Em.get(params, 'username').toLowerCase() - }; + return { username: Em.get(params, 'username').toLowerCase() }; } }); diff --git a/app/assets/javascripts/discourse/views/actions_history_view.js b/app/assets/javascripts/discourse/views/actions_history_view.js index 768771eee5..76d7c94c24 100644 --- a/app/assets/javascripts/discourse/views/actions_history_view.js +++ b/app/assets/javascripts/discourse/views/actions_history_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ActionsHistoryView = Em.View.extend(Discourse.Presence, { + window.Discourse.ActionsHistoryView = Discourse.View.extend({ tagName: 'section', classNameBindings: [':post-actions', 'hidden'], hidden: (function() { diff --git a/app/assets/javascripts/discourse/views/application_view.js b/app/assets/javascripts/discourse/views/application_view.js index 55a1621287..cb4317bf04 100644 --- a/app/assets/javascripts/discourse/views/application_view.js +++ b/app/assets/javascripts/discourse/views/application_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ApplicationView = Ember.View.extend({ + window.Discourse.ApplicationView = Discourse.View.extend({ templateName: 'application' }); diff --git a/app/assets/javascripts/discourse/views/auto_sized_text_view.js b/app/assets/javascripts/discourse/views/auto_sized_text_view.js index c9d69570f9..5ea8e255c6 100644 --- a/app/assets/javascripts/discourse/views/auto_sized_text_view.js +++ b/app/assets/javascripts/discourse/views/auto_sized_text_view.js @@ -1,6 +1,6 @@ (function() { - Discourse.AutoSizedTextView = Ember.View.extend({ + Discourse.AutoSizedTextView = Discourse.View.extend({ render: function(buffer) { return null; }, diff --git a/app/assets/javascripts/discourse/views/button_view.js b/app/assets/javascripts/discourse/views/button_view.js index e318d7c7c4..6340b6ae57 100644 --- a/app/assets/javascripts/discourse/views/button_view.js +++ b/app/assets/javascripts/discourse/views/button_view.js @@ -1,6 +1,6 @@ (function() { - Discourse.ButtonView = Ember.View.extend(Discourse.Presence, { + Discourse.ButtonView = Discourse.View.extend({ tagName: 'button', classNameBindings: [':btn', ':standard', 'dropDownToggle'], attributeBindings: ['data-not-implemented', 'title', 'data-toggle', 'data-share-url'], diff --git a/app/assets/javascripts/discourse/views/combobox_view.js b/app/assets/javascripts/discourse/views/combobox_view.js index 3bc9a2b0f8..8a22a81134 100644 --- a/app/assets/javascripts/discourse/views/combobox_view.js +++ b/app/assets/javascripts/discourse/views/combobox_view.js @@ -1,6 +1,6 @@ (function() { - Discourse.ComboboxView = window.Ember.View.extend({ + Discourse.ComboboxView = Discourse.View.extend({ tagName: 'select', classNames: ['combobox'], valueAttribute: 'id', diff --git a/app/assets/javascripts/discourse/views/composer_view.js b/app/assets/javascripts/discourse/views/composer_view.js index 8de0bd114b..a5473c7174 100644 --- a/app/assets/javascripts/discourse/views/composer_view.js +++ b/app/assets/javascripts/discourse/views/composer_view.js @@ -1,7 +1,7 @@ /*global Markdown:true assetPath:true */ (function() { - window.Discourse.ComposerView = window.Discourse.View.extend({ + window.Discourse.ComposerView = Discourse.View.extend({ templateName: 'composer', elementId: 'reply-control', classNameBindings: ['content.creatingPrivateMessage:private-message', diff --git a/app/assets/javascripts/discourse/views/dropdown_button_view.js b/app/assets/javascripts/discourse/views/dropdown_button_view.js index 48a15c3736..65dd614b8e 100644 --- a/app/assets/javascripts/discourse/views/dropdown_button_view.js +++ b/app/assets/javascripts/discourse/views/dropdown_button_view.js @@ -1,6 +1,6 @@ (function() { - Discourse.DropdownButtonView = Ember.View.extend(Discourse.Presence, { + Discourse.DropdownButtonView = Discourse.View.extend({ classNames: ['btn-group'], attributeBindings: ['data-not-implemented'], didInsertElement: function(e) { diff --git a/app/assets/javascripts/discourse/views/embedded_post_view.js b/app/assets/javascripts/discourse/views/embedded_post_view.js index f15811396c..14b9a4347e 100644 --- a/app/assets/javascripts/discourse/views/embedded_post_view.js +++ b/app/assets/javascripts/discourse/views/embedded_post_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.EmbeddedPostView = Ember.View.extend({ + window.Discourse.EmbeddedPostView = Discourse.View.extend({ templateName: 'embedded_post', classNames: ['reply'], didInsertElement: function() { diff --git a/app/assets/javascripts/discourse/views/excerpt/excerpt_category_view.js b/app/assets/javascripts/discourse/views/excerpt/excerpt_category_view.js index 70a7037b6f..dde4dc884b 100644 --- a/app/assets/javascripts/discourse/views/excerpt/excerpt_category_view.js +++ b/app/assets/javascripts/discourse/views/excerpt/excerpt_category_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ExcerptCategoryView = Ember.View.extend({ + window.Discourse.ExcerptCategoryView = Discourse.View.extend({ editCategory: function() { var cat, _ref; this.get('parentView').close(); diff --git a/app/assets/javascripts/discourse/views/excerpt/excerpt_post_view.js b/app/assets/javascripts/discourse/views/excerpt/excerpt_post_view.js index de30e56d72..b82473096f 100644 --- a/app/assets/javascripts/discourse/views/excerpt/excerpt_post_view.js +++ b/app/assets/javascripts/discourse/views/excerpt/excerpt_post_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ExcerptPostView = Ember.View.extend({ + window.Discourse.ExcerptPostView = Discourse.View.extend({ mute: function() { return this.update(true); }, diff --git a/app/assets/javascripts/discourse/views/excerpt/excerpt_user_view.js b/app/assets/javascripts/discourse/views/excerpt/excerpt_user_view.js index 464c78e752..02a1a52c5e 100644 --- a/app/assets/javascripts/discourse/views/excerpt/excerpt_user_view.js +++ b/app/assets/javascripts/discourse/views/excerpt/excerpt_user_view.js @@ -1,10 +1,10 @@ (function() { - window.Discourse.ExcerptUserView = Ember.View.extend({ + window.Discourse.ExcerptUserView = Discourse.View.extend({ privateMessage: function(e) { var $target, composerController, post, postView, url, username; $target = this.get("link"); - postView = Ember.View.views[$target.closest('.ember-view')[0].id]; + postView = Discourse.View.views[$target.closest('.ember-view')[0].id]; post = postView.get("post"); url = post.get("url"); username = post.get("username"); diff --git a/app/assets/javascripts/discourse/views/featured_threads_view.js b/app/assets/javascripts/discourse/views/featured_threads_view.js index e841e60de5..94eaeeba46 100644 --- a/app/assets/javascripts/discourse/views/featured_threads_view.js +++ b/app/assets/javascripts/discourse/views/featured_threads_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.FeaturedTopicsView = Ember.View.extend({ + window.Discourse.FeaturedTopicsView = Discourse.View.extend({ templateName: 'featured_topics', classNames: ['category-list-item'], init: function() { diff --git a/app/assets/javascripts/discourse/views/featured_topics_view.js b/app/assets/javascripts/discourse/views/featured_topics_view.js index 8761e08f78..2f845ca58b 100644 --- a/app/assets/javascripts/discourse/views/featured_topics_view.js +++ b/app/assets/javascripts/discourse/views/featured_topics_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.FeaturedTopicsView = Ember.View.extend({ + window.Discourse.FeaturedTopicsView = Discourse.View.extend({ templateName: 'featured_topics', classNames: ['category-list-item'] }); diff --git a/app/assets/javascripts/discourse/views/header_view.js b/app/assets/javascripts/discourse/views/header_view.js index f497ab2c2a..beb5a1b0c8 100644 --- a/app/assets/javascripts/discourse/views/header_view.js +++ b/app/assets/javascripts/discourse/views/header_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.HeaderView = Ember.View.extend({ + window.Discourse.HeaderView = Discourse.View.extend({ tagName: 'header', classNames: ['d-header', 'clearfix'], classNameBindings: ['editingTopic'], diff --git a/app/assets/javascripts/discourse/views/history_view.js b/app/assets/javascripts/discourse/views/history_view.js index 74b8583997..ac8d4a7319 100644 --- a/app/assets/javascripts/discourse/views/history_view.js +++ b/app/assets/javascripts/discourse/views/history_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.HistoryView = Ember.View.extend({ + window.Discourse.HistoryView = Discourse.View.extend({ templateName: 'history', title: 'History', modalClass: 'history-modal', diff --git a/app/assets/javascripts/discourse/views/image_selector.js b/app/assets/javascripts/discourse/views/image_selector.js index 6490c05932..0a2f31cfd7 100644 --- a/app/assets/javascripts/discourse/views/image_selector.js +++ b/app/assets/javascripts/discourse/views/image_selector.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ImageSelectorView = Ember.View.extend({ + window.Discourse.ImageSelectorView = Discourse.View.extend({ templateName: 'image_selector', classNames: ['image-selector'], title: 'Insert Image', diff --git a/app/assets/javascripts/discourse/views/input_tip_view.js b/app/assets/javascripts/discourse/views/input_tip_view.js index d41756a15e..32a01905df 100644 --- a/app/assets/javascripts/discourse/views/input_tip_view.js +++ b/app/assets/javascripts/discourse/views/input_tip_view.js @@ -1,6 +1,6 @@ (function() { - Discourse.InputTipView = Ember.View.extend(Discourse.Presence, { + Discourse.InputTipView = Discourse.View.extend({ templateName: 'input_tip', classNameBindings: [':tip', 'good', 'bad'], good: (function() { diff --git a/app/assets/javascripts/discourse/views/list/list_categories_view.js b/app/assets/javascripts/discourse/views/list/list_categories_view.js index f8a2fb430f..92ec774b61 100644 --- a/app/assets/javascripts/discourse/views/list/list_categories_view.js +++ b/app/assets/javascripts/discourse/views/list/list_categories_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ListCategoriesView = Ember.View.extend({ + window.Discourse.ListCategoriesView = Discourse.View.extend({ templateName: 'list/categories', didInsertElement: function() { return Discourse.set('title', Em.String.i18n("category.list")); diff --git a/app/assets/javascripts/discourse/views/list/list_topics_view.js b/app/assets/javascripts/discourse/views/list/list_topics_view.js index 2e5cdd7a32..280f09420e 100644 --- a/app/assets/javascripts/discourse/views/list/list_topics_view.js +++ b/app/assets/javascripts/discourse/views/list/list_topics_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ListTopicsView = Ember.View.extend(Discourse.Scrolling, Discourse.Presence, { + window.Discourse.ListTopicsView = Discourse.View.extend(Discourse.Scrolling, { templateName: 'list/topics', categoryBinding: 'Discourse.router.listController.category', filterModeBinding: 'Discourse.router.listController.filterMode', diff --git a/app/assets/javascripts/discourse/views/list/list_view.js b/app/assets/javascripts/discourse/views/list/list_view.js index 77aa946567..68c0deb8e0 100644 --- a/app/assets/javascripts/discourse/views/list/list_view.js +++ b/app/assets/javascripts/discourse/views/list/list_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ListView = Ember.View.extend({ + window.Discourse.ListView = Discourse.View.extend({ templateName: 'list/list', composeViewBinding: Ember.Binding.oneWay('Discourse.composeView'), categoriesBinding: 'Discourse.site.categories', diff --git a/app/assets/javascripts/discourse/views/list/topic_list_item_view.js b/app/assets/javascripts/discourse/views/list/topic_list_item_view.js index e2bfd00bd4..59b714e10c 100644 --- a/app/assets/javascripts/discourse/views/list/topic_list_item_view.js +++ b/app/assets/javascripts/discourse/views/list/topic_list_item_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.TopicListItemView = Ember.View.extend({ + window.Discourse.TopicListItemView = Discourse.View.extend({ tagName: 'tr', templateName: 'list/topic_list_item', classNameBindings: ['content.archived', ':topic-list-item'], diff --git a/app/assets/javascripts/discourse/views/modal/create_account_view.js b/app/assets/javascripts/discourse/views/modal/create_account_view.js index e276bd9cae..5a80c5d410 100644 --- a/app/assets/javascripts/discourse/views/modal/create_account_view.js +++ b/app/assets/javascripts/discourse/views/modal/create_account_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.CreateAccountView = window.Discourse.ModalBodyView.extend(Discourse.Presence, { + window.Discourse.CreateAccountView = Discourse.ModalBodyView.extend({ templateName: 'modal/create_account', title: Em.String.i18n('create_account.title'), uniqueUsernameValidation: null, diff --git a/app/assets/javascripts/discourse/views/modal/forgot_password_view.js b/app/assets/javascripts/discourse/views/modal/forgot_password_view.js index 5c37111eae..51a8cadbd8 100644 --- a/app/assets/javascripts/discourse/views/modal/forgot_password_view.js +++ b/app/assets/javascripts/discourse/views/modal/forgot_password_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ForgotPasswordView = window.Discourse.ModalBodyView.extend(Discourse.Presence, { + window.Discourse.ForgotPasswordView = Discourse.ModalBodyView.extend({ templateName: 'modal/forgot_password', title: Em.String.i18n('forgot_password.title'), /* You need a value in the field to submit it. diff --git a/app/assets/javascripts/discourse/views/modal/invite_modal_view.js b/app/assets/javascripts/discourse/views/modal/invite_modal_view.js index de335afc0b..31f07fc7f2 100644 --- a/app/assets/javascripts/discourse/views/modal/invite_modal_view.js +++ b/app/assets/javascripts/discourse/views/modal/invite_modal_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.InviteModalView = window.Discourse.ModalBodyView.extend(Discourse.Presence, { + window.Discourse.InviteModalView = Discourse.ModalBodyView.extend({ templateName: 'modal/invite', title: Em.String.i18n('topic.invite_reply.title'), email: null, diff --git a/app/assets/javascripts/discourse/views/modal/invite_private_modal_view.js b/app/assets/javascripts/discourse/views/modal/invite_private_modal_view.js index 8cae7915f1..e00195bb9c 100644 --- a/app/assets/javascripts/discourse/views/modal/invite_private_modal_view.js +++ b/app/assets/javascripts/discourse/views/modal/invite_private_modal_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.InvitePrivateModalView = window.Discourse.ModalBodyView.extend(Discourse.Presence, { + window.Discourse.InvitePrivateModalView = Discourse.ModalBodyView.extend({ templateName: 'modal/invite_private', title: Em.String.i18n('topic.invite_private.title'), email: null, diff --git a/app/assets/javascripts/discourse/views/modal/login_view.js b/app/assets/javascripts/discourse/views/modal/login_view.js index 73383dbd73..c655853dcd 100644 --- a/app/assets/javascripts/discourse/views/modal/login_view.js +++ b/app/assets/javascripts/discourse/views/modal/login_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.LoginView = window.Discourse.ModalBodyView.extend(Discourse.Presence, { + window.Discourse.LoginView = Discourse.ModalBodyView.extend({ templateName: 'modal/login', siteBinding: 'Discourse.site', title: Em.String.i18n('login.title'), 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 3bd7079f53..86d9ff6f3a 100644 --- a/app/assets/javascripts/discourse/views/modal/modal_body_view.js +++ b/app/assets/javascripts/discourse/views/modal/modal_body_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ModalBodyView = window.Discourse.View.extend({ + window.Discourse.ModalBodyView = Discourse.View.extend({ // Focus on first element didInsertElement: function() { var _this = this; diff --git a/app/assets/javascripts/discourse/views/modal/move_selected_view.js b/app/assets/javascripts/discourse/views/modal/move_selected_view.js index 61ff11e0e2..409759a723 100644 --- a/app/assets/javascripts/discourse/views/modal/move_selected_view.js +++ b/app/assets/javascripts/discourse/views/modal/move_selected_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.MoveSelectedView = window.Discourse.ModalBodyView.extend(Discourse.Presence, { + window.Discourse.MoveSelectedView = Discourse.ModalBodyView.extend({ templateName: 'modal/move_selected', title: Em.String.i18n('topic.move_selected.title'), saving: false, diff --git a/app/assets/javascripts/discourse/views/modal/option_boolean_view.js b/app/assets/javascripts/discourse/views/modal/option_boolean_view.js index de375d07d0..ebc001bc25 100644 --- a/app/assets/javascripts/discourse/views/modal/option_boolean_view.js +++ b/app/assets/javascripts/discourse/views/modal/option_boolean_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.OptionBooleanView = Em.View.extend({ + window.Discourse.OptionBooleanView = Discourse.View.extend({ classNames: ['archetype-option'], composerControllerBinding: 'Discourse.router.composerController', templateName: "modal/option_boolean", diff --git a/app/assets/javascripts/discourse/views/nav_item_view.js b/app/assets/javascripts/discourse/views/nav_item_view.js index e2e90244d4..a19c35afc6 100644 --- a/app/assets/javascripts/discourse/views/nav_item_view.js +++ b/app/assets/javascripts/discourse/views/nav_item_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.NavItemView = Ember.View.extend({ + window.Discourse.NavItemView = Discourse.View.extend({ tagName: 'li', classNameBindings: ['isActive', 'content.hasIcon:has-icon'], attributeBindings: ['title'], diff --git a/app/assets/javascripts/discourse/views/notifications_view.js b/app/assets/javascripts/discourse/views/notifications_view.js index b150a2a233..2754f05051 100644 --- a/app/assets/javascripts/discourse/views/notifications_view.js +++ b/app/assets/javascripts/discourse/views/notifications_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.NotificationsView = Ember.View.extend({ + window.Discourse.NotificationsView = Discourse.View.extend({ classNameBindings: ['content.read', ':notifications'], templateName: 'notifications' }); diff --git a/app/assets/javascripts/discourse/views/participant_view.js b/app/assets/javascripts/discourse/views/participant_view.js index a72d3779a4..655201d095 100644 --- a/app/assets/javascripts/discourse/views/participant_view.js +++ b/app/assets/javascripts/discourse/views/participant_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ParticipantView = Ember.View.extend({ + window.Discourse.ParticipantView = Discourse.View.extend({ templateName: 'participant', toggled: (function() { return this.get('controller.userFilters').contains(this.get('participant.username')); diff --git a/app/assets/javascripts/discourse/views/post_link_view.js b/app/assets/javascripts/discourse/views/post_link_view.js index cfe1b135d8..a4090f6bf2 100644 --- a/app/assets/javascripts/discourse/views/post_link_view.js +++ b/app/assets/javascripts/discourse/views/post_link_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.PostLinkView = Ember.View.extend({ + window.Discourse.PostLinkView = Discourse.View.extend({ tagName: 'li', classNameBindings: ['direction'], direction: (function() { diff --git a/app/assets/javascripts/discourse/views/post_menu_view.js b/app/assets/javascripts/discourse/views/post_menu_view.js index 7221106e6b..8e41e6c789 100644 --- a/app/assets/javascripts/discourse/views/post_menu_view.js +++ b/app/assets/javascripts/discourse/views/post_menu_view.js @@ -13,7 +13,7 @@ (function() { - window.Discourse.PostMenuView = Ember.View.extend(Discourse.Presence, { + window.Discourse.PostMenuView = Discourse.View.extend({ tagName: 'section', classNames: ['post-menu-area', 'clearfix'], /* Delegate to render#{button} diff --git a/app/assets/javascripts/discourse/views/post_view.js b/app/assets/javascripts/discourse/views/post_view.js index 3b7c811686..6e23cf6e3d 100644 --- a/app/assets/javascripts/discourse/views/post_view.js +++ b/app/assets/javascripts/discourse/views/post_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.PostView = Ember.View.extend({ + window.Discourse.PostView = Discourse.View.extend({ classNames: ['topic-post', 'clearfix'], templateName: 'post', classNameBindings: ['lastPostClass', 'postTypeClass', 'selectedClass', 'post.hidden:hidden', 'isDeleted:deleted', 'parentPost:replies-above'], diff --git a/app/assets/javascripts/discourse/views/search/search_view.js b/app/assets/javascripts/discourse/views/search/search_view.js index 93b4de1b99..12f5b4702f 100644 --- a/app/assets/javascripts/discourse/views/search/search_view.js +++ b/app/assets/javascripts/discourse/views/search/search_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.SearchView = Ember.View.extend(Discourse.Presence, { + window.Discourse.SearchView = Discourse.View.extend({ tagName: 'div', classNames: ['d-dropdown'], elementId: 'search-dropdown', diff --git a/app/assets/javascripts/discourse/views/selected_posts_view.js b/app/assets/javascripts/discourse/views/selected_posts_view.js index 888b1b34f8..ea2de1a551 100644 --- a/app/assets/javascripts/discourse/views/selected_posts_view.js +++ b/app/assets/javascripts/discourse/views/selected_posts_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.SelectedPostsView = Ember.View.extend({ + window.Discourse.SelectedPostsView = Discourse.View.extend({ elementId: 'selected-posts', templateName: 'selected_posts', topicBinding: 'controller.content', diff --git a/app/assets/javascripts/discourse/views/suggested_topic_view.js b/app/assets/javascripts/discourse/views/suggested_topic_view.js index 702b7543d8..9f9333780d 100644 --- a/app/assets/javascripts/discourse/views/suggested_topic_view.js +++ b/app/assets/javascripts/discourse/views/suggested_topic_view.js @@ -1,6 +1,6 @@ (function() { - Discourse.SuggestedTopicView = Ember.View.extend({ + Discourse.SuggestedTopicView = Discourse.View.extend({ templateName: 'suggested_topic' }); diff --git a/app/assets/javascripts/discourse/views/topic_admin_menu_view.js b/app/assets/javascripts/discourse/views/topic_admin_menu_view.js index b3963c6ba3..055fdd77d3 100644 --- a/app/assets/javascripts/discourse/views/topic_admin_menu_view.js +++ b/app/assets/javascripts/discourse/views/topic_admin_menu_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.TopicAdminMenuView = Em.View.extend({ + window.Discourse.TopicAdminMenuView = Discourse.View.extend({ willDestroyElement: function() { return jQuery('html').off('mouseup.discourse-topic-admin-menu'); }, diff --git a/app/assets/javascripts/discourse/views/topic_summary/topic_links_view.js b/app/assets/javascripts/discourse/views/topic_summary/topic_links_view.js index 638f72aaea..6d9e4e08d7 100644 --- a/app/assets/javascripts/discourse/views/topic_summary/topic_links_view.js +++ b/app/assets/javascripts/discourse/views/topic_summary/topic_links_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.TopicLinksView = Ember.View.extend({ + window.Discourse.TopicLinksView = Discourse.View.extend({ templateName: 'topic_summary/links' }); diff --git a/app/assets/javascripts/discourse/views/topic_summary/topic_summary_view.js b/app/assets/javascripts/discourse/views/topic_summary/topic_summary_view.js index 5115f790a7..05d0f62159 100644 --- a/app/assets/javascripts/discourse/views/topic_summary/topic_summary_view.js +++ b/app/assets/javascripts/discourse/views/topic_summary/topic_summary_view.js @@ -66,7 +66,7 @@ /* If we have a best of view */ if (this.get('controller.showBestOf')) { - container.pushObject(Discourse.View.create({ + container.pushObject(Em.View.create({ templateName: 'topic_summary/best_of_toggle', tagName: 'section', classNames: ['information'] @@ -76,7 +76,7 @@ */ if (this.get('topic.isPrivateMessage')) { - return container.pushObject(Discourse.View.create({ + return container.pushObject(Em.View.create({ templateName: 'topic_summary/private_message', tagName: 'section', classNames: ['information'] diff --git a/app/assets/javascripts/discourse/views/topic_view.js b/app/assets/javascripts/discourse/views/topic_view.js index f7e93d0739..75acd9cd21 100644 --- a/app/assets/javascripts/discourse/views/topic_view.js +++ b/app/assets/javascripts/discourse/views/topic_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.TopicView = Ember.View.extend(Discourse.Scrolling, { + window.Discourse.TopicView = Discourse.View.extend(Discourse.Scrolling, { templateName: 'topic', topicBinding: 'controller.content', userFiltersBinding: 'controller.userFilters', diff --git a/app/assets/javascripts/discourse/views/user/activity_filter_view.js b/app/assets/javascripts/discourse/views/user/activity_filter_view.js index 8711f582b0..0bc19f99a9 100644 --- a/app/assets/javascripts/discourse/views/user/activity_filter_view.js +++ b/app/assets/javascripts/discourse/views/user/activity_filter_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.ActivityFilterView = Em.View.extend(Discourse.Presence, { + window.Discourse.ActivityFilterView = Discourse.View.extend({ tagName: 'li', classNameBindings: ['active'], active: (function() { diff --git a/app/assets/javascripts/discourse/views/user/preferences_email_view.js b/app/assets/javascripts/discourse/views/user/preferences_email_view.js index 083f23eb8a..a37a4f02c9 100644 --- a/app/assets/javascripts/discourse/views/user/preferences_email_view.js +++ b/app/assets/javascripts/discourse/views/user/preferences_email_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.PreferencesEmailView = Ember.View.extend({ + window.Discourse.PreferencesEmailView = Discourse.View.extend({ templateName: 'user/email', classNames: ['user-preferences'], didInsertElement: function() { diff --git a/app/assets/javascripts/discourse/views/user/preferences_username_view.js b/app/assets/javascripts/discourse/views/user/preferences_username_view.js index ae494609de..6b346f61f9 100644 --- a/app/assets/javascripts/discourse/views/user/preferences_username_view.js +++ b/app/assets/javascripts/discourse/views/user/preferences_username_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.PreferencesUsernameView = Ember.View.extend({ + window.Discourse.PreferencesUsernameView = Discourse.View.extend({ templateName: 'user/username', classNames: ['user-preferences'], didInsertElement: function() { diff --git a/app/assets/javascripts/discourse/views/user/preferences_view.js b/app/assets/javascripts/discourse/views/user/preferences_view.js index c856298976..def30f381a 100644 --- a/app/assets/javascripts/discourse/views/user/preferences_view.js +++ b/app/assets/javascripts/discourse/views/user/preferences_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.PreferencesView = Ember.View.extend({ + window.Discourse.PreferencesView = Discourse.View.extend({ templateName: 'user/preferences', classNames: ['user-preferences'] }); diff --git a/app/assets/javascripts/discourse/views/user/user_activity_view.js b/app/assets/javascripts/discourse/views/user/user_activity_view.js index e6a43d2b65..d36f027968 100644 --- a/app/assets/javascripts/discourse/views/user/user_activity_view.js +++ b/app/assets/javascripts/discourse/views/user/user_activity_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.UserActivityView = Ember.View.extend({ + window.Discourse.UserActivityView = Discourse.View.extend({ templateName: 'user/activity', currentUserBinding: 'Discourse.currentUser', userBinding: 'controller.content', diff --git a/app/assets/javascripts/discourse/views/user/user_invited_view.js b/app/assets/javascripts/discourse/views/user/user_invited_view.js index eaa6f3d3c5..30988c99b1 100644 --- a/app/assets/javascripts/discourse/views/user/user_invited_view.js +++ b/app/assets/javascripts/discourse/views/user/user_invited_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.UserInvitedView = Ember.View.extend({ + window.Discourse.UserInvitedView = Discourse.View.extend({ templateName: 'user/invited' }); diff --git a/app/assets/javascripts/discourse/views/user/user_private_messages_view.js b/app/assets/javascripts/discourse/views/user/user_private_messages_view.js index 6d86f88940..db30faee5b 100644 --- a/app/assets/javascripts/discourse/views/user/user_private_messages_view.js +++ b/app/assets/javascripts/discourse/views/user/user_private_messages_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.UserPrivateMessagesView = Ember.View.extend({ + window.Discourse.UserPrivateMessagesView = Discourse.View.extend({ templateName: 'user/private_messages', selectCurrent: function(evt) { var t; diff --git a/app/assets/javascripts/discourse/views/user/user_stream_view.js b/app/assets/javascripts/discourse/views/user/user_stream_view.js index f8e309e00e..19607ed4ca 100644 --- a/app/assets/javascripts/discourse/views/user/user_stream_view.js +++ b/app/assets/javascripts/discourse/views/user/user_stream_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.UserStreamView = Ember.View.extend(Discourse.Scrolling, { + window.Discourse.UserStreamView = Discourse.View.extend(Discourse.Scrolling, { templateName: 'user/stream', currentUserBinding: 'Discourse.currentUser', userBinding: 'controller.content', diff --git a/app/assets/javascripts/discourse/views/user/user_view.js b/app/assets/javascripts/discourse/views/user/user_view.js index 484d5d993b..57a9aa7bbf 100644 --- a/app/assets/javascripts/discourse/views/user/user_view.js +++ b/app/assets/javascripts/discourse/views/user/user_view.js @@ -1,6 +1,6 @@ (function() { - window.Discourse.UserView = Ember.View.extend({ + window.Discourse.UserView = Discourse.View.extend({ templateName: 'user/user', userBinding: 'controller.content', updateTitle: (function() { diff --git a/app/assets/javascripts/discourse/views/view.js b/app/assets/javascripts/discourse/views/view.js index 5731ef99c9..c6af2afb1e 100644 --- a/app/assets/javascripts/discourse/views/view.js +++ b/app/assets/javascripts/discourse/views/view.js @@ -1,13 +1,16 @@ (function() { - window.Discourse.View = Ember.View.extend(Discourse.Presence, { - /* Overwrite this to do a different display - */ + /** + A base view that gives us common functionality, for example `present` and `blank` - displayErrors: function(errors, callback) { - alert(errors.join("\n")); - return typeof callback === "function" ? callback() : void 0; - } + @class View + @extends Ember.View + @uses Discourse.Presence + @namespace Discourse + @module Discourse + **/ + window.Discourse.View = Ember.View.extend(Discourse.Presence, { + }); }).call(this); diff --git a/spec/javascripts/spec.js b/spec/javascripts/spec.js index bf5b6286ab..83c82a970f 100644 --- a/spec/javascripts/spec.js +++ b/spec/javascripts/spec.js @@ -26,7 +26,6 @@ // Stuff we need to load first //= require_tree ../../app/assets/javascripts/discourse/mixins //= require ../../app/assets/javascripts/discourse/components/debounce -//= require ../../app/assets/javascripts/discourse/views/view //= require ../../app/assets/javascripts/discourse/controllers/controller //= require ../../app/assets/javascripts/discourse/views/modal/modal_body_view //= require ../../app/assets/javascripts/discourse/models/model