You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

390 lines
14 KiB

// override saveSheet on jQuery.sheet for tiki specific export
menuRight = $(
($("#sheetTools").html() + "")
.replace(/sheetInstance/g, "$.sheet.instance[" + $.sheet.I() + "]")
);
menuRight.find(".qt-picker").attr("instance", $.sheet.I());
var jST = $.sheet.tikiSheet;
$.sheet = $.extend({
makeSmall: function() {
var jS = jST.getSheet();
if (jS.obj.fullScreen().is(':visible')) {
jS.toggleFullScreen();
}
},
view: function() {
var jS = jST.getSheet();
var url = "";
if (jST.id) {
url = "tiki-view_sheets.php?sheetId=" + jST.id;
} else {
url = "tiki-view_sheets.php?type=" + jST.type + "&file=" + jST.file;
}
document.location = url;
},
saveSheet: function( fn ) {
var jS = jST.getSheet();
$.sheet.makeSmall();
jS.evt.cellEditDone();
var sheetData = $.sheet.exportSheet(jS);
var url = "";
if (jST.id) {
url = "tiki-view_sheets.php?sheetId=" + jST.id;
} else {
url = "tiki-view_sheets.php?type=" + jST.type + "&file=" + jST.file;
}
jST.tikiModal(tr("Saving"));
$.post(url, {
s: $.toJSON(sheetData)
}, function(data) {
jS.setDirty(false);
if (fn) {
if($.isFunction(fn)) {
fn();
}
}
jST.tikiModal();
});
},
deleteSheet: function() {
var jS = jST.getSheet();
var id = jS.obj.sheet().data('id');
var type = jS.obj.sheet().data('type');
if (type == "tracker") {
$.post('tiki-view_sheets.php', {
sheetId: jST.id,
trackerId: id,
relate: 'remove'
}, function() {
jS.deleteSheet();
});
} else if (type == "file") {
$.post('tiki-view_sheets.php', {
sheetId: jST.id,
fileId: id,
relate: 'remove'
}, function() {
jS.deleteSheet();
});
} else if (type == "sheet") {
$.post('tiki-view_sheets.php', {
sheetId: jST.id,
childSheetId: id,
relate: 'remove'
}, function() {
jS.deleteSheet();
});
} else {
jS.deleteSheet();
}
},
exportSheet: function() {
var jS = jST.getSheet(),
tables = jS.tables(),
sheets = $.sheet.dts.fromTables.json(jS),
i;
var result = []; //documents
for (i in sheets) {
var table = $(tables[i]),
type = table.data('type'),
id = table.data("id"),
sheet = sheets[i];
if (type == "sheet" || !type) { //standard tiki sheet
sheet.id = id;
result.push(sheet); //append to documents
}
}
return result;
},
tikiOptions: {
buildSheet: true,
autoFiller: true,
menuRight: menuRight,
colMargin: 20, //beefed up colMargin because the default size was too small for font
minSize: {
rows: 1,
cols: 1
}
},
manageState: function(toggleEdit, parse) {
var jS = jST.getSheet();
parse = (parse ? parse : '');
var url = "";
if (jST.id) {
url = "tiki-view_sheets.php?sheetId=" + jST.id + "&sheetonly=y&parse=" + parse;
} else {
url = "tiki-view_sheets.php?type=" + jST.type + "&file=" + jST.file + "&sheetonly=y&parse=" + parse;
}
jS.saveSheet = function(){};
jST.tikiModal(tr("Updating"));
var i = jS.i;
jS.switchSpreadsheet(0);
$.get(url, function (o) {
if (!toggleEdit) {
jS.s.editable = !jS.s.editable;
}
jS.toggleState(o);
$.sheet.readyState();
jS.switchSpreadsheet(i);
jST.tikiModal();
});
},
readyState: function() {
var jS = jST.getSheet();
if (jS.s.editable) {
$("#jSheetControls").show();
$("#saveState").show();
$("#editState").hide();
} else {
$("#jSheetControls").hide();
$("#saveState").hide();
$("#editState").show();
}
},
dualFullScreenHelper: function(parent, reset) {
var container = $('#' + parent.attr('id') + '_fullscreen');
var sizeSet = false;
$($.sheet.instance).each(function(i) {
var jS = this;
var tikiSheet = jST.eq(i);
if (!reset) {
jS.sizeOriginal = {
height: tikiSheet.height(),
width: tikiSheet.width()
};
if (!container.length) {
container = $('<div style="left: 0px; top: 0px; z-index: 9999999;" data-parentid="" />')
.attr('id', parent.attr('id') + '_fullscreen')
.data('parentid', parent.attr('id'))
.css('position', 'fixed')
.addClass('ui-widget-content')
.width($(window).width())
.height($(window).height())
.html(parent.children())
.appendTo('body');
}
jS.s.width = $(window).width() / 2;
jS.s.height = $(window).height();
$('.sheet_sibling')
.add('.navbar')
.each(function() {
jS.s.height -= $(this).height();
});
} else {
// this will generate a JS error because width and height is always undefined
// seems to be only use in tiki-history_sheets
if (parent.length) {
$('#' + parent.data('parentid')).html(parent.children());
// parent.remove();
}
// jS.s.width = jS.sizeOriginal.width;
// jS.s.height = jS.sizeOriginal.height;
}
jS.sheetSyncSize();
});
},
setValuesForCompareSheet: function(value1, set1, value2, set2) {
value1 = (value1 ? ":eq(" + value1 + ")" : ":first");
value2 = (value2 ? ":eq(" + value2 + ")" : ":last");
$("input.compareSheet1").filter(value1).click();
$("input.compareSheet2").filter(value2).click();
this.compareSheetClick(set1, set2);
},
compareSheetClick: function(set1, set2) {
var checked1, checked2;
$(set1).each(function() {
if ($(this).is(':checked')) {
checked1 = $(this);
}
});
$(set2).each(function() {
if ($(this).is(':checked')) {
checked2 = $(this);
}
});
$(set1).removeAttr('disabled');
$(set2).removeAttr('disabled');
function disable(obj1, objIndex, obj2, after) {
for (var i = (after ? obj1.index(objIndex) : 0); i < (after ? obj1.length : obj1.index(objIndex) + 1); i++) {
obj2.eq(i).attr('disabled', 'true');
}
}
disable(set1, checked1, set2, true);
disable(set2, checked2, set1);
},
compareSheetsSubmitClick: function(o) {
var sheetId = $('#sheetId').val();
var sheetReadDates = 'idx_0=' + $('input.compareSheet1:checked').val() + '&idx_1=' + $('input.compareSheet2:checked').val() + '&';
window.location = "tiki-history_sheets.php?sheetId=" + sheetId + "&" + sheetReadDates;
return false;
},
link: {
setupUI: function() {
jST
.off("sheetSwitchSpreadsheet")
.on("sheetSwitchSpreadsheet", function(e, jS, i) {
if (i < 0) {
$.sheet.makeSmall();
var switchSheetMsg = $("div.switchSheet").first().clone();
var msg;
switchSheetMsg.find("input.newSpreadsheet").click(function() {
switchSheetMsg.dialog("close").remove();
jS.switchSpreadsheet(i);
});
switchSheetMsg.find("input.addSpreadsheet").click(function() {
switchSheetMsg.dialog("close").remove();
$.tikiModal(tr("Loading"));
msg = $("<div />").load("tiki-sheets.php #role_main .tabcontent:first table", function() {
$.tikiModal();
msg.dialog({
width: jST.width(),
height: jST.height(),
modal: true
});
msg.find("a.sheetLink").each(function() {
$(this).click(function() {
msg.dialog("close").remove();
$.sheet.link.make("spreadsheet", $(this).attr("sheetid"));
return false;
});
});
});
});
switchSheetMsg.find("input.addTracker").click(function() {
switchSheetMsg.dialog("close").remove();
$.tikiModal(tr("Loading"));
msg = $("<div />").load("tiki-list_trackers.php #role_main table", function() {
$.tikiModal();
var trackerList = $('<table><tr><td>' + tr('Id') + '</td><td>' + tr('Name') + '</td></tr></table>');
msg.find('td.id').each(function() {
var trackerId = $.trim($(this).text());
var trTrackerSelection = $('<tr><td>' + trackerId + '</td><td>' + $(this).next().text() + '</td></tr>')
.click(function() {
msg.dialog("close").remove();
$.sheet.link.make("tracker", trackerId);
})
.css('cursor', 'pointer');
trackerList.append(trTrackerSelection);
});
trackerList.dialog({
width: jST.width(),
height: jST.height(),
modal: true,
title: tr('Tracker')
});
});
});
switchSheetMsg.find("input.addFile").click(function() {
switchSheetMsg.dialog("close").remove();
$.tikiModal(tr("Loading"));
msg = $("<div />").load("tiki-list_file_gallery.php?find_fileType=csv #fgalform", function() {
$.tikiModal();
msg.dialog({
width: jST.width(),
height: jST.height(),
modal: true
});
msg.find("a.fileLink").each(function() {
$(this).click(function() {
msg.dialog("close").remove();
$.sheet.link.make("file", $(this).attr("fileId"));
return false;
});
});
});
});
switchSheetMsg
.dialog({
title: switchSheetMsg.attr("title"),
modal: true,
resizable: false
});
return false;
} else {
jS.switchSpreadsheet(i);
}
});
},
make: function(type, id) {
jST.tikiModal(tr('Updating'));
$.sheet.saveSheet(function() {
try {
switch (type) {
case "spreadsheet":
$.get("tiki-view_sheets.php", {
sheetId: jST.id,
childSheetId: id,
relate: "add"
}, function() {
$.sheet.manageState();
jST.tikiModal();
});
break;
case "file":
$.get("tiki-view_sheets.php", {
sheetId: jST.id,
fileId: id,
relate: "add"
}, function() {
$.sheet.manageState();
jST.tikiModal();
});
break;
case "tracker":
$.get("tiki-view_sheets.php", {
sheetId: jST.id,
trackerId: id,
relate: "add"
}, function() {
$.sheet.manageState();
jST.tikiModal();
});
break;
}
} catch(e) {}
});
return false;
}
}
}, $.sheet);