Update to new Connector API

This commit is contained in:
Robin Ward 2016-12-12 11:54:43 -05:00
parent 4203097376
commit 89962793d0
4 changed files with 45 additions and 25 deletions

View File

@ -0,0 +1,22 @@
import { showStaffNotes } from 'discourse/plugins/staff-notes/discourse-staff-notes/lib/staff-notes';
import { getOwner } from 'discourse-common/lib/get-owner';
export default {
shouldRender(args, component) {
const { siteSettings, currentUser } = component;
return siteSettings.staff_notes_enabled && currentUser && currentUser.staff;
},
setupComponent(args, component) {
const { model } = args;
component.set('staffNotesCount', model.get('custom_fields.staff_notes_count') || 0);
},
actions: {
showStaffNotes() {
const store = getOwner(this).lookup('store:main');
const user = this.get('args.model');
showStaffNotes(store, user.get('id'), count => this.set('staffNotesCount', count));
}
}
};

View File

@ -0,0 +1,18 @@
import showModal from 'discourse/lib/show-modal';
import loadScript from 'discourse/lib/load-script';
export function showStaffNotes(store, userId, callback) {
return loadScript('defer/html-sanitizer-bundle').then(() => {
return store.find('staff-note', { user_id: userId }).then(model => {
const controller = showModal('staff-notes', {
model,
title: 'staff_notes.title',
addModalBodyView: true
});
controller.reset();
controller.set('userId', userId);
controller.set('callback', callback);
return controller;
});
});
}

View File

@ -1,7 +1,6 @@
import { withPluginApi } from 'discourse/lib/plugin-api';
import showModal from 'discourse/lib/show-modal';
import loadScript from 'discourse/lib/load-script';
import { iconNode } from 'discourse/helpers/fa-icon-node';
import { showStaffNotes } from 'discourse/plugins/staff-notes/discourse-staff-notes/lib/staff-notes';
export default {
name: 'enable-staff-notes',
@ -11,26 +10,9 @@ export default {
if (!siteSettings.staff_notes_enabled || !currentUser || !currentUser.staff) { return; }
const store = container.lookup('store:main');
withPluginApi('0.2', api => {
function showStaffNotes(userId, callback) {
return loadScript('defer/html-sanitizer-bundle').then(() => {
return store.find('staff-note', { user_id: userId }).then(model => {
const controller = showModal('staff-notes', {
model,
title: 'staff_notes.title',
addModalBodyView: true
});
controller.reset();
controller.set('userId', userId);
controller.set('callback', callback);
return controller;
});
});
}
function widgetShowStaffNotes() {
showStaffNotes(this.attrs.user_id, count => {
showStaffNotes(store, this.attrs.user_id, count => {
this.sendWidgetAction('refreshStaffNotes', count);
});
}
@ -52,12 +34,11 @@ export default {
actions: {
showStaffNotes() {
const user = this.get('model');
showStaffNotes(user.get('id'), count => this.set('staffNotesCount', count));
showStaffNotes(store, user.get('id'), count => this.set('staffNotesCount', count));
}
}
});
const mobileView = api.container.lookup('site:main').mobileView;
const loc = mobileView ? 'before' : 'after';
api.decorateWidget(`poster-name:${loc}`, dec => {

View File

@ -1,5 +1,4 @@
<div class="modal-body staff-notes-modal">
{{#d-modal-body class="staff-notes-modal"}}
{{#each model as |n|}}
<div class='staff-note'>
<div class='posted-by'>
@ -34,4 +33,4 @@
{{textarea value=newNote}}
{{d-button action="attachNote" label="staff_notes.attach" class="btn-primary" disabled=attachDisabled}}
</div>
{{/d-modal-body}}