From e24236826677cff79c653a62a864735600bc413a Mon Sep 17 00:00:00 2001 From: Joshua Gorner Date: Tue, 22 Jul 2014 23:20:45 -0400 Subject: [PATCH] Convert admin section controllers to ES6 modules --- ...min_api_controller.js => admin-api.js.es6} | 2 +- ...ntroller.js => admin-backups-index.js.es6} | 2 +- ...ontroller.js => admin-backups-logs.js.es6} | 2 +- ...ups_controller.js => admin-backups.js.es6} | 2 +- ...badge_controller.js => admin-badge.js.es6} | 2 +- ...dges_controller.js => admin-badges.js.es6} | 4 +- ...oller.js => admin-customize-colors.js.es6} | 2 +- ...ler.js => admin-customize-css-html.js.es6} | 2 +- ...d_controller.js => admin-dashboard.js.es6} | 2 +- .../admin/controllers/admin-email-all.js.es6 | 3 ++ ...controller.js => admin-email-index.js.es6} | 2 +- ...r.js => admin-email-preview-digest.js.es6} | 2 +- .../admin/controllers/admin-email-sent.js.es6 | 17 +++++++++ .../controllers/admin-email-skipped.js.es6 | 17 +++++++++ ...flags_controller.js => admin-flags.js.es6} | 2 +- ...troller.js => admin-github-commits.js.es6} | 2 +- ...group_controller.js => admin-group.js.es6} | 2 +- ...oups_controller.js => admin-groups.js.es6} | 2 +- ...s => admin-log-screened-ip-address.js.es6} | 31 +-------------- ...r.js => admin-logs-screened-emails.js.es6} | 2 +- .../admin-logs-screened-ip-addresses.js.es6 | 28 ++++++++++++++ ...ler.js => admin-logs-screened-urls.js.es6} | 2 +- ...js => admin-logs-staff-action-logs.js.es6} | 2 +- ...rts_controller.js => admin-reports.js.es6} | 2 +- ...ller.js => admin-site-content-edit.js.es6} | 4 +- .../controllers/admin-site-contents.js.es6 | 1 + ...js => admin-site-settings-category.js.es6} | 2 +- ...ntroller.js => admin-site-settings.js.es6} | 2 +- ... => admin-staff-action-log-details.js.es6} | 2 +- ...ontroller.js => admin-suspend-user.js.es6} | 2 +- ...controller.js => admin-user-badges.js.es6} | 2 +- ..._controller.js => admin-user-index.js.es6} | 3 +- .../admin/controllers/admin-user.js.es6 | 10 +++++ ..._controller.js => admin-users-list.js.es6} | 2 +- .../{admin_controller.js => admin.js.es6} | 2 +- .../admin_email_logs_controllers.js | 38 ------------------- ... change-site-customization-details.js.es6} | 2 +- ... delete-site-customization-details.js.es6} | 4 +- ...hboard_route.js => admin-dashboard.js.es6} | 3 +- .../javascripts/discourse/ember/resolver.js | 14 ++++--- .../admin_badges_controller_test.js | 14 +++---- .../admin_email_index_controller_test.js | 4 +- ...in_email_preview_digest_controller_test.js | 4 +- .../admin_site_settings_controller_test.js | 4 +- test/javascripts/helpers/qunit_helpers.js | 14 ++++++- 45 files changed, 146 insertions(+), 123 deletions(-) rename app/assets/javascripts/admin/controllers/{admin_api_controller.js => admin-api.js.es6} (96%) rename app/assets/javascripts/admin/controllers/{admin_backups_index_controller.js => admin-backups-index.js.es6} (96%) rename app/assets/javascripts/admin/controllers/{admin_backups_logs_controller.js => admin-backups-logs.js.es6} (55%) rename app/assets/javascripts/admin/controllers/{admin_backups_controller.js => admin-backups.js.es6} (76%) rename app/assets/javascripts/admin/controllers/{admin_badge_controller.js => admin-badge.js.es6} (92%) rename app/assets/javascripts/admin/controllers/{admin_badges_controller.js => admin-badges.js.es6} (97%) rename app/assets/javascripts/admin/controllers/{admin_customize_colors_controller.js => admin-customize-colors.js.es6} (97%) rename app/assets/javascripts/admin/controllers/{admin_customize_css_html_controller.js => admin-customize-css-html.js.es6} (94%) rename app/assets/javascripts/admin/controllers/{admin_dashboard_controller.js => admin-dashboard.js.es6} (95%) create mode 100644 app/assets/javascripts/admin/controllers/admin-email-all.js.es6 rename app/assets/javascripts/admin/controllers/{admin_email_index_controller.js => admin-email-index.js.es6} (94%) rename app/assets/javascripts/admin/controllers/{admin_email_preview_digest_controller.js => admin-email-preview-digest.js.es6} (88%) create mode 100644 app/assets/javascripts/admin/controllers/admin-email-sent.js.es6 create mode 100644 app/assets/javascripts/admin/controllers/admin-email-skipped.js.es6 rename app/assets/javascripts/admin/controllers/{admin_flags_controller.js => admin-flags.js.es6} (97%) rename app/assets/javascripts/admin/controllers/{admin_github_commits_controller.js => admin-github-commits.js.es6} (80%) rename app/assets/javascripts/admin/controllers/{admin_group_controller.js => admin-group.js.es6} (97%) rename app/assets/javascripts/admin/controllers/{admin_groups_controller.js => admin-groups.js.es6} (91%) rename app/assets/javascripts/admin/controllers/{admin_logs_screened_ip_addresses_controller.js => admin-log-screened-ip-address.js.es6} (71%) rename app/assets/javascripts/admin/controllers/{admin_logs_screened_emails_controller.js => admin-logs-screened-emails.js.es6} (86%) create mode 100644 app/assets/javascripts/admin/controllers/admin-logs-screened-ip-addresses.js.es6 rename app/assets/javascripts/admin/controllers/{admin_logs_screened_urls_controller.js => admin-logs-screened-urls.js.es6} (83%) rename app/assets/javascripts/admin/controllers/{admin_logs_staff_action_logs_controller.js => admin-logs-staff-action-logs.js.es6} (94%) rename app/assets/javascripts/admin/controllers/{admin_reports_controller.js => admin-reports.js.es6} (86%) rename app/assets/javascripts/admin/controllers/{admin_site_content_edit_controller.js => admin-site-content-edit.js.es6} (81%) create mode 100644 app/assets/javascripts/admin/controllers/admin-site-contents.js.es6 rename app/assets/javascripts/admin/controllers/{admin_site_settings_category_controller.js => admin-site-settings-category.js.es6} (95%) rename app/assets/javascripts/admin/controllers/{admin_site_settings_controller.js => admin-site-settings.js.es6} (95%) rename app/assets/javascripts/admin/controllers/{admin_staff_action_log_details_controller.js => admin-staff-action-log-details.js.es6} (66%) rename app/assets/javascripts/admin/controllers/{admin_suspend_user_controller.js => admin-suspend-user.js.es6} (89%) rename app/assets/javascripts/admin/controllers/{admin_user_badges_controller.js => admin-user-badges.js.es6} (97%) rename app/assets/javascripts/admin/controllers/{admin_user_controller.js => admin-user-index.js.es6} (97%) create mode 100644 app/assets/javascripts/admin/controllers/admin-user.js.es6 rename app/assets/javascripts/admin/controllers/{admin_users_list_controller.js => admin-users-list.js.es6} (97%) rename app/assets/javascripts/admin/controllers/{admin_controller.js => admin.js.es6} (84%) delete mode 100644 app/assets/javascripts/admin/controllers/admin_email_logs_controllers.js rename app/assets/javascripts/admin/controllers/{change_site_customization_details_controller.js => change-site-customization-details.js.es6} (83%) rename app/assets/javascripts/admin/controllers/{delete_site_customization_details_controller.js => delete-site-customization-details.js.es6} (64%) rename app/assets/javascripts/admin/routes/{admin_dashboard_route.js => admin-dashboard.js.es6} (96%) diff --git a/app/assets/javascripts/admin/controllers/admin_api_controller.js b/app/assets/javascripts/admin/controllers/admin-api.js.es6 similarity index 96% rename from app/assets/javascripts/admin/controllers/admin_api_controller.js rename to app/assets/javascripts/admin/controllers/admin-api.js.es6 index 856c39c3d56..6dc3ed9ab1c 100644 --- a/app/assets/javascripts/admin/controllers/admin_api_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-api.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminApiController = Ember.ArrayController.extend({ +export default Ember.ArrayController.extend({ actions: { /** diff --git a/app/assets/javascripts/admin/controllers/admin_backups_index_controller.js b/app/assets/javascripts/admin/controllers/admin-backups-index.js.es6 similarity index 96% rename from app/assets/javascripts/admin/controllers/admin_backups_index_controller.js rename to app/assets/javascripts/admin/controllers/admin-backups-index.js.es6 index 1867b252784..15fe4933914 100644 --- a/app/assets/javascripts/admin/controllers/admin_backups_index_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-backups-index.js.es6 @@ -1,4 +1,4 @@ -Discourse.AdminBackupsIndexController = Ember.ArrayController.extend({ +export default Ember.ArrayController.extend({ needs: ["adminBackups"], status: Em.computed.alias("controllers.adminBackups"), diff --git a/app/assets/javascripts/admin/controllers/admin_backups_logs_controller.js b/app/assets/javascripts/admin/controllers/admin-backups-logs.js.es6 similarity index 55% rename from app/assets/javascripts/admin/controllers/admin_backups_logs_controller.js rename to app/assets/javascripts/admin/controllers/admin-backups-logs.js.es6 index 1e4fd13ae73..1b3d90346a1 100644 --- a/app/assets/javascripts/admin/controllers/admin_backups_logs_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-backups-logs.js.es6 @@ -1,4 +1,4 @@ -Discourse.AdminBackupsLogsController = Ember.ArrayController.extend({ +export default Ember.ArrayController.extend({ needs: ["adminBackups"], status: Em.computed.alias("controllers.adminBackups") }); diff --git a/app/assets/javascripts/admin/controllers/admin_backups_controller.js b/app/assets/javascripts/admin/controllers/admin-backups.js.es6 similarity index 76% rename from app/assets/javascripts/admin/controllers/admin_backups_controller.js rename to app/assets/javascripts/admin/controllers/admin-backups.js.es6 index ccfa5a8a074..64bb7ad105b 100644 --- a/app/assets/javascripts/admin/controllers/admin_backups_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-backups.js.es6 @@ -1,4 +1,4 @@ -Discourse.AdminBackupsController = Ember.ObjectController.extend({ +export default Ember.ObjectController.extend({ noOperationIsRunning: Em.computed.not("isOperationRunning"), rollbackEnabled: Em.computed.and("canRollback", "restoreEnabled", "noOperationIsRunning"), rollbackDisabled: Em.computed.not("rollbackEnabled") diff --git a/app/assets/javascripts/admin/controllers/admin_badge_controller.js b/app/assets/javascripts/admin/controllers/admin-badge.js.es6 similarity index 92% rename from app/assets/javascripts/admin/controllers/admin_badge_controller.js rename to app/assets/javascripts/admin/controllers/admin-badge.js.es6 index 084e5a8aab3..cc799694bdd 100644 --- a/app/assets/javascripts/admin/controllers/admin_badge_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-badge.js.es6 @@ -8,7 +8,7 @@ @module Discourse **/ -Discourse.AdminBadgeController = Discourse.ObjectController.extend({ +export default Discourse.ObjectController.extend({ /** Whether this badge has been selected. diff --git a/app/assets/javascripts/admin/controllers/admin_badges_controller.js b/app/assets/javascripts/admin/controllers/admin-badges.js.es6 similarity index 97% rename from app/assets/javascripts/admin/controllers/admin_badges_controller.js rename to app/assets/javascripts/admin/controllers/admin-badges.js.es6 index 6c6d46b0bd6..5089a712cde 100644 --- a/app/assets/javascripts/admin/controllers/admin_badges_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-badges.js.es6 @@ -6,8 +6,8 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminBadgesController = Ember.ArrayController.extend({ - itemController: 'adminBadge', +export default Ember.ArrayController.extend({ + itemController: 'admin-badge', queryParams: ['badgeId'], badgeId: Em.computed.alias('selectedId'), diff --git a/app/assets/javascripts/admin/controllers/admin_customize_colors_controller.js b/app/assets/javascripts/admin/controllers/admin-customize-colors.js.es6 similarity index 97% rename from app/assets/javascripts/admin/controllers/admin_customize_colors_controller.js rename to app/assets/javascripts/admin/controllers/admin-customize-colors.js.es6 index c437fd2242f..636905c009a 100644 --- a/app/assets/javascripts/admin/controllers/admin_customize_colors_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-customize-colors.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminCustomizeColorsController = Ember.ArrayController.extend({ +export default Ember.ArrayController.extend({ onlyOverridden: false, diff --git a/app/assets/javascripts/admin/controllers/admin_customize_css_html_controller.js b/app/assets/javascripts/admin/controllers/admin-customize-css-html.js.es6 similarity index 94% rename from app/assets/javascripts/admin/controllers/admin_customize_css_html_controller.js rename to app/assets/javascripts/admin/controllers/admin-customize-css-html.js.es6 index 6733bf9af54..266f06c3e8d 100644 --- a/app/assets/javascripts/admin/controllers/admin_customize_css_html_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-customize-css-html.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminCustomizeCssHtmlController = Ember.ArrayController.extend({ +export default Ember.ArrayController.extend({ actions: { diff --git a/app/assets/javascripts/admin/controllers/admin_dashboard_controller.js b/app/assets/javascripts/admin/controllers/admin-dashboard.js.es6 similarity index 95% rename from app/assets/javascripts/admin/controllers/admin_dashboard_controller.js rename to app/assets/javascripts/admin/controllers/admin-dashboard.js.es6 index 43d4edeeafe..8953d4e7c5b 100644 --- a/app/assets/javascripts/admin/controllers/admin_dashboard_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-dashboard.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminDashboardController = Ember.Controller.extend({ +export default Ember.Controller.extend({ loading: true, versionCheck: null, problemsCheckMinutes: 1, diff --git a/app/assets/javascripts/admin/controllers/admin-email-all.js.es6 b/app/assets/javascripts/admin/controllers/admin-email-all.js.es6 new file mode 100644 index 00000000000..981d253ced6 --- /dev/null +++ b/app/assets/javascripts/admin/controllers/admin-email-all.js.es6 @@ -0,0 +1,3 @@ +import AdminEmailSkippedController from "admin/controllers/admin-email-skipped" + +export default AdminEmailSkippedController.extend({}); diff --git a/app/assets/javascripts/admin/controllers/admin_email_index_controller.js b/app/assets/javascripts/admin/controllers/admin-email-index.js.es6 similarity index 94% rename from app/assets/javascripts/admin/controllers/admin_email_index_controller.js rename to app/assets/javascripts/admin/controllers/admin-email-index.js.es6 index cce848c2a38..75b28701309 100644 --- a/app/assets/javascripts/admin/controllers/admin_email_index_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-email-index.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminEmailIndexController = Discourse.Controller.extend({ +export default Discourse.Controller.extend({ /** Is the "send test email" button disabled? diff --git a/app/assets/javascripts/admin/controllers/admin_email_preview_digest_controller.js b/app/assets/javascripts/admin/controllers/admin-email-preview-digest.js.es6 similarity index 88% rename from app/assets/javascripts/admin/controllers/admin_email_preview_digest_controller.js rename to app/assets/javascripts/admin/controllers/admin-email-preview-digest.js.es6 index 171f0094d17..9e9653d6301 100644 --- a/app/assets/javascripts/admin/controllers/admin_email_preview_digest_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-email-preview-digest.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminEmailPreviewDigestController = Discourse.ObjectController.extend({ +export default Discourse.ObjectController.extend({ actions: { refresh: function() { diff --git a/app/assets/javascripts/admin/controllers/admin-email-sent.js.es6 b/app/assets/javascripts/admin/controllers/admin-email-sent.js.es6 new file mode 100644 index 00000000000..671f8ce4c8d --- /dev/null +++ b/app/assets/javascripts/admin/controllers/admin-email-sent.js.es6 @@ -0,0 +1,17 @@ + /** + This controller supports email logs functionality. + + @class AdminEmailSentController + @extends Discourse.Controller + @namespace Discourse + @module Discourse +**/ +export default Discourse.Controller.extend({ + + filterEmailLogs: Discourse.debounce(function() { + var self = this; + Discourse.EmailLog.findAll(this.get("filter")).then(function(logs) { + self.set("model", logs); + }); + }, 250).observes("filter.user", "filter.address", "filter.type", "filter.reply_key") +}); diff --git a/app/assets/javascripts/admin/controllers/admin-email-skipped.js.es6 b/app/assets/javascripts/admin/controllers/admin-email-skipped.js.es6 new file mode 100644 index 00000000000..49aa73ad689 --- /dev/null +++ b/app/assets/javascripts/admin/controllers/admin-email-skipped.js.es6 @@ -0,0 +1,17 @@ + /** + This controller supports email logs functionality. + + @class AdminEmailSkippedController + @extends Discourse.Controller + @namespace Discourse + @module Discourse +**/ +export default Discourse.Controller.extend({ + + filterEmailLogs: Discourse.debounce(function() { + var self = this; + Discourse.EmailLog.findAll(this.get("filter")).then(function(logs) { + self.set("model", logs); + }); + }, 250).observes("filter.user", "filter.address", "filter.type", "filter.skipped_reason") +}); diff --git a/app/assets/javascripts/admin/controllers/admin_flags_controller.js b/app/assets/javascripts/admin/controllers/admin-flags.js.es6 similarity index 97% rename from app/assets/javascripts/admin/controllers/admin_flags_controller.js rename to app/assets/javascripts/admin/controllers/admin-flags.js.es6 index c23aed6c8d1..7e4542cd8d5 100644 --- a/app/assets/javascripts/admin/controllers/admin_flags_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-flags.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminFlagsController = Ember.ArrayController.extend({ +export default Ember.ArrayController.extend({ actions: { /** diff --git a/app/assets/javascripts/admin/controllers/admin_github_commits_controller.js b/app/assets/javascripts/admin/controllers/admin-github-commits.js.es6 similarity index 80% rename from app/assets/javascripts/admin/controllers/admin_github_commits_controller.js rename to app/assets/javascripts/admin/controllers/admin-github-commits.js.es6 index 5e8a7f57c1c..4703ab6f244 100644 --- a/app/assets/javascripts/admin/controllers/admin_github_commits_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-github-commits.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminGithubCommitsController = Ember.ArrayController.extend({ +export default Ember.ArrayController.extend({ goToGithub: function() { window.open('https://github.com/discourse/discourse'); } diff --git a/app/assets/javascripts/admin/controllers/admin_group_controller.js b/app/assets/javascripts/admin/controllers/admin-group.js.es6 similarity index 97% rename from app/assets/javascripts/admin/controllers/admin_group_controller.js rename to app/assets/javascripts/admin/controllers/admin-group.js.es6 index 4b5f5bfb004..10cee82d99a 100644 --- a/app/assets/javascripts/admin/controllers/admin_group_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-group.js.es6 @@ -1,4 +1,4 @@ -Discourse.AdminGroupController = Em.ObjectController.extend({ +export default Em.ObjectController.extend({ needs: ['adminGroups'], members: null, disableSave: false, diff --git a/app/assets/javascripts/admin/controllers/admin_groups_controller.js b/app/assets/javascripts/admin/controllers/admin-groups.js.es6 similarity index 91% rename from app/assets/javascripts/admin/controllers/admin_groups_controller.js rename to app/assets/javascripts/admin/controllers/admin-groups.js.es6 index 563b4f17bc5..694c3ebe65f 100644 --- a/app/assets/javascripts/admin/controllers/admin_groups_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-groups.js.es6 @@ -1,4 +1,4 @@ -Discourse.AdminGroupsController = Ember.ArrayController.extend({ +export default Ember.ArrayController.extend({ sortProperties: ['name'], refreshingAutoGroups: false, diff --git a/app/assets/javascripts/admin/controllers/admin_logs_screened_ip_addresses_controller.js b/app/assets/javascripts/admin/controllers/admin-log-screened-ip-address.js.es6 similarity index 71% rename from app/assets/javascripts/admin/controllers/admin_logs_screened_ip_addresses_controller.js rename to app/assets/javascripts/admin/controllers/admin-log-screened-ip-address.js.es6 index 1e39d95a306..edd2e09148a 100644 --- a/app/assets/javascripts/admin/controllers/admin_logs_screened_ip_addresses_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-log-screened-ip-address.js.es6 @@ -1,33 +1,4 @@ -/** - This controller supports the interface for listing screened IP addresses in the admin section. - - @class AdminLogsScreenedIpAddressesController - @extends Ember.ArrayController - @namespace Discourse - @module Discourse -**/ -Discourse.AdminLogsScreenedIpAddressesController = Ember.ArrayController.extend(Discourse.Presence, { - loading: false, - content: [], - itemController: 'adminLogsScreenedIpAddress', - - show: function() { - var self = this; - this.set('loading', true); - Discourse.ScreenedIpAddress.findAll().then(function(result) { - self.set('content', result); - self.set('loading', false); - }); - }, - - actions: { - recordAdded: function(arg) { - this.get("content").unshiftObject(arg); - } - } -}); - -Discourse.AdminLogsScreenedIpAddressController = Ember.ObjectController.extend({ +export default Ember.ObjectController.extend({ editing: false, savedIpAddress: null, diff --git a/app/assets/javascripts/admin/controllers/admin_logs_screened_emails_controller.js b/app/assets/javascripts/admin/controllers/admin-logs-screened-emails.js.es6 similarity index 86% rename from app/assets/javascripts/admin/controllers/admin_logs_screened_emails_controller.js rename to app/assets/javascripts/admin/controllers/admin-logs-screened-emails.js.es6 index f81f632f0cc..df080246a57 100644 --- a/app/assets/javascripts/admin/controllers/admin_logs_screened_emails_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-logs-screened-emails.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminLogsScreenedEmailsController = Ember.ArrayController.extend(Discourse.Presence, { +export default Ember.ArrayController.extend(Discourse.Presence, { loading: false, content: [], diff --git a/app/assets/javascripts/admin/controllers/admin-logs-screened-ip-addresses.js.es6 b/app/assets/javascripts/admin/controllers/admin-logs-screened-ip-addresses.js.es6 new file mode 100644 index 00000000000..57137c366e1 --- /dev/null +++ b/app/assets/javascripts/admin/controllers/admin-logs-screened-ip-addresses.js.es6 @@ -0,0 +1,28 @@ +/** + This controller supports the interface for listing screened IP addresses in the admin section. + + @class AdminLogsScreenedIpAddressesController + @extends Ember.ArrayController + @namespace Discourse + @module Discourse +**/ +export default Ember.ArrayController.extend(Discourse.Presence, { + loading: false, + content: [], + itemController: 'adminLogsScreenedIpAddress', + + show: function() { + var self = this; + this.set('loading', true); + Discourse.ScreenedIpAddress.findAll().then(function(result) { + self.set('content', result); + self.set('loading', false); + }); + }, + + actions: { + recordAdded: function(arg) { + this.get("content").unshiftObject(arg); + } + } +}); diff --git a/app/assets/javascripts/admin/controllers/admin_logs_screened_urls_controller.js b/app/assets/javascripts/admin/controllers/admin-logs-screened-urls.js.es6 similarity index 83% rename from app/assets/javascripts/admin/controllers/admin_logs_screened_urls_controller.js rename to app/assets/javascripts/admin/controllers/admin-logs-screened-urls.js.es6 index c14d95c2337..f2869bb8363 100644 --- a/app/assets/javascripts/admin/controllers/admin_logs_screened_urls_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-logs-screened-urls.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminLogsScreenedUrlsController = Ember.ArrayController.extend(Discourse.Presence, { +export default Ember.ArrayController.extend(Discourse.Presence, { loading: false, content: [], diff --git a/app/assets/javascripts/admin/controllers/admin_logs_staff_action_logs_controller.js b/app/assets/javascripts/admin/controllers/admin-logs-staff-action-logs.js.es6 similarity index 94% rename from app/assets/javascripts/admin/controllers/admin_logs_staff_action_logs_controller.js rename to app/assets/javascripts/admin/controllers/admin-logs-staff-action-logs.js.es6 index 898e20a7d48..0c2ad34453b 100644 --- a/app/assets/javascripts/admin/controllers/admin_logs_staff_action_logs_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-logs-staff-action-logs.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminLogsStaffActionLogsController = Ember.ArrayController.extend(Discourse.Presence, { +export default Ember.ArrayController.extend(Discourse.Presence, { loading: false, filters: {}, diff --git a/app/assets/javascripts/admin/controllers/admin_reports_controller.js b/app/assets/javascripts/admin/controllers/admin-reports.js.es6 similarity index 86% rename from app/assets/javascripts/admin/controllers/admin_reports_controller.js rename to app/assets/javascripts/admin/controllers/admin-reports.js.es6 index 80252b49ec9..f28ac3cf314 100644 --- a/app/assets/javascripts/admin/controllers/admin_reports_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-reports.js.es6 @@ -1,4 +1,4 @@ -Discourse.AdminReportsController = Ember.ObjectController.extend({ +export default Ember.ObjectController.extend({ viewMode: 'table', viewingTable: Em.computed.equal('viewMode', 'table'), diff --git a/app/assets/javascripts/admin/controllers/admin_site_content_edit_controller.js b/app/assets/javascripts/admin/controllers/admin-site-content-edit.js.es6 similarity index 81% rename from app/assets/javascripts/admin/controllers/admin_site_content_edit_controller.js rename to app/assets/javascripts/admin/controllers/admin-site-content-edit.js.es6 index 185ea0818a2..44f00e3a9f7 100644 --- a/app/assets/javascripts/admin/controllers/admin_site_content_edit_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-site-content-edit.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminSiteContentEditController = Discourse.Controller.extend({ +export default Discourse.Controller.extend({ saveDisabled: function() { if (this.get('saving')) { return true; } @@ -24,5 +24,3 @@ Discourse.AdminSiteContentEditController = Discourse.Controller.extend({ } } }); - -Discourse.AdminSiteContentsController = Ember.ArrayController.extend({}); diff --git a/app/assets/javascripts/admin/controllers/admin-site-contents.js.es6 b/app/assets/javascripts/admin/controllers/admin-site-contents.js.es6 new file mode 100644 index 00000000000..484c810b5c7 --- /dev/null +++ b/app/assets/javascripts/admin/controllers/admin-site-contents.js.es6 @@ -0,0 +1 @@ +export default Ember.ArrayController.extend({}); diff --git a/app/assets/javascripts/admin/controllers/admin_site_settings_category_controller.js b/app/assets/javascripts/admin/controllers/admin-site-settings-category.js.es6 similarity index 95% rename from app/assets/javascripts/admin/controllers/admin_site_settings_category_controller.js rename to app/assets/javascripts/admin/controllers/admin-site-settings-category.js.es6 index 60b46223445..f9f477ac9a8 100644 --- a/app/assets/javascripts/admin/controllers/admin_site_settings_category_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-site-settings-category.js.es6 @@ -1,4 +1,4 @@ -Discourse.AdminSiteSettingsCategoryController = Ember.ObjectController.extend({ +export default Ember.ObjectController.extend({ categoryNameKey: null, needs: ['adminSiteSettings'], diff --git a/app/assets/javascripts/admin/controllers/admin_site_settings_controller.js b/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 similarity index 95% rename from app/assets/javascripts/admin/controllers/admin_site_settings_controller.js rename to app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 index 5d6694bb739..3c5c6088380 100644 --- a/app/assets/javascripts/admin/controllers/admin_site_settings_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminSiteSettingsController = Ember.ArrayController.extend(Discourse.Presence, { +export default Ember.ArrayController.extend(Discourse.Presence, { filter: null, onlyOverridden: false, filtered: Ember.computed.notEmpty('filter'), diff --git a/app/assets/javascripts/admin/controllers/admin_staff_action_log_details_controller.js b/app/assets/javascripts/admin/controllers/admin-staff-action-log-details.js.es6 similarity index 66% rename from app/assets/javascripts/admin/controllers/admin_staff_action_log_details_controller.js rename to app/assets/javascripts/admin/controllers/admin-staff-action-log-details.js.es6 index 887cde6a863..a81b8051ae7 100644 --- a/app/assets/javascripts/admin/controllers/admin_staff_action_log_details_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-staff-action-log-details.js.es6 @@ -7,4 +7,4 @@ @uses Discourse.ModalFunctionality @module Discourse **/ -Discourse.AdminStaffActionLogDetailsController = Discourse.ObjectController.extend(Discourse.ModalFunctionality, {}); +export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {}); diff --git a/app/assets/javascripts/admin/controllers/admin_suspend_user_controller.js b/app/assets/javascripts/admin/controllers/admin-suspend-user.js.es6 similarity index 89% rename from app/assets/javascripts/admin/controllers/admin_suspend_user_controller.js rename to app/assets/javascripts/admin/controllers/admin-suspend-user.js.es6 index 14d9c862a98..20e6ab4bfcc 100644 --- a/app/assets/javascripts/admin/controllers/admin_suspend_user_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-suspend-user.js.es6 @@ -7,7 +7,7 @@ @uses Discourse.ModalFunctionality @module Discourse **/ -Discourse.AdminSuspendUserController = Discourse.ObjectController.extend(Discourse.ModalFunctionality, { +export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, { submitDisabled: function() { return (!this.get('reason') || this.get('reason').length < 1); diff --git a/app/assets/javascripts/admin/controllers/admin_user_badges_controller.js b/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 similarity index 97% rename from app/assets/javascripts/admin/controllers/admin_user_badges_controller.js rename to app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 index 1cfc771957c..91340b2bb43 100644 --- a/app/assets/javascripts/admin/controllers/admin_user_badges_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 @@ -7,7 +7,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminUserBadgesController = Ember.ArrayController.extend({ +export default Ember.ArrayController.extend({ needs: ["adminUser"], user: Em.computed.alias('controllers.adminUser'), sortProperties: ['granted_at'], diff --git a/app/assets/javascripts/admin/controllers/admin_user_controller.js b/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 similarity index 97% rename from app/assets/javascripts/admin/controllers/admin_user_controller.js rename to app/assets/javascripts/admin/controllers/admin-user-index.js.es6 index aa9381778e8..54c6b5454f1 100644 --- a/app/assets/javascripts/admin/controllers/admin_user_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminUserIndexController = Discourse.ObjectController.extend({ +export default Discourse.ObjectController.extend({ editingTitle: false, originalPrimaryGroupId: null, availableGroups: null, @@ -88,4 +88,3 @@ Discourse.AdminUserIndexController = Discourse.ObjectController.extend({ } }); - diff --git a/app/assets/javascripts/admin/controllers/admin-user.js.es6 b/app/assets/javascripts/admin/controllers/admin-user.js.es6 new file mode 100644 index 00000000000..cd3ce98ddb2 --- /dev/null +++ b/app/assets/javascripts/admin/controllers/admin-user.js.es6 @@ -0,0 +1,10 @@ +/** + The top-level controller for user pages in admin. + Ember assertion says that this class needs to be defined even if it's empty. + + @class AdminUserController + @extends Discourse.ObjectController + @namespace Discourse + @module Discourse +**/ +export default Discourse.ObjectController.extend({}); diff --git a/app/assets/javascripts/admin/controllers/admin_users_list_controller.js b/app/assets/javascripts/admin/controllers/admin-users-list.js.es6 similarity index 97% rename from app/assets/javascripts/admin/controllers/admin_users_list_controller.js rename to app/assets/javascripts/admin/controllers/admin-users-list.js.es6 index 5239056e108..4fc037976fe 100644 --- a/app/assets/javascripts/admin/controllers/admin_users_list_controller.js +++ b/app/assets/javascripts/admin/controllers/admin-users-list.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminUsersListController = Ember.ArrayController.extend(Discourse.Presence, { +export default Ember.ArrayController.extend(Discourse.Presence, { username: null, query: null, selectAll: false, diff --git a/app/assets/javascripts/admin/controllers/admin_controller.js b/app/assets/javascripts/admin/controllers/admin.js.es6 similarity index 84% rename from app/assets/javascripts/admin/controllers/admin_controller.js rename to app/assets/javascripts/admin/controllers/admin.js.es6 index c78b14ee06f..4eb6d8ecbcd 100644 --- a/app/assets/javascripts/admin/controllers/admin_controller.js +++ b/app/assets/javascripts/admin/controllers/admin.js.es6 @@ -6,7 +6,7 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminController = Discourse.Controller.extend({ +export default Discourse.Controller.extend({ showBadges: function() { return this.get('currentUser.admin') && Discourse.SiteSettings.enable_badges; }.property() diff --git a/app/assets/javascripts/admin/controllers/admin_email_logs_controllers.js b/app/assets/javascripts/admin/controllers/admin_email_logs_controllers.js deleted file mode 100644 index 449104c0521..00000000000 --- a/app/assets/javascripts/admin/controllers/admin_email_logs_controllers.js +++ /dev/null @@ -1,38 +0,0 @@ - /** - This controller supports email logs functionality. - - @class AdminEmailSentController - @extends Discourse.Controller - @namespace Discourse - @module Discourse -**/ -Discourse.AdminEmailSentController = Discourse.Controller.extend({ - - filterEmailLogs: Discourse.debounce(function() { - var self = this; - Discourse.EmailLog.findAll(this.get("filter")).then(function(logs) { - self.set("model", logs); - }); - }, 250).observes("filter.user", "filter.address", "filter.type", "filter.reply_key") -}); - - /** - This controller supports email logs functionality. - - @class AdminEmailSkippedController - @extends Discourse.Controller - @namespace Discourse - @module Discourse -**/ -Discourse.AdminEmailSkippedController = Discourse.Controller.extend({ - - filterEmailLogs: Discourse.debounce(function() { - var self = this; - Discourse.EmailLog.findAll(this.get("filter")).then(function(logs) { - self.set("model", logs); - }); - }, 250).observes("filter.user", "filter.address", "filter.type", "filter.skipped_reason") -}); - - -Discourse.AdminEmailAllController = Discourse.AdminEmailSkippedController.extend({}); diff --git a/app/assets/javascripts/admin/controllers/change_site_customization_details_controller.js b/app/assets/javascripts/admin/controllers/change-site-customization-details.js.es6 similarity index 83% rename from app/assets/javascripts/admin/controllers/change_site_customization_details_controller.js rename to app/assets/javascripts/admin/controllers/change-site-customization-details.js.es6 index 121fb2a0032..e5df492ca5b 100644 --- a/app/assets/javascripts/admin/controllers/change_site_customization_details_controller.js +++ b/app/assets/javascripts/admin/controllers/change-site-customization-details.js.es6 @@ -8,7 +8,7 @@ @uses Discourse.ModalFunctionality @module Discourse **/ -Discourse.ChangeSiteCustomizationDetailsController = Discourse.ObjectController.extend(Discourse.ModalFunctionality, { +export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, { previousSelected: Ember.computed.equal('selectedTab', 'previous'), newSelected: Ember.computed.equal('selectedTab', 'new'), diff --git a/app/assets/javascripts/admin/controllers/delete_site_customization_details_controller.js b/app/assets/javascripts/admin/controllers/delete-site-customization-details.js.es6 similarity index 64% rename from app/assets/javascripts/admin/controllers/delete_site_customization_details_controller.js rename to app/assets/javascripts/admin/controllers/delete-site-customization-details.js.es6 index 53a54c5054b..049a362fa89 100644 --- a/app/assets/javascripts/admin/controllers/delete_site_customization_details_controller.js +++ b/app/assets/javascripts/admin/controllers/delete-site-customization-details.js.es6 @@ -8,7 +8,9 @@ @uses Discourse.ModalFunctionality @module Discourse **/ -Discourse.DeleteSiteCustomizationDetailsController = Discourse.ChangeSiteCustomizationDetailsController.extend({ +import ChangeSiteCustomizationDetailsController from "admin/controllers/change-site-customization-details-controller"; + +export default ChangeSiteCustomizationDetailsController.extend({ onShow: function() { this.selectPrevious(); } diff --git a/app/assets/javascripts/admin/routes/admin_dashboard_route.js b/app/assets/javascripts/admin/routes/admin-dashboard.js.es6 similarity index 96% rename from app/assets/javascripts/admin/routes/admin_dashboard_route.js rename to app/assets/javascripts/admin/routes/admin-dashboard.js.es6 index 0c842d9f791..fbcb2eb154c 100644 --- a/app/assets/javascripts/admin/routes/admin_dashboard_route.js +++ b/app/assets/javascripts/admin/routes/admin-dashboard.js.es6 @@ -6,7 +6,8 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminDashboardRoute = Discourse.Route.extend({ + +export default Discourse.Route.extend({ setupController: function(c) { this.fetchDashboardData(c); diff --git a/app/assets/javascripts/discourse/ember/resolver.js b/app/assets/javascripts/discourse/ember/resolver.js index 4f9a25d6e6f..30f032a0070 100644 --- a/app/assets/javascripts/discourse/ember/resolver.js +++ b/app/assets/javascripts/discourse/ember/resolver.js @@ -37,16 +37,20 @@ Discourse.Resolver = Ember.DefaultResolver.extend({ normalize: function(fullName) { var split = fullName.split(':'); if (split.length > 1) { + var discourseBase = 'discourse/' + split[0] + 's/'; + var adminBase = 'admin/' + split[0] + 's/'; // Try slashes - var dashed = Ember.String.dasherize(split[1].replace(/\./g, '/')), - moduleName = 'discourse/' + split[0] + 's/' + dashed; - if (requirejs.entries[moduleName]) { return split[0] + ":" + dashed; } + var dashed = Ember.String.dasherize(split[1].replace(/\./g, '/')); + if (requirejs.entries[discourseBase + dashed] || requirejs.entries[adminBase + dashed]) { + return split[0] + ":" + dashed; + } // Try with dashes instead of slashes dashed = Ember.String.dasherize(split[1].replace(/\./g, '-')); - moduleName = 'discourse/' + split[0] + 's/' + dashed; - if (requirejs.entries[moduleName]) { return split[0] + ":" + dashed; } + if (requirejs.entries[discourseBase + dashed] || requirejs.entries[adminBase + dashed]) { + return split[0] + ":" + dashed; + } } return this._super(fullName); }, diff --git a/test/javascripts/admin/controllers/admin_badges_controller_test.js b/test/javascripts/admin/controllers/admin_badges_controller_test.js index ccf6aa7cfd6..ddfb02b7159 100644 --- a/test/javascripts/admin/controllers/admin_badges_controller_test.js +++ b/test/javascripts/admin/controllers/admin_badges_controller_test.js @@ -1,29 +1,29 @@ -module("Discourse.AdminBadgesController"); +module("controller:admin-badges"); test("canEditDescription", function() { var badge, controller; badge = Discourse.Badge.create({id: 101, name: "Test Badge"}); - controller = testController(Discourse.AdminBadgesController, [badge]); + controller = testController("admin-badges", [badge]); controller.send('selectBadge', badge); ok(controller.get('canEditDescription'), "allows editing description when a translation exists for the badge name"); this.stub(I18n, "t").returns("translated string"); badge = Discourse.Badge.create({id: 102, name: "Test Badge"}); - controller = testController(Discourse.AdminBadgesController, [badge]); + controller = testController("admin-badges", [badge]); controller.send('selectBadge', badge); ok(!controller.get('canEditDescription'), "shows the displayName when it is different from the name"); }); test("createNewBadge", function() { - var controller = testController(Discourse.AdminBadgesController, []); + var controller = testController("admin-badges", []); controller.send('createNewBadge'); equal(controller.get('model.length'), 1, "adds a new badge to the list of badges"); }); test("selectBadge", function() { var badge = Discourse.Badge.create({id: 101, name: "Test Badge"}), - controller = testController(Discourse.AdminBadgesController, [badge]); + controller = testController("admin-badges", [badge]); controller.send('selectBadge', badge); equal(controller.get('selectedItem'), badge, "the badge is selected"); @@ -32,7 +32,7 @@ test("selectBadge", function() { test("save", function() { var badge = Discourse.Badge.create({id: 101, name: "Test Badge"}), otherBadge = Discourse.Badge.create({id: 102, name: "Other Badge"}), - controller = testController(Discourse.AdminBadgesController, [badge, otherBadge]); + controller = testController("admin-badges", [badge, otherBadge]); controller.send('selectBadge', badge); this.stub(badge, "save").returns(Ember.RSVP.resolve({})); @@ -43,7 +43,7 @@ test("save", function() { test("destroy", function() { var badge = Discourse.Badge.create({id: 101, name: "Test Badge"}), otherBadge = Discourse.Badge.create({id: 102, name: "Other Badge"}), - controller = testController(Discourse.AdminBadgesController, [badge, otherBadge]); + controller = testController("admin-badges", [badge, otherBadge]); this.stub(badge, 'destroy').returns(Ember.RSVP.resolve({})); diff --git a/test/javascripts/admin/controllers/admin_email_index_controller_test.js b/test/javascripts/admin/controllers/admin_email_index_controller_test.js index a5330b3186c..d5d780e1d43 100644 --- a/test/javascripts/admin/controllers/admin_email_index_controller_test.js +++ b/test/javascripts/admin/controllers/admin_email_index_controller_test.js @@ -1,5 +1,5 @@ -module("Discourse.AdminEmailIndexController"); +module("controller:admin-email-index"); test("mixes in Discourse.Presence", function() { - ok(Discourse.Presence.detect(Discourse.AdminEmailIndexController.create())); + ok(Discourse.Presence.detect(controllerFor("admin-email-index"))); }); diff --git a/test/javascripts/admin/controllers/admin_email_preview_digest_controller_test.js b/test/javascripts/admin/controllers/admin_email_preview_digest_controller_test.js index 606caba5ad9..f42dbc17870 100644 --- a/test/javascripts/admin/controllers/admin_email_preview_digest_controller_test.js +++ b/test/javascripts/admin/controllers/admin_email_preview_digest_controller_test.js @@ -1,5 +1,5 @@ -module("Discourse.AdminEmailPreviewDigestController"); +module("controller:admin-email-preview-digest"); test("mixes in Discourse.Presence", function() { - ok(Discourse.Presence.detect(Discourse.AdminEmailPreviewDigestController.create())); + ok(Discourse.Presence.detect(controllerFor("admin-email-preview-digest"))); }); diff --git a/test/javascripts/admin/controllers/admin_site_settings_controller_test.js b/test/javascripts/admin/controllers/admin_site_settings_controller_test.js index 5e78af456bf..69472b294ec 100644 --- a/test/javascripts/admin/controllers/admin_site_settings_controller_test.js +++ b/test/javascripts/admin/controllers/admin_site_settings_controller_test.js @@ -1,4 +1,4 @@ -module("Discourse.AdminSiteSettingsController", { +module("controller:admin-site-settings", { setup: function() { sinon.stub(Ember.run, "debounce").callsArg(1); }, @@ -16,7 +16,7 @@ test("filter", function() { nameKey: 'posting', name: 'posting', siteSettings: [Discourse.SiteSetting.create({"setting":"display_name_on_posts","description":"x","default":false,"type":"bool","value":"true","category":"posting"})] })]); - var adminSiteSettingsController = testController(Discourse.AdminSiteSettingsController, allSettings); + var adminSiteSettingsController = testController("admin-site-settings", allSettings); adminSiteSettingsController.set('allSiteSettings', allSettings); equal(adminSiteSettingsController.get('content')[0].nameKey, 'users', "Can get first site setting category's name key."); diff --git a/test/javascripts/helpers/qunit_helpers.js b/test/javascripts/helpers/qunit_helpers.js index 4572d97c837..3144373aea6 100644 --- a/test/javascripts/helpers/qunit_helpers.js +++ b/test/javascripts/helpers/qunit_helpers.js @@ -27,8 +27,18 @@ function integration(name, lifecycle) { function testController(klass, model) { // HAX until we get ES6 everywhere: if (typeof klass === "string") { - var moduleName = 'discourse/controllers/' + klass, - module = requirejs.entries[moduleName]; + var base = "discourse", + moduleName, + module; + + // maybe a bit too hacky? (all of the "admin-*" controllers are in the "admin" directory) + if (klass.indexOf("admin") == 0) { + base = "admin"; + } + + moduleName = base + '/controllers/' + klass; + module = requirejs.entries[moduleName]; + if (module) { klass = require(moduleName, null, null, true).default; }