mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-23 15:22:41 +01:00
23dc686045
Summary: Introduces a new settings panel for Conpherence specific settings. Test Plan: started a thread with a test user, thus two participants total. Replied to conpherence, toggling notification settings in between. Verified 1 or 2 emails were sent as appropos to the current toggle. Toggled global setting and verified setting was updated in conpherences where nothing was specified. Verified setting conpherence setting overrides global setting. Reviewers: epriestley, chad Reviewed By: epriestley CC: aran, Korvin Maniphest Tasks: T2521 Differential Revision: https://secure.phabricator.com/D5391
67 lines
1.7 KiB
JavaScript
67 lines
1.7 KiB
JavaScript
/**
|
|
* @requires javelin-behavior
|
|
* javelin-dom
|
|
* javelin-stratcom
|
|
* javelin-workflow
|
|
* javelin-util
|
|
* phabricator-notification
|
|
* @provides javelin-behavior-conpherence-widget-pane
|
|
*/
|
|
|
|
JX.behavior('conpherence-widget-pane', function(config) {
|
|
|
|
JX.Stratcom.listen(
|
|
'click',
|
|
'conpherence-change-widget',
|
|
function(e) {
|
|
e.kill();
|
|
var data = e.getNodeData('conpherence-change-widget');
|
|
// abort if this widget isn't exactly involved in this toggle business
|
|
if (!config.widgetRegistery[data.widget]) {
|
|
return;
|
|
}
|
|
for (var widget in config.widgetRegistery) {
|
|
if (!config.widgetRegistery[widget]) {
|
|
continue;
|
|
} else if (widget == data.widget) {
|
|
JX.$(widget).style.display = 'block';
|
|
JX.DOM.alterClass(e.getTarget(), data.toggleClass, true);
|
|
} else {
|
|
JX.$(widget).style.display = 'none';
|
|
var cur_toggle = JX.$(widget + '-toggle');
|
|
JX.DOM.alterClass(
|
|
cur_toggle,
|
|
JX.Stratcom.getData(cur_toggle).toggleClass,
|
|
false
|
|
);
|
|
}
|
|
}
|
|
}
|
|
);
|
|
|
|
var settingsRoot = JX.$(config.settings_widget);
|
|
|
|
var onsubmitSettings = function (e) {
|
|
e.kill();
|
|
var form = JX.DOM.find(settingsRoot, 'form');
|
|
var button = JX.DOM.find(form, 'button');
|
|
JX.Workflow.newFromForm(form)
|
|
.setHandler(JX.bind(this, function (r) {
|
|
new JX.Notification()
|
|
.setDuration(6000)
|
|
.setContent(r)
|
|
.show();
|
|
button.disabled = '';
|
|
JX.DOM.alterClass(button, 'disabled', false);
|
|
}))
|
|
.start();
|
|
};
|
|
|
|
JX.DOM.listen(
|
|
settingsRoot,
|
|
['click'],
|
|
'notifications-update',
|
|
onsubmitSettings
|
|
);
|
|
|
|
});
|