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 | ||||
* phabricator-draggable-list | * phabricator-draggable-list | ||||
*/ | */ | ||||
JX.behavior('project-boards', function(config) { | JX.behavior('project-boards', function(config) { | ||||
function finditems(col) { | function finditems(col) { | ||||
return JX.DOM.scry(col, 'li', 'project-card'); | return JX.DOM.scry(col, 'li', 'project-card'); | ||||
} | } | ||||
function onupdate(node) { | |||||
JX.DOM.alterClass(node, 'project-column-empty', !this.findItems().length); | |||||
} | |||||
var lists = []; | var lists = []; | ||||
var ii; | var ii; | ||||
var cols = JX.DOM.scry(JX.$(config.boardID), 'ul', 'project-column'); | var cols = JX.DOM.scry(JX.$(config.boardID), 'ul', 'project-column'); | ||||
for (ii = 0; ii < cols.length; ii++) { | for (ii = 0; ii < cols.length; ii++) { | ||||
var list = new JX.DraggableList('project-card', cols[ii]) | var list = new JX.DraggableList('project-card', cols[ii]) | ||||
.setFindItemsHandler(JX.bind(null, finditems, cols[ii])); | .setFindItemsHandler(JX.bind(null, finditems, cols[ii])); | ||||
list.listen('didSend', JX.bind(list, onupdate, cols[ii])); | |||||
list.listen('didReceive', JX.bind(list, onupdate, cols[ii])); | |||||
lists.push(list); | lists.push(list); | ||||
} | } | ||||
for (ii = 0; ii < lists.length; ii++) { | for (ii = 0; ii < lists.length; ii++) { | ||||
lists[ii].setGroup(lists); | lists[ii].setGroup(lists); | ||||
} | } | ||||
}); | }); |