mirror of
https://github.com/discourse/discourse.git
synced 2025-04-17 01:59:06 +08:00
ES6: Mega update of controllers
This commit is contained in:
parent
1c9ccc6eb1
commit
0adfeb1cff
@ -1,13 +1,8 @@
|
||||
/**
|
||||
The modal for agreeing with a flag.
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class AdminAgreeFlagController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
|
||||
needs: ["adminFlags"],
|
||||
|
||||
|
@ -1,14 +1,16 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
This is the itemController for `Discourse.AdminBadgesController`. Its main purpose
|
||||
is to indicate which badge was selected.
|
||||
|
||||
@class AdminBadgeController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
/**
|
||||
Whether this badge has been selected.
|
||||
|
||||
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
The modal for deleting a flag.
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class AdminDeleteFlagController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
|
||||
needs: ["adminFlags"],
|
||||
|
||||
|
@ -1,12 +1,6 @@
|
||||
/**
|
||||
This controller supports email functionality.
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
@class AdminEmailIndexController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
export default DiscourseController.extend({
|
||||
|
||||
/**
|
||||
Is the "send test email" button disabled?
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
This controller previews an email digest
|
||||
|
||||
@class AdminEmailPreviewDigestController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
|
||||
actions: {
|
||||
refresh: function() {
|
||||
|
@ -1,12 +1,6 @@
|
||||
/**
|
||||
This controller supports email logs functionality.
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
@class AdminEmailSentController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
export default DiscourseController.extend({
|
||||
|
||||
filterEmailLogs: Discourse.debounce(function() {
|
||||
var self = this;
|
||||
|
@ -1,13 +1,6 @@
|
||||
/**
|
||||
This controller supports email logs functionality.
|
||||
|
||||
@class AdminEmailSkippedController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend({
|
||||
filterEmailLogs: Discourse.debounce(function() {
|
||||
var self = this;
|
||||
Discourse.EmailLog.findAll(this.get("filter")).then(function(logs) {
|
||||
|
@ -1,12 +1,6 @@
|
||||
/**
|
||||
This controller is used for editing site content
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
@class AdminSiteContentEditController
|
||||
@extends Ember.ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
export default DiscourseController.extend({
|
||||
|
||||
saveDisabled: function() {
|
||||
if (this.get('saving')) { return true; }
|
||||
|
@ -1,10 +1,5 @@
|
||||
/**
|
||||
The modal for viewing the details of a staff action log record.
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class AdminStaffActionLogDetailsController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality);
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend(ModalFunctionality);
|
||||
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
The modal for suspending a user.
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class AdminSuspendUserController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
|
||||
submitDisabled: function() {
|
||||
return (!this.get('reason') || this.get('reason').length < 1);
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
A controller related to viewing a user in the admin section
|
||||
|
||||
@class AdminUserIndexController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
editingTitle: false,
|
||||
originalPrimaryGroupId: null,
|
||||
availableGroups: null,
|
||||
|
@ -1,10 +1,12 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
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
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend();
|
||||
export default ObjectController.extend();
|
||||
|
@ -1,12 +1,6 @@
|
||||
/**
|
||||
A base admin controller that has access to the Discourse properties.
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
@class AdminController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
export default DiscourseController.extend({
|
||||
showBadges: function() {
|
||||
return this.get('currentUser.admin') && Discourse.SiteSettings.enable_badges;
|
||||
}.property()
|
||||
|
@ -1,4 +1,8 @@
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
previousSelected: Ember.computed.equal('selectedTab', 'previous'),
|
||||
newSelected: Ember.computed.equal('selectedTab', 'new'),
|
||||
|
||||
|
@ -1,13 +1,3 @@
|
||||
/**
|
||||
The modal for viewing the details of a staff action log record
|
||||
for when a site customization is deleted.
|
||||
|
||||
@class DeleteSiteCustomizationDetailsController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
import ChangeSiteCustomizationDetailsController from "admin/controllers/change-site-customization-details";
|
||||
|
||||
export default ChangeSiteCustomizationDetailsController.extend({
|
||||
|
@ -1,22 +1,15 @@
|
||||
/**
|
||||
The modal for selecting an avatar
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class AvatarSelectorController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend(Discourse.ModalFunctionality, {
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend(ModalFunctionality, {
|
||||
|
||||
selectedUploadId: function(){
|
||||
switch(this.get("selected")){
|
||||
case "system":
|
||||
return this.get("system_avatar_upload_id");
|
||||
break;
|
||||
case "gravatar":
|
||||
return this.get("gravatar_avatar_upload_id");
|
||||
break;
|
||||
default:
|
||||
return this.get("custom_avatar_upload_id");
|
||||
}
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
Controller for showing a particular badge.
|
||||
|
||||
@class BadgesShowController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
|
||||
actions: {
|
||||
loadMore: function() {
|
||||
|
@ -1,13 +1,17 @@
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
Modal related to changing the ownership of posts
|
||||
|
||||
@class ChangeOwnerController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@uses ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.SelectedPostsCount, Discourse.ModalFunctionality, {
|
||||
export default ObjectController.extend(Discourse.SelectedPostsCount, ModalFunctionality, {
|
||||
needs: ['topic'],
|
||||
|
||||
topicController: Em.computed.alias('controllers.topic'),
|
||||
|
@ -1,12 +1,6 @@
|
||||
/**
|
||||
This controller supports composing new posts and topics.
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
@class ComposerController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
export default DiscourseController.extend({
|
||||
needs: ['modal', 'topic', 'composer-messages'],
|
||||
|
||||
replyAsNewTopicDraft: Em.computed.equal('model.draftKey', Discourse.Composer.REPLY_AS_NEW_TOPIC_KEY),
|
||||
|
@ -1,10 +0,0 @@
|
||||
/**
|
||||
A base controller for Discourse that includes Presence support.
|
||||
|
||||
@class Controller
|
||||
@extends Ember.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.Presence
|
||||
@module Discourse
|
||||
**/
|
||||
Discourse.Controller = Ember.Controller.extend(Discourse.Presence, Discourse.HasCurrentUser);
|
@ -0,0 +1 @@
|
||||
export default Ember.Controller.extend(Discourse.Presence, Discourse.HasCurrentUser);
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
The modal for creating accounts
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class CreateAccountController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend(Discourse.ModalFunctionality, {
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend(ModalFunctionality, {
|
||||
uniqueUsernameValidation: null,
|
||||
globalNicknameExists: false,
|
||||
complete: false,
|
||||
|
@ -1,4 +1,6 @@
|
||||
export default Discourse.Controller.extend({
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend({
|
||||
needs: ['discovery/topics'],
|
||||
queryParams: ['order', 'ascending', 'status', 'state', 'search'],
|
||||
order: Em.computed.alias('controllers.discovery/topics.order'),
|
||||
|
@ -1,4 +1,6 @@
|
||||
export default Discourse.ObjectController.extend({
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend({
|
||||
loading: false,
|
||||
loadingSpinner: false,
|
||||
scheduledSpinner: null,
|
||||
|
@ -1,13 +1,17 @@
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
Modal for editing / creating a category
|
||||
|
||||
@class EditCategoryController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@uses ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
foregroundColors: ['FFFFFF', '000000'],
|
||||
categoryUploadUrl: '/category/uploads',
|
||||
|
||||
|
@ -1,13 +1,17 @@
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
Modal related to auto closing of topics
|
||||
|
||||
@class EditTopicAutoCloseController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@uses ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
auto_close_valid: true,
|
||||
auto_close_invalid: Em.computed.not('auto_close_valid'),
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
|
||||
var ButtonBackBright = {
|
||||
classes: "btn-primary",
|
||||
@ -24,11 +26,11 @@ var ButtonBackBright = {
|
||||
The controller for the nice error page
|
||||
|
||||
@class ExceptionController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
thrown: null,
|
||||
lastTransition: null,
|
||||
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
Supports logic for flags in the modal
|
||||
|
||||
@class FlagActionTypeController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
needs: ['flag'],
|
||||
|
||||
message: Em.computed.alias('controllers.flag.message'),
|
||||
|
@ -1,13 +1,17 @@
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
This controller supports actions related to flagging
|
||||
|
||||
@class FlagController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@uses ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
|
||||
onShow: function() {
|
||||
this.set('selected', null);
|
||||
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
The modal for when the user has forgotten their password
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class ForgotPasswordController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend(Discourse.ModalFunctionality, {
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend(ModalFunctionality, {
|
||||
|
||||
// You need a value in the field to submit it.
|
||||
submitDisabled: function() {
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
The basic controller for a group
|
||||
|
||||
@class GroupController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
counts: null,
|
||||
|
||||
// It would be nice if bootstrap marked action lists as selected when their links
|
||||
|
@ -1,12 +1,6 @@
|
||||
/**
|
||||
This controller supports actions on the site header
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
@class HeaderController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
export default DiscourseController.extend({
|
||||
topic: null,
|
||||
showExtraInfo: null,
|
||||
notifications: null,
|
||||
|
@ -1,13 +1,17 @@
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
This controller handles displaying of history
|
||||
|
||||
@class HistoryController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@uses ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
loading: false,
|
||||
viewMode: "side_by_side",
|
||||
revisionsTextKey: "post.revisions.controls.comparing_previous_to_current_out_of_total",
|
||||
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
The modal for inviting a user to a private topic
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class InvitePrivateController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
modalClass: 'invite',
|
||||
|
||||
isAdmin: function(){
|
||||
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
The modal for inviting a user to a topic
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class InviteController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend(ModalFunctionality, {
|
||||
needs: ['user-invited'],
|
||||
|
||||
// If this isn't defined, it will proxy to the user model on the preferences
|
||||
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
This controller is used to display the Keyboard Shortcuts Help Modal
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class KeyboardShortcutsHelpController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend(Discourse.ModalFunctionality, {
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend(ModalFunctionality, {
|
||||
needs: ['modal'],
|
||||
|
||||
onShow: function() {
|
||||
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
This controller supports actions related to flagging
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class LoginController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend(Discourse.ModalFunctionality, {
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend(ModalFunctionality, {
|
||||
needs: ['modal', 'createAccount', 'application'],
|
||||
authenticate: null,
|
||||
loggingIn: false,
|
||||
|
@ -1,13 +1,17 @@
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
Modal related to merging of topics
|
||||
|
||||
@class MergeTopicController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@uses ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.SelectedPostsCount, Discourse.ModalFunctionality, {
|
||||
export default ObjectController.extend(Discourse.SelectedPostsCount, ModalFunctionality, {
|
||||
needs: ['topic'],
|
||||
|
||||
topicController: Em.computed.alias('controllers.topic'),
|
||||
|
@ -1,9 +1,3 @@
|
||||
/**
|
||||
Related to showing a modal and its title.
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
@class ModalController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({});
|
||||
export default DiscourseController.extend({});
|
||||
|
@ -1,12 +1,6 @@
|
||||
/**
|
||||
Handles the controller for the default navigation within discovery.
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
@class NavigationDefaultController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
export default DiscourseController.extend({
|
||||
categories: function() {
|
||||
return Discourse.Category.list();
|
||||
}.property(),
|
||||
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
Modal displayed to a user when they are not active yet.
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class NotActivatedController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend(Discourse.ModalFunctionality, {
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend(ModalFunctionality, {
|
||||
emailSent: false,
|
||||
|
||||
actions: {
|
||||
|
@ -1,4 +1,6 @@
|
||||
export default Discourse.ObjectController.extend({
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend({
|
||||
|
||||
scope: function () {
|
||||
return "notifications." + Discourse.Site.currentProp("notificationLookup")[this.get("notification_type")];
|
||||
|
@ -0,0 +1 @@
|
||||
export default Ember.ObjectController.extend(Discourse.Presence, Discourse.HasCurrentUser);
|
@ -1,12 +0,0 @@
|
||||
/**
|
||||
A custom object controller for Discourse
|
||||
|
||||
@class ObjectController
|
||||
@extends Ember.ObjectController
|
||||
@namespace Discourse
|
||||
@uses Discourse.Presence
|
||||
@module Discourse
|
||||
**/
|
||||
Discourse.ObjectController = Ember.ObjectController.extend(Discourse.Presence, Discourse.HasCurrentUser);
|
||||
|
||||
|
@ -1,4 +1,6 @@
|
||||
export default Discourse.ObjectController.extend({
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend({
|
||||
needs: ['topic'],
|
||||
visible: false,
|
||||
user: null,
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
This controller supports actions related to updating one's preferences
|
||||
|
||||
@class PreferencesController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
|
||||
allowAvatarUpload: Discourse.computed.setting('allow_uploaded_avatars'),
|
||||
allowUserLocale: Discourse.computed.setting('allow_user_locale'),
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
This controller supports actions related to updating your "About Me" bio
|
||||
|
||||
@class PreferencesAboutController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
saving: false,
|
||||
|
||||
saveButtonText: function() {
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
This controller supports actions related to updating one's email address
|
||||
|
||||
@class PreferencesEmailController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
taken: false,
|
||||
saving: false,
|
||||
error: false,
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
This controller supports actions related to updating one's username
|
||||
|
||||
@class PreferencesUsernameController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
taken: false,
|
||||
saving: false,
|
||||
error: false,
|
||||
|
@ -1,14 +1,8 @@
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
/*global assetPath:true */
|
||||
|
||||
/**
|
||||
This controller supports the pop up quote button
|
||||
|
||||
@class QuoteButtonController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
export default DiscourseController.extend({
|
||||
needs: ['topic', 'composer'],
|
||||
|
||||
init: function() {
|
||||
|
@ -1,11 +1,3 @@
|
||||
/**
|
||||
Support for searching
|
||||
|
||||
@class SearchController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Em.ArrayController.extend(Discourse.Presence, {
|
||||
|
||||
contextChanged: function(){
|
||||
|
@ -1,12 +1,6 @@
|
||||
/**
|
||||
This controller supports the "share" link controls
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
@class ShareController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend({
|
||||
export default DiscourseController.extend({
|
||||
needs: ['topic'],
|
||||
|
||||
// Close the share controller
|
||||
|
@ -1,13 +1,17 @@
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
Modal related to auto closing of topics
|
||||
|
||||
@class SplitTopicController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@uses ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend(Discourse.SelectedPostsCount, Discourse.ModalFunctionality, {
|
||||
export default ObjectController.extend(Discourse.SelectedPostsCount, ModalFunctionality, {
|
||||
needs: ['topic'],
|
||||
|
||||
topicController: Em.computed.alias('controllers.topic'),
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
This controller supports the admin menu on topics
|
||||
|
||||
@class TopicAdminMenuController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
menuVisible: false,
|
||||
needs: ['modal'],
|
||||
|
||||
|
@ -1,13 +1,15 @@
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
/**
|
||||
Modal for performing bulk actions on topics
|
||||
|
||||
@class TopicBulkActionsController
|
||||
@extends Ember.ArrayController
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@uses ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Ember.ArrayController.extend(Discourse.ModalFunctionality, {
|
||||
export default Ember.ArrayController.extend(ModalFunctionality, {
|
||||
needs: ['discovery/topics'],
|
||||
|
||||
onShow: function() {
|
||||
|
@ -1,8 +1,10 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
Handles displaying of a topic as a list item
|
||||
|
||||
@class TopicListItemController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
|
@ -1,4 +1,6 @@
|
||||
export default Discourse.ObjectController.extend(Discourse.SelectedPostsCount, {
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend(Discourse.SelectedPostsCount, {
|
||||
multiSelect: false,
|
||||
needs: ['header', 'modal', 'composer', 'quote-button', 'search', 'topic-progress'],
|
||||
allPostsSelected: false,
|
||||
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
The modal for upload a file to a post
|
||||
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
||||
|
||||
@class UploadSelectorController
|
||||
@extends Discourse.Controller
|
||||
@namespace Discourse
|
||||
@uses Discourse.ModalFunctionality
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.Controller.extend(Discourse.ModalFunctionality, {
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend(ModalFunctionality, {
|
||||
remote: Em.computed.not("local"),
|
||||
local: false,
|
||||
showMore: false,
|
||||
|
@ -1,12 +1,14 @@
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
/**
|
||||
Lists of topics on a user's page.
|
||||
|
||||
@class UserTopicsListController
|
||||
@extends Discourse.ObjectController
|
||||
@extends ObjectController
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
export default Discourse.ObjectController.extend({
|
||||
export default ObjectController.extend({
|
||||
hideCategory: false,
|
||||
showParticipants: false,
|
||||
|
||||
|
@ -1,4 +1,6 @@
|
||||
export default Discourse.ObjectController.extend({
|
||||
import ObjectController from 'discourse/controllers/object';
|
||||
|
||||
export default ObjectController.extend({
|
||||
|
||||
viewingSelf: function() {
|
||||
return this.get('content.username') === Discourse.User.currentProp('username');
|
||||
|
@ -0,0 +1,10 @@
|
||||
export default Em.Mixin.create({
|
||||
needs: ['modal'],
|
||||
|
||||
flash: function(message, messageClass) {
|
||||
this.set('flashMessage', Em.Object.create({
|
||||
message: message,
|
||||
messageClass: messageClass
|
||||
}));
|
||||
}
|
||||
});
|
@ -1,29 +0,0 @@
|
||||
/**
|
||||
This mixin provides functionality to modal controllers
|
||||
|
||||
@class Discourse.ModalFunctionality
|
||||
@extends Ember.Mixin
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
Discourse.ModalFunctionality = Em.Mixin.create({
|
||||
needs: ['modal'],
|
||||
|
||||
/**
|
||||
Flash a message at the top of the modal
|
||||
|
||||
@method blank
|
||||
@param {String} message I18n name of the message
|
||||
@param {String} messageClass CSS class to apply
|
||||
@return {Boolean}
|
||||
**/
|
||||
flash: function(message, messageClass) {
|
||||
this.set('flashMessage', Em.Object.create({
|
||||
message: message,
|
||||
messageClass: messageClass
|
||||
}));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
//= require ./discourse/models/composer
|
||||
//= require ./discourse/models/topic
|
||||
//= require ./discourse/controllers/controller
|
||||
//= require ./discourse/controllers/object_controller
|
||||
//= require ./discourse/controllers/object
|
||||
//= require ./discourse/controllers/navigation/default
|
||||
//= require ./discourse/views/modal_body_view
|
||||
//= require ./discourse/views/flag
|
||||
|
@ -70,7 +70,7 @@ module Tilt
|
||||
# For backwards compatibility with plugins, for now export the Global format too.
|
||||
# We should eventually have an upgrade system for plugins to use ES6 or some other
|
||||
# resolve based API.
|
||||
if ENV['DISCOURSE_NO_CONSTANTS'].nil? && scope.logical_path =~ /(discourse|admin)\/(controllers|components|views|routes)\/(.*)/
|
||||
if ENV['DISCOURSE_NO_CONSTANTS'].nil? && scope.logical_path =~ /(discourse|admin)\/(controllers|components|views|routes|mixins)\/(.*)/
|
||||
type = Regexp.last_match[2]
|
||||
file_name = Regexp.last_match[3].gsub(/[\-\/]/, '_')
|
||||
class_name = file_name.classify
|
||||
@ -82,7 +82,13 @@ module Tilt
|
||||
require_name = module_name(scope.root_path, scope.logical_path)
|
||||
|
||||
if require_name !~ /\-test$/
|
||||
@output << "\n\nDiscourse.#{class_name}#{type.classify} = require('#{require_name}').default;\n"
|
||||
result = "#{class_name}#{type.classify}"
|
||||
|
||||
# HAX
|
||||
result = "Controller" if result == "ControllerController"
|
||||
result.gsub!(/Mixin$/, '')
|
||||
|
||||
@output << "\n\nDiscourse.#{result} = require('#{require_name}').default;\n"
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1,4 +1,6 @@
|
||||
export default Discourse.Controller.extend({
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend({
|
||||
poll: null,
|
||||
showResults: Em.computed.oneWay('poll.closed'),
|
||||
disableRadio: Em.computed.any('poll.closed', 'loading'),
|
||||
|
@ -1,6 +1,8 @@
|
||||
module("Discourse.Controller");
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
module("DiscourseController");
|
||||
|
||||
test("includes mixins", function() {
|
||||
ok(Discourse.Presence.detect(Discourse.Controller.create()), "Discourse.Presence");
|
||||
ok(Discourse.HasCurrentUser.detect(Discourse.Controller.create()), "Discourse.HasCurrentUser");
|
||||
ok(Discourse.Presence.detect(DiscourseController.create()), "Discourse.Presence");
|
||||
ok(Discourse.HasCurrentUser.detect(DiscourseController.create()), "Discourse.HasCurrentUser");
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user