FIX: tags in a 'visible by everyone but usable only by staff' group weren't visible by everyone
This commit is contained in:
@@ -1,71 +1,62 @@
|
||||
import { ajax } from 'discourse/lib/ajax';
|
||||
import RestModel from 'discourse/models/rest';
|
||||
import computed from 'ember-addons/ember-computed-decorators';
|
||||
import PermissionType from 'discourse/models/permission-type';
|
||||
import { ajax } from "discourse/lib/ajax";
|
||||
import RestModel from "discourse/models/rest";
|
||||
import computed from "ember-addons/ember-computed-decorators";
|
||||
import PermissionType from "discourse/models/permission-type";
|
||||
|
||||
const TagGroup = RestModel.extend({
|
||||
@computed('name', 'tag_names')
|
||||
disableSave() {
|
||||
return Ember.isEmpty(this.get('name')) || Ember.isEmpty(this.get('tag_names')) || this.get('saving');
|
||||
export default RestModel.extend({
|
||||
@computed("name", "tag_names", "saving")
|
||||
disableSave(name, tagNames, saving) {
|
||||
return saving || Ember.isEmpty(name) || Ember.isEmpty(tagNames);
|
||||
},
|
||||
|
||||
@computed('permissions')
|
||||
@computed("permissions")
|
||||
permissionName: {
|
||||
get(permissions) {
|
||||
if (!permissions) return 'public';
|
||||
if (!permissions) return "public";
|
||||
|
||||
if (permissions['everyone'] === PermissionType.FULL) {
|
||||
return 'public';
|
||||
} else if (permissions['everyone'] === PermissionType.READONLY) {
|
||||
return 'visible';
|
||||
if (permissions["everyone"] === PermissionType.FULL) {
|
||||
return "public";
|
||||
} else if (permissions["everyone"] === PermissionType.READONLY) {
|
||||
return "visible";
|
||||
} else {
|
||||
return 'private';
|
||||
return "private";
|
||||
}
|
||||
},
|
||||
|
||||
set(value) {
|
||||
if (value === 'private') {
|
||||
this.set('permissions', {'staff': PermissionType.FULL});
|
||||
} else if (value === 'visible') {
|
||||
this.set('permissions', {'staff': PermissionType.FULL, 'everyone': PermissionType.READONLY});
|
||||
if (value === "private") {
|
||||
this.set("permissions", { "staff": PermissionType.FULL });
|
||||
} else if (value === "visible") {
|
||||
this.set("permissions", { "staff": PermissionType.FULL, "everyone": PermissionType.READONLY });
|
||||
} else {
|
||||
this.set('permissions', {'everyone': PermissionType.FULL});
|
||||
this.set("permissions", { "everyone": PermissionType.FULL });
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
save() {
|
||||
let url = "/tag_groups";
|
||||
const self = this,
|
||||
isNew = this.get('id') === 'new';
|
||||
if (!isNew) {
|
||||
url = "/tag_groups/" + this.get('id');
|
||||
}
|
||||
this.set("savingStatus", I18n.t("saving"));
|
||||
this.set("saving", true);
|
||||
|
||||
this.set('savingStatus', I18n.t('saving'));
|
||||
this.set('saving', true);
|
||||
const isNew = this.get("id") === "new";
|
||||
const url = isNew ? "/tag_groups" : `/tag_groups/${this.get("id")}`;
|
||||
const data = this.getProperties("name", "tag_names", "parent_tag_name", "one_per_topic", "permissions");
|
||||
|
||||
return ajax(url, {
|
||||
data: {
|
||||
name: this.get('name'),
|
||||
tag_names: this.get('tag_names'),
|
||||
parent_tag_name: this.get('parent_tag_name') ? this.get('parent_tag_name') : undefined,
|
||||
one_per_topic: this.get('one_per_topic'),
|
||||
permissions: this.get('permissions')
|
||||
},
|
||||
type: isNew ? 'POST' : 'PUT'
|
||||
}).then(function(result) {
|
||||
if(result.tag_group && result.tag_group.id) {
|
||||
self.set('id', result.tag_group.id);
|
||||
data,
|
||||
type: isNew ? "POST" : "PUT"
|
||||
}).then(result => {
|
||||
if (result.tag_group && result.tag_group.id) {
|
||||
this.set("id", result.tag_group.id);
|
||||
}
|
||||
self.set('savingStatus', I18n.t('saved'));
|
||||
self.set('saving', false);
|
||||
}).finally(() => {
|
||||
this.set("savingStatus", I18n.t("saved"));
|
||||
this.set("saving", false);
|
||||
});
|
||||
},
|
||||
|
||||
destroy() {
|
||||
return ajax("/tag_groups/" + this.get('id'), {type: "DELETE"});
|
||||
return ajax(`/tag_groups/${this.get("id")}`, { type: "DELETE" });
|
||||
}
|
||||
});
|
||||
|
||||
export default TagGroup;
|
||||
|
||||
Reference in New Issue
Block a user