FIX: support for select-kit (#10)
Moves select-kit support into its own initializer, support for older implementations doesn’t seem needed at this point, but could be added if needed.
This commit is contained in:
parent
5758486167
commit
7f2e42362f
|
@ -6,8 +6,38 @@ import showModal from 'discourse/lib/show-modal';
|
||||||
import { iconNode } from 'discourse-common/lib/icon-library';
|
import { iconNode } from 'discourse-common/lib/icon-library';
|
||||||
import { h } from 'virtual-dom';
|
import { h } from 'virtual-dom';
|
||||||
|
|
||||||
function initialize(api) {
|
function modifySelectKit(api) {
|
||||||
|
api.modifySelectKit("topic-footer-mobile-dropdown")
|
||||||
|
.modifyContent((context, existingContent) => {
|
||||||
|
if (context.get('currentUser.staff')) {
|
||||||
|
existingContent.push({
|
||||||
|
id: 'assign',
|
||||||
|
icon: 'user-plus',
|
||||||
|
name: I18n.t('discourse_assign.assign.title')
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return existingContent;
|
||||||
|
})
|
||||||
|
.onSelect((context, value) => {
|
||||||
|
if (!context.get('currentUser.staff')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const topic = context.get('topic');
|
||||||
|
|
||||||
|
if (value === 'assign') {
|
||||||
|
showModal("assign-user", {
|
||||||
|
model: {
|
||||||
|
topic,
|
||||||
|
username: topic.get('assigned_to_user.username')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
context.set('value', null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function initialize(api) {
|
||||||
// You can't act on flags claimed by another user
|
// You can't act on flags claimed by another user
|
||||||
api.modifyClass('component:flagged-post', {
|
api.modifyClass('component:flagged-post', {
|
||||||
@computed('flaggedPost.topic.assigned_to_user_id', 'filter')
|
@computed('flaggedPost.topic.assigned_to_user_id', 'filter')
|
||||||
|
@ -39,49 +69,6 @@ function initialize(api) {
|
||||||
}
|
}
|
||||||
}, { ignoreMissing: true });
|
}, { ignoreMissing: true });
|
||||||
|
|
||||||
// doing this mess while we come up with a better API
|
|
||||||
api.modifyClass('component:topic-footer-mobile-dropdown', {
|
|
||||||
@computed("value")
|
|
||||||
content() {
|
|
||||||
const content = this._super();
|
|
||||||
|
|
||||||
if (!this.get('currentUser.staff') || !this.siteSettings.assign_enabled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
content.pushObject({
|
|
||||||
id: 'assign',
|
|
||||||
icon: 'user-plus',
|
|
||||||
name: I18n.t('discourse_assign.assign.title')
|
|
||||||
});
|
|
||||||
|
|
||||||
return content;
|
|
||||||
},
|
|
||||||
|
|
||||||
actions: {
|
|
||||||
onSelect(value) {
|
|
||||||
this._super(value);
|
|
||||||
|
|
||||||
if (!this.get('currentUser.staff')) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const topic = this.get('topic');
|
|
||||||
|
|
||||||
if (value === 'assign') {
|
|
||||||
|
|
||||||
showModal("assign-user", {
|
|
||||||
model: {
|
|
||||||
topic: topic,
|
|
||||||
username: topic.get('assigned_to_user.username')
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.set('value', null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
api.modifyClass('model:topic', {
|
api.modifyClass('model:topic', {
|
||||||
@computed('assigned_to_user')
|
@computed('assigned_to_user')
|
||||||
assignedToUserPath(assignedToUser) {
|
assignedToUserPath(assignedToUser) {
|
||||||
|
@ -185,5 +172,6 @@ export default {
|
||||||
name: 'extend-for-assign',
|
name: 'extend-for-assign',
|
||||||
initialize(container) {
|
initialize(container) {
|
||||||
withPluginApi('0.8.11', api => initialize(api, container));
|
withPluginApi('0.8.11', api => initialize(api, container));
|
||||||
|
withPluginApi('0.8.13', api => modifySelectKit(api, container));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue