Changeset View
Changeset View
Standalone View
Standalone View
webroot/rsrc/js/application/projects/WorkboardBoard.js
| Show First 20 Lines • Show All 403 Lines • ▼ Show 20 Lines | members: { | ||||
| }, | }, | ||||
| _findCardsInColumn: function(column_node) { | _findCardsInColumn: function(column_node) { | ||||
| return JX.DOM.scry(column_node, 'li', 'project-card'); | return JX.DOM.scry(column_node, 'li', 'project-card'); | ||||
| }, | }, | ||||
| _getDropContext: function(after_node, item) { | _getDropContext: function(after_node, item) { | ||||
| var header_key; | var header_key; | ||||
| var before_phid; | var after_phids = []; | ||||
| var after_phid; | var before_phids = []; | ||||
| // We're going to send an "afterPHID" and a "beforePHID" if the card | // We're going to send an "afterPHID" and a "beforePHID" if the card | ||||
| // was dropped immediately adjacent to another card. If a card was | // was dropped immediately adjacent to another card. If a card was | ||||
| // dropped before or after a header, we don't send a PHID for the card | // dropped before or after a header, we don't send a PHID for the card | ||||
| // on the other side of the header. | // on the other side of the header. | ||||
| // If the view has headers, we always send the header the card was | // If the view has headers, we always send the header the card was | ||||
| // dropped under. | // dropped under. | ||||
| var after_data; | var after_data; | ||||
| var after_card = after_node; | var after_card = after_node; | ||||
| while (after_card) { | while (after_card) { | ||||
| after_data = JX.Stratcom.getData(after_card); | after_data = JX.Stratcom.getData(after_card); | ||||
| if (after_data.objectPHID) { | |||||
| break; | |||||
| } | |||||
| if (after_data.headerKey) { | if (after_data.headerKey) { | ||||
| break; | break; | ||||
| } | } | ||||
| after_card = after_card.previousSibling; | |||||
| } | |||||
| if (after_data) { | |||||
| if (after_data.objectPHID) { | if (after_data.objectPHID) { | ||||
| after_phid = after_data.objectPHID; | after_phids.push(after_data.objectPHID); | ||||
| } | } | ||||
| after_card = after_card.previousSibling; | |||||
| } | } | ||||
| if (item) { | if (item) { | ||||
| var before_data; | var before_data; | ||||
| var before_card = item.nextSibling; | var before_card = item.nextSibling; | ||||
| while (before_card) { | while (before_card) { | ||||
| before_data = JX.Stratcom.getData(before_card); | before_data = JX.Stratcom.getData(before_card); | ||||
| if (before_data.objectPHID) { | |||||
| break; | |||||
| } | |||||
| if (before_data.headerKey) { | if (before_data.headerKey) { | ||||
| break; | break; | ||||
| } | } | ||||
| before_card = before_card.nextSibling; | |||||
| } | |||||
| if (before_data) { | |||||
| if (before_data.objectPHID) { | if (before_data.objectPHID) { | ||||
| before_phid = before_data.objectPHID; | before_phids.push(before_data.objectPHID); | ||||
| } | } | ||||
| before_card = before_card.nextSibling; | |||||
| } | } | ||||
| } | } | ||||
| var header_data; | var header_data; | ||||
| var header_node = after_node; | var header_node = after_node; | ||||
| while (header_node) { | while (header_node) { | ||||
| header_data = JX.Stratcom.getData(header_node); | header_data = JX.Stratcom.getData(header_node); | ||||
| if (header_data.headerKey) { | if (header_data.headerKey) { | ||||
| break; | break; | ||||
| } | } | ||||
| header_node = header_node.previousSibling; | header_node = header_node.previousSibling; | ||||
| } | } | ||||
| if (header_data) { | if (header_data) { | ||||
| header_key = header_data.headerKey; | header_key = header_data.headerKey; | ||||
| } | } | ||||
| return { | return { | ||||
| headerKey: header_key, | headerKey: header_key, | ||||
| afterPHID: after_phid, | afterPHIDs: after_phids, | ||||
| beforePHID: before_phid | beforePHIDs: before_phids | ||||
| }; | }; | ||||
| }, | }, | ||||
| _onmovecard: function(list, item, after_node, src_list) { | _onmovecard: function(list, item, after_node, src_list) { | ||||
| list.lock(); | list.lock(); | ||||
| JX.DOM.alterClass(item, 'drag-sending', true); | JX.DOM.alterClass(item, 'drag-sending', true); | ||||
| var src_phid = JX.Stratcom.getData(src_list.getRootNode()).columnPHID; | var src_phid = JX.Stratcom.getData(src_list.getRootNode()).columnPHID; | ||||
| var dst_phid = JX.Stratcom.getData(list.getRootNode()).columnPHID; | var dst_phid = JX.Stratcom.getData(list.getRootNode()).columnPHID; | ||||
| var item_phid = JX.Stratcom.getData(item).objectPHID; | var item_phid = JX.Stratcom.getData(item).objectPHID; | ||||
| var data = { | var data = { | ||||
| objectPHID: item_phid, | objectPHID: item_phid, | ||||
| columnPHID: dst_phid, | columnPHID: dst_phid, | ||||
| order: this.getOrder() | order: this.getOrder() | ||||
| }; | }; | ||||
| var context = this._getDropContext(after_node, item); | var context = this._getDropContext(after_node, item); | ||||
| data.afterPHIDs = context.afterPHIDs.join(','); | |||||
| if (context.afterPHID) { | data.beforePHIDs = context.beforePHIDs.join(','); | ||||
| data.afterPHID = context.afterPHID; | |||||
| } | |||||
| if (context.beforePHID) { | |||||
| data.beforePHID = context.beforePHID; | |||||
| } | |||||
| if (context.headerKey) { | if (context.headerKey) { | ||||
| var properties = this.getHeaderTemplate(context.headerKey) | var properties = this.getHeaderTemplate(context.headerKey) | ||||
| .getEditProperties(); | .getEditProperties(); | ||||
| data.header = JX.JSON.stringify(properties); | data.header = JX.JSON.stringify(properties); | ||||
| } | } | ||||
| var visible_phids = []; | var visible_phids = []; | ||||
| Show All 10 Lines | _onmovecard: function(list, item, after_node, src_list) { | ||||
| var on_revert = JX.bind( | var on_revert = JX.bind( | ||||
| this, | this, | ||||
| this._revertCard, | this._revertCard, | ||||
| list, | list, | ||||
| item, | item, | ||||
| src_phid, | src_phid, | ||||
| dst_phid); | dst_phid); | ||||
| var after_phid = null; | |||||
| if (data.afterPHIDs.length) { | |||||
| after_phid = data.afterPHIDs[0]; | |||||
| } | |||||
| var onupdate = JX.bind( | var onupdate = JX.bind( | ||||
| this, | this, | ||||
| this._oncardupdate, | this._oncardupdate, | ||||
| list, | list, | ||||
| src_phid, | src_phid, | ||||
| dst_phid, | dst_phid, | ||||
| data.afterPHID); | after_phid); | ||||
| new JX.Workflow(this.getController().getMoveURI(), data) | new JX.Workflow(this.getController().getMoveURI(), data) | ||||
| .setHandler(onupdate) | .setHandler(onupdate) | ||||
| .setCloseHandler(on_revert) | .setCloseHandler(on_revert) | ||||
| .start(); | .start(); | ||||
| }, | }, | ||||
| _revertCard: function(list, item, src_phid, dst_phid) { | _revertCard: function(list, item, src_phid, dst_phid) { | ||||
| ▲ Show 20 Lines • Show All 130 Lines • Show Last 20 Lines | |||||