Refactor and add tests for category editing

This commit is contained in:
Robin Ward
2015-07-02 12:06:24 -04:00
parent 2d2e2b9924
commit 23daa9d8ce
6 changed files with 37 additions and 14 deletions

View File

@@ -100,16 +100,12 @@ export default ObjectController.extend(ModalFunctionality, {
return name.trim().length > 0 ? name : I18n.t("preview");
}.property('name'),
buttonTitle: function() {
if (this.get('saving')) return I18n.t("saving");
if (this.get('model.isUncategorizedCategory')) return I18n.t("save");
return (this.get('model.id') ? I18n.t("category.save") : I18n.t("category.create"));
saveLabel: function() {
if (this.get('saving')) return "saving";
if (this.get('model.isUncategorizedCategory')) return "save";
return this.get('model.id') ? "category.save" : "category.create";
}.property('saving', 'model.id'),
deleteButtonTitle: function() {
return I18n.t('category.delete');
}.property(),
showDescription: function() {
return !this.get('model.isUncategorizedCategory') && this.get('model.id');
}.property('model.isUncategorizedCategory', 'model.id'),
@@ -149,7 +145,6 @@ export default ObjectController.extend(ModalFunctionality, {
self.send('closeModal');
model.setProperties({slug: result.category.slug, id: result.category.id });
Discourse.URL.redirectTo("/c/" + Discourse.Category.slugFor(model));
}).catch(function(error) {
if (error && error.responseText) {
self.flash($.parseJSON(error.responseText).errors[0], 'error');

View File

@@ -53,7 +53,7 @@
<div class='input-prepend input-append'>
<span class='color-title'>{{i18n 'category.foreground_color'}}:</span>
<span class='add-on'>#</span>{{text-field value=model.text_color placeholderKey="category.color_placeholder" maxlength="6"}}
{{color-picker colors=foregroundColors value=model.text_color}}
{{color-picker colors=foregroundColors value=model.text_color id='edit-text-color'}}
</div>
</div>
</section>

View File

@@ -9,15 +9,20 @@
</ul>
<div class="modal-body">
{{#each tab in view.panels}}
{{#each view.panels as |tab|}}
{{view 'edit-category-panel' tab=tab}}
{{/each}}
</div>
<div class="modal-footer">
<button class='btn btn-primary' {{bind-attr disabled="disabled"}} {{action "saveCategory"}}>{{buttonTitle}}</button>
{{d-button id="save-category" class="btn-primary" disabled=disabled action="saveCategory" label=saveLabel}}
{{#if model.can_delete}}
<button class='btn btn-danger pull-right' {{bind-attr disabled="deleteDisabled"}} {{action "deleteCategory"}}><i class="fa fa-trash-o"></i>{{deleteButtonTitle}}</button>
{{d-button class="btn-danger pull-right"
disabled=deleteDisabled
action="deleteCategory"
icon="trash-o"
label="category.delete"}}
{{else}}
<div class="cannot_delete_reason">
{{{model.cannot_delete_reason}}}