Changeset View
Changeset View
Standalone View
Standalone View
webroot/rsrc/js/application/projects/behavior-project-boards.js
| /** | /** | ||||
| * @provides javelin-behavior-project-boards | * @provides javelin-behavior-project-boards | ||||
| * @requires javelin-behavior | * @requires javelin-behavior | ||||
| * javelin-dom | * javelin-dom | ||||
| * javelin-util | * javelin-util | ||||
| * javelin-vector | * javelin-vector | ||||
| * javelin-stratcom | * javelin-stratcom | ||||
| * javelin-workflow | * javelin-workflow | ||||
| * phabricator-draggable-list | * phabricator-draggable-list | ||||
| * phabricator-drag-and-drop-file-upload | * phabricator-drag-and-drop-file-upload | ||||
| * javelin-workboard | |||||
| */ | */ | ||||
| JX.behavior('project-boards', function(config, statics) { | JX.behavior('project-boards', function(config, statics) { | ||||
| function finditems(col) { | function finditems(col) { | ||||
| return JX.DOM.scry(col, 'li', 'project-card'); | return JX.DOM.scry(col, 'li', 'project-card'); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 326 Lines • ▼ Show 20 Lines | JX.Stratcom.listen( | ||||
| statics.boardID = new_config.boardID; | statics.boardID = new_config.boardID; | ||||
| } | } | ||||
| update_statics(new_config); | update_statics(new_config); | ||||
| if (data.fromServer) { | if (data.fromServer) { | ||||
| init_board(); | init_board(); | ||||
| } | } | ||||
| }); | }); | ||||
| if (JX.PhabricatorDragAndDropFileUpload.isSupported()) { | |||||
| var drop = new JX.PhabricatorDragAndDropFileUpload('project-card') | |||||
| .setURI(config.uploadURI) | |||||
| .setChunkThreshold(config.chunkThreshold); | |||||
| drop.listen('didBeginDrag', function(node) { | |||||
| JX.DOM.alterClass(node, 'phui-workcard-upload-target', true); | |||||
| }); | |||||
| drop.listen('didEndDrag', function(node) { | |||||
| JX.DOM.alterClass(node, 'phui-workcard-upload-target', false); | |||||
| }); | |||||
| drop.listen('didUpload', function(file) { | |||||
| var node = file.getTargetNode(); | |||||
| var data = { | |||||
| boardPHID: statics.projectPHID, | |||||
| objectPHID: JX.Stratcom.getData(node).objectPHID, | |||||
| filePHID: file.getPHID() | |||||
| }; | |||||
| new JX.Workflow(config.coverURI, data) | |||||
| .setHandler(function(r) { | |||||
| JX.DOM.replace(node, JX.$H(r.task)); | |||||
| }) | |||||
| .start(); | |||||
| }); | |||||
| drop.start(); | |||||
| } | |||||
| // When the user drags the workboard background, pan the workboard | // When the user drags the workboard background, pan the workboard | ||||
| // horizontally. This allows you to scroll across cards with only the | // horizontally. This allows you to scroll across cards with only the | ||||
| // mouse, without shift + scrollwheel or using the scrollbar. | // mouse, without shift + scrollwheel or using the scrollbar. | ||||
| var pan_origin = null; | var pan_origin = null; | ||||
| var pan_node = null; | var pan_node = null; | ||||
| var pan_x = null; | var pan_x = null; | ||||
| Show All 37 Lines | if (!statics.setup) { | ||||
| update_statics(config); | update_statics(config); | ||||
| var current_page_id = JX.Quicksand.getCurrentPageID(); | var current_page_id = JX.Quicksand.getCurrentPageID(); | ||||
| statics.boardConfigCache = {}; | statics.boardConfigCache = {}; | ||||
| statics.boardConfigCache[current_page_id] = config; | statics.boardConfigCache[current_page_id] = config; | ||||
| init_board(); | init_board(); | ||||
| statics.setup = setup(); | statics.setup = setup(); | ||||
| } | } | ||||
| if (!statics.workboard) { | |||||
| statics.workboard = new JX.Workboard(config); | |||||
| } | |||||
| statics.workboard.addBoard(config.projectPHID, JX.$(config.boardID)); | |||||
| }); | }); | ||||