Path: blob/master/webroot/rsrc/js/application/conpherence/behavior-participant-pane.js
12242 views
/**1* @requires javelin-behavior2* javelin-dom3* javelin-stratcom4* javelin-workflow5* javelin-util6* phabricator-notification7* conpherence-thread-manager8* @provides javelin-behavior-conpherence-participant-pane9*/1011JX.behavior('conpherence-participant-pane', function() {1213/**14* Generified adding new stuff to widgets technology!15*/16JX.Stratcom.listen(17['click'],18'conpherence-widget-adder',19function (e) {20e.kill();2122var threadManager = JX.ConpherenceThreadManager.getInstance();23var href = threadManager._getUpdateURI();24var latest_transaction_id = threadManager.getLatestTransactionID();25var data = {26latest_transaction_id : latest_transaction_id,27action : 'add_person'28};2930var workflow = new JX.Workflow(href, data)31.setHandler(function (r) {32var threadManager = JX.ConpherenceThreadManager.getInstance();33threadManager.setLatestTransactionID(r.latest_transaction_id);34var root = JX.DOM.find(document, 'div', 'conpherence-layout');35var messages = null;36try {37messages = JX.DOM.find(root, 'div', 'conpherence-messages');38} catch (ex) {39}40if (messages) {41JX.DOM.appendContent(messages, JX.$H(r.transactions));42JX.Stratcom.invoke('conpherence-redraw-thread', null, {});43}4445try {46var people_root = JX.DOM.find(root, 'div', 'widgets-people');47// update the people widget48JX.DOM.setContent(49people_root,50JX.$H(r.people_widget));51} catch (ex) {52}5354});5556threadManager.syncWorkflow(workflow, 'submit');57}58);5960JX.Stratcom.listen(61['touchstart', 'mousedown'],62'remove-person',63function (e) {64var threadManager = JX.ConpherenceThreadManager.getInstance();65var href = threadManager._getUpdateURI();66var data = e.getNodeData('remove-person');6768// While the user is removing themselves, disable the notification69// update behavior. If we don't do this, the user can get an error70// when they remove themselves about permissions as the notification71// code tries to load what just happened.72var loadedPhid = threadManager.getLoadedThreadPHID();73threadManager.setLoadedThreadPHID(null);7475new JX.Workflow(href, data)76.setCloseHandler(function() {77threadManager.setLoadedThreadPHID(loadedPhid);78})79// we re-direct to conpherence home so the thread manager will80// fix itself there81.setHandler(function(r) {82JX.$U(r.href).go();83})84.start();85}86);8788/* settings widget */89var onsubmitSettings = function (e) {90e.kill();91var form = e.getNode('tag:form');92var button = JX.DOM.find(form, 'button');93JX.Workflow.newFromForm(form)94.setHandler(JX.bind(this, function (r) {95new JX.Notification()96.setDuration(6000)97.setContent(r)98.show();99button.disabled = '';100JX.DOM.alterClass(button, 'disabled', false);101}))102.start();103};104105JX.Stratcom.listen(106['submit', 'didSyntheticSubmit'],107'notifications-update',108onsubmitSettings109);110111});112113114