From fc32a0920da7ea4a269be92998f01e3daadb2e2e Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 23 Sep 2014 17:12:01 -0400 Subject: [PATCH] Move "Content" under "customize" in admin. --- ...js.es6 => admin-site-contents-edit.js.es6} | 10 ++-- .../javascripts/admin/models/site_content.js | 18 +------ .../admin/models/site_content_type.js | 18 ++----- .../routes/admin-site-contents-edit.js.es6 | 11 +++++ .../admin/routes/admin-site-contents.js.es6 | 5 ++ .../javascripts/admin/routes/admin_routes.js | 13 ++--- .../routes/admin_site_content_edit_route.js | 48 ------------------- .../admin/routes/admin_site_contents_route.js | 24 ---------- .../admin/templates/admin.js.handlebars | 1 - .../admin/templates/customize.js.handlebars | 1 + .../templates/site_contents.js.handlebars | 4 +- ...ebars => site_contents_edit.js.handlebars} | 14 +++--- config/routes.rb | 7 ++- 13 files changed, 45 insertions(+), 129 deletions(-) rename app/assets/javascripts/admin/controllers/{admin-site-content-edit.js.es6 => admin-site-contents-edit.js.es6} (56%) create mode 100644 app/assets/javascripts/admin/routes/admin-site-contents-edit.js.es6 create mode 100644 app/assets/javascripts/admin/routes/admin-site-contents.js.es6 delete mode 100644 app/assets/javascripts/admin/routes/admin_site_content_edit_route.js delete mode 100644 app/assets/javascripts/admin/routes/admin_site_contents_route.js rename app/assets/javascripts/admin/templates/{site_content_edit.js.handlebars => site_contents_edit.js.handlebars} (61%) diff --git a/app/assets/javascripts/admin/controllers/admin-site-content-edit.js.es6 b/app/assets/javascripts/admin/controllers/admin-site-contents-edit.js.es6 similarity index 56% rename from app/assets/javascripts/admin/controllers/admin-site-content-edit.js.es6 rename to app/assets/javascripts/admin/controllers/admin-site-contents-edit.js.es6 index 1886b6604..ef08b84ce 100644 --- a/app/assets/javascripts/admin/controllers/admin-site-content-edit.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-site-contents-edit.js.es6 @@ -1,10 +1,10 @@ -import DiscourseController from 'discourse/controllers/controller'; - -export default DiscourseController.extend({ +export default Ember.ObjectController.extend({ + saving: false, + saved: false, saveDisabled: function() { if (this.get('saving')) { return true; } - if ((!this.get('content.allow_blank')) && this.blank('content.content')) { return true; } + if ((!this.get('content.allow_blank')) && Ember.empty(this.get('content.content'))) { return true; } return false; }.property('saving', 'content.content'), @@ -12,7 +12,7 @@ export default DiscourseController.extend({ saveChanges: function() { var self = this; self.setProperties({saving: true, saved: false}); - self.get('content').save().then(function () { + self.get('model').save().then(function () { self.setProperties({saving: false, saved: true}); }); } diff --git a/app/assets/javascripts/admin/models/site_content.js b/app/assets/javascripts/admin/models/site_content.js index 87c2527e0..1cc93ba7f 100644 --- a/app/assets/javascripts/admin/models/site_content.js +++ b/app/assets/javascripts/admin/models/site_content.js @@ -1,11 +1,3 @@ -/** - Our data model for interacting with custom site content - - @class SiteContent - @extends Discourse.Model - @namespace Discourse - @module Discourse -**/ Discourse.SiteContent = Discourse.Model.extend({ markdown: Em.computed.equal('format', 'markdown'), @@ -13,14 +5,8 @@ Discourse.SiteContent = Discourse.Model.extend({ html: Em.computed.equal('format', 'html'), css: Em.computed.equal('format', 'css'), - /** - Save the content - - @method save - @return {jqXHR} a jQuery Promise object - **/ save: function() { - return Discourse.ajax("/admin/site_contents/" + this.get('content_type'), { + return Discourse.ajax("/admin/customize/site_contents/" + this.get('content_type'), { type: 'PUT', data: {content: this.get('content')} }); @@ -31,7 +17,7 @@ Discourse.SiteContent = Discourse.Model.extend({ Discourse.SiteContent.reopenClass({ find: function(type) { - return Discourse.ajax("/admin/site_contents/" + type).then(function (data) { + return Discourse.ajax("/admin/customize/site_contents/" + type).then(function (data) { return Discourse.SiteContent.create(data.site_content); }); } diff --git a/app/assets/javascripts/admin/models/site_content_type.js b/app/assets/javascripts/admin/models/site_content_type.js index 6e1d0a5ff..86b2c9121 100644 --- a/app/assets/javascripts/admin/models/site_content_type.js +++ b/app/assets/javascripts/admin/models/site_content_type.js @@ -1,21 +1,11 @@ -/** - Our data model that represents types of editing site content - - @class SiteContentType - @extends Discourse.Model - @namespace Discourse - @module Discourse -**/ -Discourse.SiteContentType = Discourse.Model.extend({}); +Discourse.SiteContentType = Discourse.Model.extend(); Discourse.SiteContentType.reopenClass({ findAll: function() { - return Discourse.ajax("/admin/site_content_types").then(function(data) { - var contentTypes = Em.A(); - data.forEach(function (ct) { - contentTypes.pushObject(Discourse.SiteContentType.create(ct)); + return Discourse.ajax("/admin/customize/site_content_types").then(function(data) { + return data.map(function(ct) { + return Discourse.SiteContentType.create(ct); }); - return contentTypes; }); } }); diff --git a/app/assets/javascripts/admin/routes/admin-site-contents-edit.js.es6 b/app/assets/javascripts/admin/routes/admin-site-contents-edit.js.es6 new file mode 100644 index 000000000..a658954c5 --- /dev/null +++ b/app/assets/javascripts/admin/routes/admin-site-contents-edit.js.es6 @@ -0,0 +1,11 @@ +export default Ember.Route.extend({ + + serialize: function(model) { + return {content_type: model.get('content_type')}; + }, + + model: function(params) { + return Discourse.SiteContent.find(params.content_type); + } + +}); diff --git a/app/assets/javascripts/admin/routes/admin-site-contents.js.es6 b/app/assets/javascripts/admin/routes/admin-site-contents.js.es6 new file mode 100644 index 000000000..d32f55483 --- /dev/null +++ b/app/assets/javascripts/admin/routes/admin-site-contents.js.es6 @@ -0,0 +1,5 @@ +export default Ember.Route.extend({ + model: function() { + return Discourse.SiteContentType.findAll(); + } +}); diff --git a/app/assets/javascripts/admin/routes/admin_routes.js b/app/assets/javascripts/admin/routes/admin_routes.js index 71f687963..46ab4b6d5 100644 --- a/app/assets/javascripts/admin/routes/admin_routes.js +++ b/app/assets/javascripts/admin/routes/admin_routes.js @@ -1,9 +1,3 @@ -/** - Builds the routes for the admin section - - @method buildRoutes - @for Discourse.AdminRoute -**/ Discourse.Route.buildRoutes(function() { this.resource('admin', function() { this.route('dashboard', { path: '/' }); @@ -11,10 +5,6 @@ Discourse.Route.buildRoutes(function() { this.resource('adminSiteSettingsCategory', { path: 'category/:category_id'} ); }); - this.resource('adminSiteContents', { path: '/site_contents' }, function() { - this.resource('adminSiteContentEdit', {path: '/:content_type'}); - }); - this.resource('adminEmail', { path: '/email'}, function() { this.route('all'); this.route('sent'); @@ -25,6 +15,9 @@ Discourse.Route.buildRoutes(function() { this.resource('adminCustomize', { path: '/customize' } ,function() { this.route('colors'); this.route('css_html'); + this.resource('adminSiteContents', { path: '/site_contents' }, function() { + this.route('edit', {path: '/:content_type'}); + }); }); this.route('api'); diff --git a/app/assets/javascripts/admin/routes/admin_site_content_edit_route.js b/app/assets/javascripts/admin/routes/admin_site_content_edit_route.js deleted file mode 100644 index 553c7a7ee..000000000 --- a/app/assets/javascripts/admin/routes/admin_site_content_edit_route.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - Allows users to customize site content - - @class AdminSiteContentEditRoute - @extends Discourse.Route - @namespace Discourse - @module Discourse -**/ -Discourse.AdminSiteContentEditRoute = Discourse.Route.extend({ - - serialize: function(model) { - return {content_type: model.get('content_type')}; - }, - - model: function(params) { - var list = Discourse.SiteContentType.findAll(); - - return list.then(function(items) { - return items.findProperty("content_type", params.content_type); - }); - }, - - renderTemplate: function() { - this.render('admin/templates/site_content_edit', {into: 'admin/templates/site_contents'}); - }, - - deactivate: function() { - this._super(); - this.render('admin/templates/site_contents_empty', {into: 'admin/templates/site_contents'}); - }, - - setupController: function(controller, model) { - - controller.set('loaded', false); - controller.setProperties({ - model: model, - saving: false, - saved: false - }); - - Discourse.SiteContent.find(model.get('content_type')).then(function (sc) { - controller.set('content', sc); - controller.set('loaded', true); - }); - } - - -}); diff --git a/app/assets/javascripts/admin/routes/admin_site_contents_route.js b/app/assets/javascripts/admin/routes/admin_site_contents_route.js deleted file mode 100644 index 8a6d786ea..000000000 --- a/app/assets/javascripts/admin/routes/admin_site_contents_route.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - Allows users to customize site content - - @class AdminSiteContentsRoute - @extends Discourse.Route - @namespace Discourse - @module Discourse -**/ -Discourse.AdminSiteContentsRoute = Discourse.Route.extend({ - - model: function() { - return Discourse.SiteContentType.findAll(); - }, - - renderTemplate: function() { - this.render('admin/templates/site_contents', {into: 'admin/templates/admin'}); - this.render('admin/templates/site_contents_empty', {into: 'admin/templates/site_contents'}); - }, - - setupController: function(controller, model) { - controller.set('model', model); - } -}); - diff --git a/app/assets/javascripts/admin/templates/admin.js.handlebars b/app/assets/javascripts/admin/templates/admin.js.handlebars index 7ef0ed1c5..823f047da 100644 --- a/app/assets/javascripts/admin/templates/admin.js.handlebars +++ b/app/assets/javascripts/admin/templates/admin.js.handlebars @@ -7,7 +7,6 @@
  • {{#link-to 'admin.dashboard'}}{{i18n admin.dashboard.title}}{{/link-to}}
  • {{#if currentUser.admin}}
  • {{#link-to 'adminSiteSettings'}}{{i18n admin.site_settings.title}}{{/link-to}}
  • -
  • {{#link-to 'adminSiteContents'}}{{i18n admin.site_content.title}}{{/link-to}}
  • {{/if}}
  • {{#link-to 'adminUsersList'}}{{i18n admin.users.title}}{{/link-to}}
  • {{#if showBadges}} diff --git a/app/assets/javascripts/admin/templates/customize.js.handlebars b/app/assets/javascripts/admin/templates/customize.js.handlebars index acc2f5ecf..7902d4b8e 100644 --- a/app/assets/javascripts/admin/templates/customize.js.handlebars +++ b/app/assets/javascripts/admin/templates/customize.js.handlebars @@ -3,6 +3,7 @@ diff --git a/app/assets/javascripts/admin/templates/site_contents.js.handlebars b/app/assets/javascripts/admin/templates/site_contents.js.handlebars index e6b86a54b..fceda030f 100644 --- a/app/assets/javascripts/admin/templates/site_contents.js.handlebars +++ b/app/assets/javascripts/admin/templates/site_contents.js.handlebars @@ -2,9 +2,9 @@

    {{i18n admin.site_content.edit}}

    diff --git a/app/assets/javascripts/admin/templates/site_content_edit.js.handlebars b/app/assets/javascripts/admin/templates/site_contents_edit.js.handlebars similarity index 61% rename from app/assets/javascripts/admin/templates/site_content_edit.js.handlebars rename to app/assets/javascripts/admin/templates/site_contents_edit.js.handlebars index d0e1e22af..d79058d12 100644 --- a/app/assets/javascripts/admin/templates/site_content_edit.js.handlebars +++ b/app/assets/javascripts/admin/templates/site_contents_edit.js.handlebars @@ -1,21 +1,21 @@ -

    {{model.title}}

    -

    {{model.description}}

    +

    {{title}}

    +

    {{description}}

    -{{#if model.markdown}} +{{#if markdown}} {{pagedown-editor value=model.content}} {{/if}} -{{#if model.plainText}} +{{#if plainText}} {{textarea value=model.content class="plain"}} {{/if}} -{{#if model.html}} +{{#if html}} {{aceEditor content=model.content mode="html"}} {{/if}} -{{#if model.css}} +{{#if css}} {{aceEditor content=model.content mode="css"}} {{/if}}
    -