works!
This commit is contained in:
parent
2aa937bb49
commit
72f50b438b
1 changed files with 28 additions and 17 deletions
43
index.html
43
index.html
|
@ -48,6 +48,8 @@
|
||||||
<script>
|
<script>
|
||||||
// (function () {
|
// (function () {
|
||||||
|
|
||||||
|
function debug(args) { console.log(args); }
|
||||||
|
|
||||||
function enabledrag(event) { event.preventDefault(); }
|
function enabledrag(event) { event.preventDefault(); }
|
||||||
|
|
||||||
var state = null;
|
var state = null;
|
||||||
|
@ -71,7 +73,7 @@
|
||||||
assignments: {}
|
assignments: {}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
console.log(state);
|
debug(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveState() {
|
function saveState() {
|
||||||
|
@ -80,7 +82,7 @@
|
||||||
|
|
||||||
function init(){
|
function init(){
|
||||||
retrieveState();
|
retrieveState();
|
||||||
console.log(state);
|
debug(state);
|
||||||
var devcards=document.getElementById("devs");
|
var devcards=document.getElementById("devs");
|
||||||
state.people.forEach(function(p) {
|
state.people.forEach(function(p) {
|
||||||
devcards.appendChild( createDev(p) );
|
devcards.appendChild( createDev(p) );
|
||||||
|
@ -109,10 +111,11 @@
|
||||||
cards.forEach(function(card){ card.draggable = true; card.ondragstart = drag; });
|
cards.forEach(function(card){ card.draggable = true; card.ondragstart = drag; });
|
||||||
// build assignments
|
// build assignments
|
||||||
for ( cellid in state.assignments ) {
|
for ( cellid in state.assignments ) {
|
||||||
for ( member in state.assignments[cellid] ) {
|
state.assignments[cellid].forEach (function(member) {
|
||||||
var el = document.getElementById( cellid );
|
var el = document.getElementById( cellid );
|
||||||
|
debug("devcard; member: " + member + ", cellid: " + cellid);
|
||||||
el.appendChild(devcard(member, cellid));
|
el.appendChild(devcard(member, cellid));
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -252,49 +255,57 @@
|
||||||
state.assignments[id]=[];
|
state.assignments[id]=[];
|
||||||
}
|
}
|
||||||
state.assignments[id].push(name);
|
state.assignments[id].push(name);
|
||||||
console.log(state.assignments);
|
debug(state.assignments);
|
||||||
}
|
}
|
||||||
|
|
||||||
function moveAssignment(id, name) {
|
function moveAssignment(id, name) {
|
||||||
var memberName = name.replace(/^[^-]*-/,'').replace(/-cell-.*$/,'');
|
var memberName = name.replace(/^[^-]*-/,'').replace(/-cell-.*$/,'');
|
||||||
var oldid = name.replace(/^.*-cell-/,'cell-');
|
removeAssignment(name);
|
||||||
if (! state.assignments[id]) {
|
if (! state.assignments[id]) {
|
||||||
state.assignments[id]=[];
|
state.assignments[id]=[];
|
||||||
}
|
}
|
||||||
console.log("memberName: " + memberName);
|
|
||||||
console.log("OLDID: " + oldid);
|
|
||||||
var idx = state.assignments[oldid].indexOf(memberName);
|
|
||||||
if (idx !== -1) {
|
|
||||||
state.assignments[oldid].splice(idx,1);
|
|
||||||
}
|
|
||||||
state.assignments[id].push(memberName);
|
state.assignments[id].push(memberName);
|
||||||
console.log(state.assignments);
|
debug(state.assignments);
|
||||||
}
|
}
|
||||||
|
|
||||||
function drop(ev,el) {
|
function drop(ev,el) {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
var name = ev.dataTransfer.getData("text");
|
var name = ev.dataTransfer.getData("text");
|
||||||
if ( name.startsWith("inner-") ) {
|
if ( name.startsWith("inner-") ) {
|
||||||
console.log("move: " + name);
|
debug("move: " + name);
|
||||||
document.getElementById(name).remove();
|
document.getElementById(name).remove();
|
||||||
var memberName = name.replace(/^[^-]*-/,'').replace(/-cell-.*$/,'');
|
var memberName = name.replace(/^[^-]*-/,'').replace(/-cell-.*$/,'');
|
||||||
el.appendChild(devcard(memberName,el.id));
|
el.appendChild(devcard(memberName,el.id));
|
||||||
moveAssignment(el.id, name);
|
moveAssignment(el.id, name);
|
||||||
} else {
|
} else {
|
||||||
console.log("create: " + name);
|
debug("create: " + name);
|
||||||
el.appendChild(devcard(name,el.id));
|
el.appendChild(devcard(name,el.id));
|
||||||
createAssignment(el.id, name);
|
createAssignment(el.id, name);
|
||||||
}
|
}
|
||||||
saveState();
|
saveState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function removeAssignment(name) {
|
||||||
|
var memberName = name.replace(/^[^-]*-/,'').replace(/-cell-.*$/,'');
|
||||||
|
var oldid = name.replace(/^.*-cell-/,'cell-');
|
||||||
|
debug("memberName: " + memberName);
|
||||||
|
debug("OLDID: " + oldid);
|
||||||
|
var idx = state.assignments[oldid].indexOf(memberName);
|
||||||
|
if (idx !== -1) {
|
||||||
|
state.assignments[oldid].splice(idx,1);
|
||||||
|
}
|
||||||
|
debug(state.assignments);
|
||||||
|
}
|
||||||
|
|
||||||
function trash(ev) {
|
function trash(ev) {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
var name = ev.dataTransfer.getData("text");
|
var name = ev.dataTransfer.getData("text");
|
||||||
if ( name.startsWith("inner-") ) {
|
if ( name.startsWith("inner-") ) {
|
||||||
console.log("TRASH: " + name);
|
debug("TRASH: " + name);
|
||||||
unhltrash(null);
|
unhltrash(null);
|
||||||
document.getElementById(name).remove();
|
document.getElementById(name).remove();
|
||||||
|
removeAssignment(name);
|
||||||
}
|
}
|
||||||
saveState();
|
saveState();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue