diff --git a/www/kanban/inner.js b/www/kanban/inner.js index 5eecc9915..966d5db9a 100644 --- a/www/kanban/inner.js +++ b/www/kanban/inner.js @@ -1137,6 +1137,33 @@ define([ if (framework.isReadOnly() || framework.isLocked()) { $container.addClass('cp-app-readonly'); } + + var cleanData = function (boards) { + if (typeof(boards) !== "object") { return; } + var items = boards.items || {}; + var data = boards.data || {}; + var list = boards.list || []; + + // Remove duplicate boards + list = boards.list = Util.deduplicateString(list); + + Object.keys(data).forEach(function (id) { + if (list.indexOf(Number(id)) === -1) { + list.push(Number(id)); + } + // Remove duplicate items + var b = data[id]; + b.item = Util.deduplicateString(b.item || []); + }); + Object.keys(items).forEach(function (eid) { + var exists = Object.keys(data).some(function (id) { + return (data[id].item || []).indexOf(Number(eid)) !== -1; + }); + if (!exists) { delete items[eid]; } + }); + framework.localChange(); + }; + framework.setFileImporter({accept: ['.json', 'application/json']}, function (content /*, file */) { var parsed; try { parsed = JSON.parse(content); } @@ -1293,32 +1320,6 @@ define([ }; }); - var cleanData = function (boards) { - if (typeof(boards) !== "object") { return; } - var items = boards.items || {}; - var data = boards.data || {}; - var list = boards.list || []; - - // Remove duplicate boards - list = boards.list = Util.deduplicateString(list); - - Object.keys(data).forEach(function (id) { - if (list.indexOf(Number(id)) === -1) { - list.push(Number(id)); - } - // Remove duplicate items - var b = data[id]; - b.item = Util.deduplicateString(b.item || []); - }); - Object.keys(items).forEach(function (eid) { - var exists = Object.keys(data).some(function (id) { - return (data[id].item || []).indexOf(Number(eid)) !== -1; - }); - if (!exists) { delete items[eid]; } - }); - framework.localChange(); - }; - framework.onReady(function () { $("#cp-app-kanban-content").focus(); var content = kanban.getBoardsJSON();