2
0
mirror of https://github.com/ACSPRI/queXS synced 2024-04-02 12:12:16 +00:00
Files
CATI_Tool/include/limesurvey/admin/scripts/browse.js

189 lines
6.3 KiB
JavaScript

/*
* LimeSurvey
* Copyright (C) 2007 The LimeSurvey Project Team / Carsten Schmitz
* All rights reserved.
* License: GNU/GPL License v2 or later, see LICENSE.php
* LimeSurvey is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*
* $Id: browse.js 11664 2011-12-16 05:19:42Z tmswhite $
*/
$(document).ready(function(){
// Delete individual file
$(".deleteresponse").click(function(){
thisid=removechars($(this).attr('id'));
answer = confirm(strdeleteconfirm);
if (answer==true)
{
$('#deleteanswer').val(thisid);
$('.cbResponseMarker').attr('checked',false);
$('#resulttableform').submit();
}
});
// Delete all marked responses
$("#imgDeleteMarkedResponses").click(function(){
if ($('.cbResponseMarker:checked').size()>0)
{
thisid=removechars($(this).attr('id'));
answer = confirm(strDeleteAllConfirm);
if (answer==true)
{
$('#deleteanswer').val('marked');
$('#resulttableform').submit();
}
}
else
alert(noFilesSelectedForDeletion)
});
// Download individual file bundle
$(".downloadfile").click(function() {
thisid = removechars($(this).attr('id'));
$('#downloadfile').val(thisid);
$('.cbResponseMarker').attr('checked', false);
$('#resulttableform').submit();
});
// Download all marked files
$("#imgDownloadMarkedFiles").click(function() {
if ($('.cbResponseMarker:checked').size() > 0)
{
$('#downloadfile').val('marked');
$('#resulttableform').submit();
}
else
alert(noFilesSelectedForDnld)
});
$("#selectall").click(function(){
$('.cbResponseMarker').attr('checked',$(this).attr('checked'));
});
$('#browseresponses').qtip({
content:{
text:$('#browselangpopup')
},
style: { name: 'cream',
tip:true,
color:'#111111',
border: {
width: 1,
radius: 5,
color: '#EADF95'}
},
position: { adjust: {
screen: true, scroll:true },
corner: {
target: 'bottomMiddle',
tooltip: 'topMiddle'}
},
show: {effect: { length:50},
when: {
event:'click'
}},
hide: {fixed:true,
when: {
event:'unfocus'
}}
});
// Fix the heigh of the cell
$('.browsetable td').each(function(){
if ($(this).text().length> 30){
$(this).html("<span class=\"content\" title=\""+htmlspecialchars(htmlspecialchars($(this).text(),'ENT_HTML_QUOTE_DOUBLE'),'ENT_QUOTES')+"\">"+$(this).html()+"</span>");
}
});
$('.browsetable th strong').each(function(){
if ($(this).text().length> 30){
$(this).addClass("content");
$(this).attr("title",$(this).text());
}
});
$('.browsetable td span.content').qtip({
hide: {
fixed: true,
delay: 500
},
position: {
corner: {
target: 'leftMiddle',
tooltip: 'topRight'
}
}
});
$('.browsetable th strong.content').qtip({
hide: {
fixed: true,
delay: 500
},
position: {
corner: {
target: 'leftMiddle',
tooltip: 'topRight'
}
}
});
});
function htmlspecialchars (string, quote_style, charset, double_encode) {
// Convert special characters to HTML entities
//
// version: 1109.2015
// discuss at: http://phpjs.org/functions/htmlspecialchars // + original by: Mirek Slugen
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfixed by: Nathan
// + bugfixed by: Arno
// + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Brett Zamir (http://brett-zamir.me)
// + input by: Ratheous
// + input by: Mailfaker (http://www.weedem.fr/)
// + reimplemented by: Brett Zamir (http://brett-zamir.me)
// + input by: felix // + bugfixed by: Brett Zamir (http://brett-zamir.me)
// % note 1: charset argument not supported
// * example 1: htmlspecialchars("<a href='test'>Test</a>", 'ENT_QUOTES');
// * returns 1: '&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;'
// * example 2: htmlspecialchars("ab\"c'd", ['ENT_NOQUOTES', 'ENT_QUOTES']); // * returns 2: 'ab"c&#039;d'
// * example 3: htmlspecialchars("my "&entity;" is still here", null, null, false);
// * returns 3: 'my &quot;&entity;&quot; is still here'
var optTemp = 0,
i = 0, noquotes = false;
if (typeof quote_style === 'undefined' || quote_style === null) {
quote_style = 2;
}
string = string.toString(); if (double_encode !== false) { // Put this first to avoid double-encoding
string = string.replace(/&/g, '&amp;');
}
string = string.replace(/</g, '&lt;').replace(/>/g, '&gt;');
var OPTS = {
'ENT_NOQUOTES': 0,
'ENT_HTML_QUOTE_SINGLE': 1,
'ENT_HTML_QUOTE_DOUBLE': 2,
'ENT_COMPAT': 2, 'ENT_QUOTES': 3,
'ENT_IGNORE': 4
};
if (quote_style === 0) {
noquotes = true; }
if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
quote_style = [].concat(quote_style);
for (i = 0; i < quote_style.length; i++) {
// Resolve string input to bitwise e.g. 'ENT_IGNORE' becomes 4
if (OPTS[quote_style[i]] === 0) {
noquotes = true;
}
else if (OPTS[quote_style[i]]) {
optTemp = optTemp | OPTS[quote_style[i]]; }
}
quote_style = optTemp;
}
if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) { string = string.replace(/'/g, '&#039;');
}
if (!noquotes) {
string = string.replace(/"/g, '&quot;');
}
return string;
}