'
+'';
}
window.plugin.todolist.getHTML.selectActions = function(){
var html = '';
html += '';
return html;
}
window.plugin.todolist.getHTML.optionActions = function(){
var list = window.plugin.todolist.data.getActions();
var curr = window.plugin.todolist.data.getCurr('action');
var html = '';
for(index in list){
var isSelected = (curr === list[index])? 'selected' : '';
html += '';
}
return html;
}
window.plugin.todolist.getHTML.selectPlayers = function(){
var html = '';
html += '';
return html;
}
window.plugin.todolist.getHTML.optionPlayers = function(){
var list = window.plugin.todolist.data.getPlayers();
var curr = window.plugin.todolist.data.getCurr('player');
var html = '';
var isSelected = (curr === null)? 'selected' : '';
html += '';
for(index in list){
var isSelected = (curr === list[index])? 'selected' : '';
html += '';
}
return html;
}
window.plugin.todolist.getHTML.addTaskBtn = function(){
return 'Task';
}
window.plugin.todolist.getHTML.portaLink = function(guid, title, latlng){
var ll = '['+latlng.lat+','+latlng.lng+']';
var clickAction = 'window.zoomToAndShowPortal(\''+guid+'\', '+ll+');';
var html = '';
html += '';
html += title;
html += '';
return html;
}
window.plugin.todolist.getHTML.allTasks = function(){
var tasks = window.plugin.todolist.data.getTasks();
var len = window.plugin.todolist.data.getTasksLength();
var html = '';
if(len === 0){
html = '
No tasks
';
}else{
for(index in tasks){
html += window.plugin.todolist.getHTML.task(tasks[index], index);
}
}
return html;
}
window.plugin.todolist.getHTML.task = function(taskObj, index){
var myTeam = window.PLAYER.team.toLowerCase();
var action = taskObj.action;
var playerNick = taskObj.nick;
var portalTitle = taskObj.to.title;
var html = '';
var isChecked = window.plugin.todolist.data.isCheckedTask(index);
var checkedClass = (isChecked === 1)? 'checked' : '';
var checkedInputClass = (isChecked === 1)? 'fa-check-square-o' : 'fa-square-o';
var checkedInput = (isChecked === 1)? 'checked' : '';
var isEnabledCopyMode = window.plugin.todolist.data.isEnabledCopyMode();
var copyHTML = (isEnabledCopyMode === false)? '' : '';
var copyParentClass = (isEnabledCopyMode === false)? '' : ' copyMode';
html += '
',
dialogClass: 'ui-dialog-todolist message'
});
}
window.plugin.todolist.dialog.openBoxExport = function(strData){
var html = '';
html += '
';
html += 'Select all';
html += ' and press CTRL+C to copy it.'
html += '
';
html += '';
dialog({
title: 'To Do List - Export',
html: '
'+html+'
',
dialogClass: 'ui-dialog-todolist export',
width: 350
});
}
window.plugin.todolist.dialog.import_storage = function(){
var promptAction = prompt('Insert a ToDo List exported Storage', '');
if(promptAction !== null && promptAction !== ''){
try{
var obj = JSON.parse(promptAction);
if(obj.players && obj.tasks){
window.plugin.todolist.data.importMain(obj);
window.plugin.todolist.storage.save();
window.plugin.todolist.action.reloadBox();
window.plugin.todolist.dialog.openBoxMessage('Import succesful');
}else{
window.plugin.todolist.dialog.openBoxMessage('Not possible import your string');
}
}catch(err){
window.plugin.todolist.dialog.openBoxMessage('Not possible import your string');
}
}
}
window.plugin.todolist.dialog.export_storage = function(){
var str = JSON.stringify(window.plugin.todolist.obj.main);
window.plugin.todolist.dialog.openBoxExport(str);
}
window.plugin.todolist.dialog.export_simple = function(){
var list = window.plugin.todolist.data.getTasks();
var str = '';
for(index in list){
var task = list[index];
var check = (task.check === 1)? '+' : '-';
var player = (task.nick !== null)? task.nick+' ' : '';
var action = task.action;
var portalTo = task.to.title;
str += check+' ';
str += player;
str += action+' ';
if(task.from){
str += 'from ';
str += task.from.title;
str += ' to ';
}
str += portalTo;
str += ';\n';
}
window.plugin.todolist.dialog.openBoxExport(str);
}
window.plugin.todolist.dialog.export_tsv = function(){
var list = window.plugin.todolist.data.getTasks();
var str = '';
for(index in list){
var task = list[index];
var check = (task.check === 1)? 'V' : '';
var player = (task.nick !== null)? task.nick : '---';
var action = task.action;
var portalTo = task.to.title;
var portalToLL = task.to.ll;
str += check+'\t'+player+'\t'+action+'\t';
if(task.from){
var portalFrom = task.from.title;
var portalFromLL = task.from.ll;
str += portalFrom+'\t';
str += '['+portalFromLL.lat+','+portalFromLL.lng+']\t';
str += '=HYPERLINK("'+window.plugin.todolist.generateIntelByLatLng(portalFromLL, portalFrom)+'";"intel")\t';
str += '=HYPERLINK("'+window.plugin.todolist.generateGmapsByLatLng(portalFromLL, portalFrom)+'";"gmaps")\t';
str += 'to\t';
str += portalTo+'\t';
str += '['+portalToLL.lat+','+portalToLL.lng+']\t';
str += '=HYPERLINK("'+window.plugin.todolist.generateIntelByLatLng(portalToLL, portalTo)+'";"intel")\t';
str += '=HYPERLINK("'+window.plugin.todolist.generateGmapsByLatLng(portalToLL, portalTo)+'";"gmaps")\t';
}else{
str += portalTo+'\t';
str += '['+portalToLL.lat+','+portalToLL.lng+']\t';
str += '=HYPERLINK("'+window.plugin.todolist.generateIntelByLatLng(portalToLL, portalTo)+'";"intel")\t';
str += '=HYPERLINK("'+window.plugin.todolist.generateGmapsByLatLng(portalToLL, portalTo)+'";"gmaps")\t';
str += '\t';
str += '\t\t';
str += '\t\t';
}
str += '\n';
var linkTo = (task.from !== null)? task.nick : '---';
}
window.plugin.todolist.dialog.openBoxExport(str);
}
window.plugin.todolist.dialog.reset = function(){
var promptAction = confirm('Your ToDo List will be deleted. Are you sure?', '');
if(promptAction === true){
window.plugin.todolist.action.reset();
}
}
window.plugin.todolist.dialog.addPlayer = function(){
var promptAction = prompt('Insert a Player name', '');
if(promptAction !== null && promptAction !== ''){
window.plugin.todolist.action.addPlayer(promptAction);
}
}
//------------------------------------------------------------------
// KEYS LIST
//------------------------------------------------------------------
window.plugin.todolist.getHTML.keysListByPortal = function(){
var mixLists = window.plugin.todolist.data.generateJsonKeysList();
var keysByPortal = mixLists['byPortal'];
var keysByPlayers = mixLists['byPlayer'];
var myTeam = window.PLAYER.team.toLowerCase();
var html = '';
html += '
';
html += '
Keys by Portal
';
html += ' Expand/Reduce';
html += '';
for(guid in keysByPortal['list']){
var portal = keysByPortal['list'][guid];
html += '
';
html += 'x'+portal.keys.total+' ';
html += ''+portal.title+'';
html += '
';
for(nick in portal['keys']['players']){
html += '
';
html += 'x'+portal['keys']['players'][nick]+' ';
html += ''+nick+'';
html += '
';
}
html += '
';
html += '
';
}
html += '';
html += '
'
return html;
}
window.plugin.todolist.getHTML.keysListByPlayer = function(){
var mixLists = window.plugin.todolist.data.generateJsonKeysList();
var keysByPortal = mixLists['byPortal'];
var keysByPlayers = mixLists['byPlayer'];
var myTeam = window.PLAYER.team.toLowerCase();
var html = '';
html += '
';
html += '
Keys by Player
';
html += '';
for(nick in keysByPlayers['list']){
var player = keysByPlayers['list'][nick];
html += '
';
html += ''+nick+'';
html += '
';
for(guid in player['keys']['portals']){
var portal = player['keys']['portals'][guid];
html += '
';
html += 'x'+portal.keys+' ';
html += ''+portal.title+'';
html += '
';
}
html += '
';
html += '
';
}
html += '';
html += '
';
return html;
}
window.plugin.todolist.getHTML.keysBox = function(){
var mixLists = window.plugin.todolist.data.generateJsonKeysList();
var keysByPortal = mixLists['byPortal'];
var keysByPlayers = mixLists['byPlayer'];
var colorFaction = (window.PLAYER.team === 'ENL')? '#27f527' : 'blue';
var html = '';
html += '
';
str1 += ' Export as text';
window.plugin.todolist.dialog.openBoxMessage(str1);
},
'REFRESH': function(){
window.plugin.todolist.ui.refreshKeysList();
},
}
});
$('.toDoList.keys.tabs').tabs({active: 0});
}
window.plugin.todolist.layer.drawKeysMarkers = function(){
var list = window.plugin.todolist.data.generateJsonKeysList();
for(guid in list['byPortal']['list']){
var portal = list['byPortal']['list'][guid];
var ll = portal.ll;
L.marker(portal.ll).addTo(map);
}
}
window.plugin.todolist.data.generateJsonKeysList = function(){
var tasks = window.plugin.todolist.data.getTasks();
var obj = {};
obj['totKeys'] = 0;
obj['byPortal'] = {count:0,list:{}};
obj['byPlayer'] = {count:0,list:{}};
for(i in tasks){
var task = tasks[i];
if(task.action == 'link' || task.action == 'get key'){
if(task.to){
var portal = task.to;
var guid = portal.guid;
var nick = (task.nick !== null)? task.nick : '{{undefined}}';
//-----------
obj['totKeys']++;
//-----------
if(!obj['byPortal']['list'][guid]){
obj['byPortal']['list'][guid] = JSON.parse(JSON.stringify(portal));
obj['byPortal']['list'][guid]['keys'] = {};
obj['byPortal']['list'][guid]['keys']['total'] = 0;
obj['byPortal']['list'][guid]['keys']['players'] = {};
obj['byPortal']['count']++;
}
obj['byPortal']['list'][guid]['keys']['total']++;
if(!obj['byPortal']['list'][guid]['keys']['players'][nick]){
obj['byPortal']['list'][guid]['keys']['players'][nick] = 0;
}
obj['byPortal']['list'][guid]['keys']['players'][nick]++;
//-----------
if(!obj['byPlayer']['list'][nick]){
obj['byPlayer']['list'][nick] = {};
obj['byPlayer']['list'][nick]['keys'] = {};
obj['byPlayer']['list'][nick]['keys']['total'] = 0;
obj['byPlayer']['list'][nick]['keys']['portals'] = {};
obj['byPlayer']['count']++;
}
obj['byPlayer']['list'][nick]['keys']['total']++;
if(!obj['byPlayer']['list'][nick]['keys']['portals'][guid]){
obj['byPlayer']['list'][nick]['keys']['portals'][guid] = JSON.parse(JSON.stringify(portal));
obj['byPlayer']['list'][nick]['keys']['portals'][guid]['keys'] = 0;
}
obj['byPlayer']['list'][nick]['keys']['portals'][guid]['keys']++;
}
}
}
return obj;
}
window.plugin.todolist.action.copyKeysListAsTsv = function(){
var lists = window.plugin.todolist.data.generateJsonKeysList();
var list_1 = lists['byPlayer']['list'];
var list_2 = lists['byPortal']['list'];
var str = '';
str += ' \t \t \t \t ';
for(nick in list_1){
str += '\t '+nick+'';
}
str += '\n';
for(guid in list_2){
var portal = list_2[guid];
var portalTitle = portal.title;
var ll = portal.ll;
str += '['+ll.lat+','+ll.lng+']\t';
str += '=HYPERLINK("'+window.plugin.todolist.generateIntelByLatLng(ll, portalTitle)+'";"intel")\t';
str += '=HYPERLINK("'+window.plugin.todolist.generateGmapsByLatLng(ll, portalTitle)+'";"gmaps")\t';
str += portalTitle+'\t';
str += portal.keys.total+'';
for(nick in list_1){
var keys = (list_1[nick].keys.portals[guid] !== undefined)? list_1[nick].keys.portals[guid].keys : '';
str += '\t '+keys;
}
str += '\n';
}
window.plugin.todolist.dialog.openBoxExport(str);
}
window.plugin.todolist.action.copyKeysListByPlayerAsText = function(){
var lists = window.plugin.todolist.data.generateJsonKeysList();
var list = lists['byPlayer']['list'];
var str = '';
for(nick in list){
str += '- '+nick+':\n';
for(guid in list[nick].keys.portals){
var portal = list[nick].keys.portals[guid];
str += '---- [x'+portal.keys+'] '+portal.title+'\n';
}
}
window.plugin.todolist.dialog.openBoxExport(str);
}
window.plugin.todolist.action.copyKeysListByPortalAsText = function(exportNick){
var lists = window.plugin.todolist.data.generateJsonKeysList();
var list = lists['byPortal']['list'];
var str = '';
for(guid in list){
var portal = list[guid];
str += '- [x'+portal.keys.total+'] '+portal.title+'\n';
if(exportNick === 1 || exportNick === true){
for(nick in portal.keys.players){
str += '---- [x'+portal.keys.players[nick]+'] '+nick+'\n';
}
}
}
window.plugin.todolist.dialog.openBoxExport(str);
}
//------------------------------------------------------------------
// LAYERS
//------------------------------------------------------------------
window.plugin.todolist.data.generatePortalsList = function(){
var tasks = window.plugin.todolist.data.getTasks();
var obj = {count:0,list:{}};
for(i in tasks){
var task = tasks[i];
if(task.from){
var portal = JSON.parse(JSON.stringify(task.from));
var guid = portal.guid;
if(!obj['list'][guid]){
obj['list'][guid] = portal;
obj['count']++;
}
}
if(task.to){
var portal = JSON.parse(JSON.stringify(task.to));
var guid = portal.guid;
var nick = task.nick;
if(!obj['list'][guid]){
obj['list'][guid] = portal;
obj['count']++;
}
}
}
return obj;
}
window.plugin.todolist.data.getPortalTask = function(guid){
var lists = window.plugin.todolist.data.generateJsonActionsList();
var listByPortal = lists['byPortal'];
var portal = listByPortal[guid];
return portal;
}
window.plugin.todolist.layer.removeNoTaskPortal = function(){
var list = window.plugin.todolist.data.generatePortalsList();
window.plugin.todolist.layer.layerGroup.eachLayer(function(layer){
var guid = layer.options.guid;
if(list['list'][guid] === undefined){
window.plugin.todolist.layer.layerGroup.removeLayer(layer);
}
});
}
window.plugin.todolist.layer.drawPortalsMarkers = function(){
window.plugin.todolist.layer.layerGroup.clearLayers();
var list = window.plugin.todolist.data.generatePortalsList();
for(guid in list['list']){
var portal = list['list'][guid];
var ll = portal.ll;
var options = {
title: portal.title,
guid: portal.guid,
icon: L.divIcon({
popupAnchor:L.point(0, -40),
iconAnchor: [15,40],
iconSize: [30,30],
className: 'toDoList toDoListMarker toDoListPin',
html: '
'
})
};
var marker = L.marker(portal.ll, options);
window.registerMarkerForOMS(marker);
marker.addEventListener('spiderfiedclick', window.plugin.todolist.layer.openPopup(marker));
window.plugin.todolist.layer.layerGroup.addLayer(marker);
}
}
window.plugin.todolist.layer.openPopup = function(marker){
return function(){
var html = '';
var guid = marker.options.guid;
var portal = window.plugin.todolist.data.getPortalTask(guid);
var myTeam = window.PLAYER.team.toLowerCase();
html += '
';
html += '
';
if(portal['actions'] !== undefined){
for(i in portal['actions']){
var task = portal['actions'][i];
html += window.plugin.todolist.getHTML.task(task, task.i);
}
}
html += '
';
html += '
';
//pre-create for reference and display popup
var popup = L.popup({
maxWidth:400,
closeButton: false,
className:'toDoList toDoList-PopUp popup',
offset:[0,-40]
})
.setLatLng(marker.getLatLng()) //(assuming e.latlng returns the coordinates of the event)
.setContent(html)
.openOn(map);
};
}
window.plugin.todolist.data.generateJsonActionsList = function(){
var tasks = window.plugin.todolist.data.getTasks();
var obj = {};
obj['tot'] = window.plugin.todolist.data.getTasksLength();
obj['byPortal'] = {};
for(i in tasks){
var task = tasks[i];
if(task.to){
var portal = task.to;
var guid = portal.guid;
var nick = (task.nick !== null)? task.nick : '{{undefined}}';
var action = JSON.parse(JSON.stringify(task));
action['i'] = parseInt(i);
//-----------
if(!obj['byPortal'][guid]){
obj['byPortal'][guid] = JSON.parse(JSON.stringify(portal));
obj['byPortal'][guid]['actions'] = [];
}
obj['byPortal'][guid]['actions'].push(action);
}
if(task.from){
var portal = task.from;
var guid = portal.guid;
var nick = (task.nick !== null)? task.nick : '{{undefined}}';
var action = JSON.parse(JSON.stringify(task));
action['i'] = parseInt(i);
//-----------
if(!obj['byPortal'][guid]){
obj['byPortal'][guid] = JSON.parse(JSON.stringify(portal));
obj['byPortal'][guid]['actions'] = [];
}
obj['byPortal'][guid]['actions'].push(action);
}
}
return obj;
}
//------------------------------------------------------------------
// MPE
//------------------------------------------------------------------
window.plugin.todolist.mpe.initMPE = function(){
if(window.plugin.mpe !== undefined){
window.plugin.mpe.setMultiProjects({
namespace: 'todolist',
title: 'ToDo List',
fa: 'fa-check-square-o',
defaultKey: 'plugin-todolist',
func_setKey: function(newKey){
window.plugin.todolist.storage.NAME = newKey;
},
func_pre: function(){},
func_post: function(){
window.plugin.todolist.obj.main = {settings:{drawMode:0,copyMode:0}, players:[], tasks:[]};
window.plugin.todolist.storage.check();
window.plugin.todolist.obj.curr = {player:null, action:window.plugin.todolist.obj.actions[0]};
window.plugin.todolist.data.resetLinkMode();
window.plugin.todolist.action.reloadBox();
}
});
}
}
//------------------------------------------------------------------
window.plugin.todolist.setupCSS = function(){
$('