Files
Phraseanet/www/client/jquery.p4client.1.0.js
Nicolas Le Goff cdcceb24ec Refactor client
Terminate baskets.php

Update Refactor

Fix grid layout

Fix page navigation issue when no results

Fix mainMenu position for ie6

Fix IE6 javascript errors

Fix some client bugs

Fix indent

cleanup

Add Client tests

Fix typo

FIx indent

Use new search engine API

Remove useless comments

Remove old client

Add cover annotations

CS fixer
2013-01-28 14:09:49 +01:00

999 lines
21 KiB
JavaScript

/*************
* GLOBALES
**************/
var p4 = $.extend(p4 || {}, {
tot:0,
preview :{open:false,current:false},
currentViewMode:'classic',
nbNoview:0
});
var baskAjax,baskAjaxrunning;
baskAjaxrunning = false;
var answAjax,answAjaxrunning;
answAjaxrunning = false;
var wCompare = null;
var language = {};
var bodySize = {x:0,y:0};
/*************
* INITIALISATION
**************/
function acceptCgus(name,value)
{
setPref(name,value);
}
function cancelCgus(id)
{
$.ajax({
type: "POST",
url: "/prod/TOU/deny/"+id+"/",
data: {},
success: function(data){
if(data == '1')
{
alert(language.cgusRelog);
self.location.replace(self.location.href);
}
}
});
}
function activateCgus()
{
$('.cgu-dialog:first').dialog({
autoOpen : true,
closeOnEscape:false,
draggable:false,
modal:true,
resizable:false,
width:800,
height:600,
open:function() {
$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar-close").remove();
var currentdialog = $(this);
$('.cgus-accept',$(this)).bind('click',function(){
acceptCgus($('.cgus-accept',currentdialog).attr('id'),$('.cgus-accept',currentdialog).attr('date'));
$('.cgu-dialog').dialog('close');
});
$('.cgus-cancel',$(this)).bind('click',function(){
if(confirm(language.warningDenyCgus))
{
cancelCgus($('.cgus-cancel',currentdialog).attr('id').split('_').pop());
}
});
},
close:function(){
activateCgus();
}
});
}
$(document).ready(function(){
activateCgus();
});
$(document).ready(function(){
$.ajaxSetup({
error: function(){
showModal('error',{title:'Server error'});
},
timeout: function(){
showModal('timeout',{title:'Server not responding'});
}
});
getLanguage();
$('.datepicker').datepicker({
firstDay: 1,
changeYear: true, changeMonth:true,
showOn: 'button', buttonImage:'/skins/icons/cal.png', buttonImageOnly: true
});
checkFilters();
window.setTimeout("checkBaskets();", 5000);
$('.actives').hover(function(){
$(this).addClass("hover");
},function(){
$(this).removeClass("hover");
});
sessionactive();
resize();
$(window).resize(function(){
resize();
resizeSearch();
});
initAnswerForm();
initBasketForm();
$('#PREVIEWHD').bind('click',function(){
$(this).hide();
$(this).empty();
});
$('#PREVIEWHD').trigger('click');
getBaskets();
afterSearch();
$(this).bind('keydown',function(event)
{
if(p4.preview.open)
{
switch(event.keyCode)
{
case 39:
getNext();
break;
case 37:
getPrevious();
break;
case 27:
if ($('#MODALDL').is(':visible')) {
hideDwnl();
}
else {
closePreview();
}
break;
case 32:
if(p4.slideShow)
stopSlide();
else
startSlide();
break;
}
}
else
{
switch(event.keyCode)
{
case 39:
$('#NEXT_PAGE').trigger('click');
break;
case 27:
hideDwnl();
break;
case 37:
$('#PREV_PAGE').trigger('click');
break;
case 38:
$('#answers').scrollTop($('#answers').scrollTop()-50);
break;
case 40:
$('#answers').scrollTop($('#answers').scrollTop()+50);
break;
}
}
});
$('.boxPubli .diapo').css('width','').addClass('w160px').css('margin','0pt 0px 8px 8px');
}
);
function resizePreview(){
$('#PREVIEWCURRENTCONT').width($('#PREVIEWCURRENT').width() - 80 - ($('#PREVMAINREG').length>0?$('#PREVMAINREG').width():0) - 90);
var h = $('#PREVIEWBOX').height();
h = h - $('#PREVIEWTITLE').height();
$.each($('div.preview_col'), function(i, n){
$(n).height(h);
});
$('#PREVIEWIMGCONT').height(h - $('#PREVIEWCURRENT').height());
$('#PREVIEWIMGDESC').height(h-$('#PREVIEWOTHERS').height());
$('#PREVIEWIMGDESC .descBoxes').height($('#PREVIEWIMGDESC').height() - 30);
p4.preview.height = $('#PREVIEWIMGCONT').height();
p4.preview.width = $('#PREVIEWIMGCONT').width();
setPreview();
}
function controlPubliSize()
{
$('#publications ul').height('auto');
if(50+$('#publications ul').height()>bodySize.y)
$('#publications ul').height(bodySize.y-50);
}
function pquit(){
if (parent.opener)
self.close();
else
{
document.forms['logout'].submit();
}
}
function resize(){
var h = bodySize.y = $(window).height() - $('#mainMenu').outerHeight();
var w = bodySize.x = $(window).width();
controlPubliSize();
var rightw = w - 265;
rightw = ((rightw) > 0) ? rightw : 0;
$('#container').height($(window).height());
$('#container').width($(window).width());
$('#right').width(rightw);
$('#answers').height(h - $('#nb_answersEXT').outerHeight() - $('#navigation').outerHeight() - 20);
$('#answers').width(rightw);
resizeSearch();
if (p4.preview.open) {
resizePreview();
}
if ($.browser.msie && $.browser.version == '6.0') {
$('#PREVIEWBOX').height(h * 0.94);
$('#OVERLAY,#OVERLAY2').width(w);
$('#OVERLAY,#OVERLAY2').height(h);
$('#left').height(h);
$('#right').height(h);
}
bodyW = rightw;
if($('#MODALDL').is(':visible'))
{
$('#MODALDL').css({
top:((h-$('#MODALDL').height())/2),
left:((w-$('#MODALDL').width())/2)
});
}
reModCol();
}
function getHome(cas){
switch (cas) {
case 'QUERY':
newSearch();
break;
case 'PUBLI':
$.ajax({
type: "GET",
url: "/client/publications/",
dataType: 'html',
data: {
type: cas
},
beforeSend: function(){
clearAnswers();
answAjaxrunning = true;
$('#answers').addClass('loading');
},
error: function(){
answAjaxrunning = false;
$('#answers').removeClass('loading');
},
timeout: function(){
answAjaxrunning = false;
$('#answers').removeClass('loading');
},
success: function(data){
$('#answers').append(data);
afterSearch();
$('.boxPubli .diapo').css('width','').addClass('w160px').css('margin','0pt 0px 8px 8px');
}
});
case 'HELP':
$.ajax({
type: "GET",
url: "/client/help/",
dataType: 'html',
data: {
type: cas
},
beforeSend: function(){
clearAnswers();
answAjaxrunning = true;
$('#answers').addClass('loading');
},
error: function(){
answAjaxrunning = false;
$('#answers').removeClass('loading');
},
timeout: function(){
answAjaxrunning = false;
$('#answers').removeClass('loading');
},
success: function(data){
$('#answers').append(data);
afterSearch();
}
});
break;
default:
break;
}
}
function changeModCol(){
reModCol();
doSearch();
}
function getLanguage(){
$.ajax({
type: "GET",
url: "/client/language/",
dataType: 'json',
data: {},
success: function(data){
language = data;
return false;
}
});
}
function initBasketForm(){
var options = {
target: '#baskets',
beforeSend: function(){
if (baskAjaxrunning)
baskAjax.abort();
baskAjaxrunning = true;
$('.baskIndicator').addClass('baskLoading');
},
error: function(){
baskAjaxrunning = false;
$('#baskets').removeClass('loading');
$('.baskIndicator').removeClass('baskLoading');
},
timeout: function(){
baskAjaxrunning = false;
$('#baskets').removeClass('loading');
$('.baskIndicator').removeClass('baskLoading');
},
success: function(data){
baskAjaxrunning = false;
if(p4.preview.open && $.browser.msie && $.browser.version == '6.0')
{
$('select').css({
visibility: 'hidden'
});
}
setBaskStatus();
$('#baskets').removeClass('loading');
$('.baskIndicator').removeClass('baskLoading');
$('#blocBask img.baskTips').tooltip();
$("#flechenochu").bind('click', function(){
baskDisplay = false;
saveBaskStatus(false);
$("#blocBask").slideToggle("slow");
$("#blocNoBask").slideToggle("slow").queue(function(){
$('#baskets').height($('#blocNoBask').height() + 6);
resizeSearch();
$(this).dequeue();
});
});
$("#flechechu").bind('click', function(){
baskDisplay = true;
saveBaskStatus(true);
$("#blocNoBask").slideToggle("slow");
$("#blocBask").slideToggle("slow").queue(function(){
$('#baskets').height($('#blocBask').height() + 6);
resizeSearch();
$(this).dequeue();
});
});
if($('#chutier_name').length > 0) {
$('#formChuBaskId')[0].value = $('#chutier_name')[0].options[$('#chutier_name')[0].selectedIndex].value;
}
$('#formChubas')[0].value = $('#formChup0')[0].value = '';
return false;
}
};
baskAjax = $('#formChu').ajaxForm(options);
}
function setBaskStatus(){
if (baskDisplay) {
$("#blocNoBask").hide();
$("#blocBask").show();
$('#baskets').height($('#blocBask').height() + 6);
}
else {
$("#blocNoBask").show();
$('#baskets').height($('#blocNoBask').height() + 6);
$("#blocBask").hide();
}
resizeSearch();
}
function saveBaskStatus(val) {
$.post("/user/preferences/", {
prop: "client_basket_status",
value: (val?'1':'0')
}, function(data){
return false;
});
}
function checkBaskets(){
$.post("/client/baskets/check/", {}, function(data){
if(data.success) {
if(parseInt(data.no_view) > p4.nbNoview){
getBaskets();
}
window.setTimeout("checkBaskets();", 52000);
return false;
}
});
}
function initAnswerForm(){
var options = {
target: '#answers',
beforeSend: function(formData){
clearAnswers();
if (answAjaxrunning)
return;
answAjaxrunning = true;
$('#tooltip').css({
'display': 'none'
});
$('#answers').addClass('loading');
},
error: function(){
answAjaxrunning = false;
$('#answers').removeClass('loading');
},
timeout: function(){
answAjaxrunning = false;
$('#answers').removeClass('loading');
},
success: function(){
answAjaxrunning = false;
afterSearch();
return false;
}
};
$('#searchForm').ajaxForm(options);
}
/*************
* SEARCH
**************/
function afterSearch()
{
$('#answers').removeClass('loading');
$("#answers").scrollTop(0);
$('div.infoTips, div.previewTips,img.captionTips',$('#answers')).tooltip();
$('#nb_answers a.infoTips').tooltip();
}
function chkSbas(val,el){
var bool = false;
if($(el)[0].checked)
bool = true;
$('.basItem' + val).each(function(){
$(this)[0].checked = bool;
});
}
function chgOngSearch(tab){
tTabs = new Array("ongSearch", "ongAdvSearch", "ongTopic");
if($('#'+tab).length == 0)
return;
for (i = 0; i <= tTabs.length; i++) {
if ((o = $('#' + tTabs[i])))
var rmC = (tTabs[i] == tab) ? "inactif" : "actif";
var addC = (tTabs[i] == tab) ? "actif" : "inactif";
o.addClass(addC).removeClass(rmC);
if ((o = document.getElementById("id" + tTabs[i]))) {
o.style.display = (tTabs[i] == tab) ? "" : "none";
}
}
$('#idongAdvSearch :text').each(function(){
this.value = "";
});
if (tab == "ongAdvSearch") {
document.getElementById("idongSearch").style.display = "";
}
resizeSearch();
}
function doSpecialSearch(qry, allbase){
// if($('#ongSearch').length>0)
// chgOngSearch('ongSearch');
// else
// if($('#ongAdvSearch').length>0)
// chgOngSearch('ongAdvSearch');
if (allbase) {
$('input.basItem').each(function(){
this.checked = true;
});
var first = true;
$('#basSelector option').each(function(){
this.selected = first;
first = false;
});
}
$("form[name='search'] input[name='qry']")[0].value = decodeURIComponent(qry).replace(/\+/g, " ");
doSearch();
}
function clearAnswers(){
$('#formAnswerPage')[0].value = '';
$("#nb_answers").empty();
$("#navigation").empty();
$("#answers").empty();
}
function newSearch()
{
$('#searchForm').submit();
}
function doSearch()
{
$('#searchForm').submit();
}
function chgOng(num){
for (i = 1; i <= 5; i++) {
if ((o = document.getElementById("idOnglet" + i)))
o.className = (i == num) ? "actif" : "inactif";
if ((o = document.getElementById("onglet" + i)))
o.style.display = (i == num) ? "block" : "none";
}
return;
}
function checkBases(etat){
$('.basItem, .basChecker').each(function(){
this.checked = etat;
});
}
function resizeSearch(){
var searchh = (bodySize.y-$('#baskets').height());
searchh = ((searchh)>0)?searchh:0;
var menu = $('#bigTabsBckg').height();
$('#search').height(searchh);
$('#idongTopic').height($("#search").height()-8-menu);
$('#searchMiddle').height($("#search").height()-8-menu-$('#mainSearch').height());
}
/*************
* Topics
**************/
function doThesSearch(type,sbid,term,field)
{
if(type=='T')
v = '*:"' + term.replace("(", "[").replace(")", "]") + '"';
else
v = '"' + term + '" IN ' + field;
doSpecialSearch(v, true);
}
function chgProp(path, v, k){
var q2;
if (!k)
k = "*";
if (k != null)
v = v + " [" + k + "]";
document.getElementById("thprop_a_" + path).innerHTML = '"' + v + '"';
q = document.getElementById("thprop_q").innerText;
if (!q)
if (document.getElementById("thprop_q") && document.getElementById("thprop_q").textContent)
q = document.getElementById("thprop_q").textContent;
q2 = "";
for (i = 0; i < q.length; i++)
q2 += q.charCodeAt(i) == 160 ? " " : q.charAt(i); // correction pour safari !
doSpecialSearch(q2, true);
return (false);
}
function clktri(id){
var o = $('#TOPIC_UL' + id);
if ($('#TOPIC_UL' + id).hasClass('closed'))
$('#TOPIC_TRI' + id + ' ,#TOPIC_UL' + id).removeClass('closed').addClass('opened');
else
$('#TOPIC_TRI' + id + ' ,#TOPIC_UL' + id).removeClass('opened').addClass('closed');
}
/*************
* CHUTIER
**************/
function evt_add_in_chutier(sbas_id, record_id){
// No basket
if($('#chutier_name option').length === 0) {
var alert = p4.Dialog.Create({
size : 'Alert',
closeOnEscape : true,
closeButton:true
});
alert.setContent(language.no_basket);
return false;
}
$('#formChubas')[0].value = sbas_id;
$('#formChup0')[0].value = record_id;
$('#formChu').attr('action', '/client/baskets/add-element/').submit();
}
function chg_chu()
{
var id = document.getElementById("chutier_name").value;
document.forms["formChu"].courChuId.value = id;
$("#formChu").submit();
}
function getBaskets()
{
$('#formChu').attr("action","/client/baskets/")
$('#formChu').submit();
}
function newBasket(){
var buttons = {};
buttons["OK"] = function(e){saveNewBask();$(this).dialog('close');};
buttons[language.annuler] = function(e){$(this).dialog('close');};
$('#DIALOG').empty().append("<input type='text' value='' id='newBaskName' />").attr('title',language.createWinInvite).dialog({
autoOpen:false,
closeOnEscape :true,
resizable:false,
draggable:false,
modal:true
}).dialog('open').dialog('option','buttons',buttons);
}
function saveNewBask(){
var tmp = $('#newBaskName')[0].value;
if (tmp == null)
return;
mytest = false;
for (k = 0; (k < tmp.length && !mytest); k++) {
if (tmp.charAt(k) != " ")
mytest = true;
}
if (!mytest) {
alert(language.chuNameEmpty);
return;
}
$("#formChu").attr('action', '/client/baskets/new/')
document.forms["formChu"].p0.value = tmp;
$("#formChu").submit();
}
function evt_chutier(arg_commande){
switch (arg_commande) {
case "DELSSEL":
if (confirm(language.confirmDelBasket)) {
if (document.forms["formChu"]) {
document.forms["formChu"].p0.value = document.forms["formChu"].courChuId.value;
$("#formChu").attr('action', '/client/baskets/delete/')
$("#formChu").submit();
}
}
break;
}
}
function reload_chu(id){
document.forms["formChu"].courChuId.value = id;
$("#formChu").submit();
}
function evt_del_in_chutier(selid){
document.forms["formChu"].p0.value = selid;
$("#formChu").attr("action", "/client/baskets/delete-element/")
$("#formChu").submit();
}
function openCompare(sselid){
$('#ssel2val')[0].value = sselid;
$('#validatorEject').submit();
}
function setVisible(el){
el.style.visibility = 'visible';
}
function beforeAnswer(){
if ($('#basSelector')) {
var serialBas = $('#basSelector')[0].options[$('#basSelector')[0].selectedIndex].value;
serialBas = serialBas.split(';');
$.each($('.basItem'), function(i, el){
el.checked = false;
});
$.each(serialBas, function(i, n){
$('#basChk' + n)[0].checked = true;
});
}
return true;
}
function gotopage(pag){
if ($('#searchForm').length > 0) {
$('#searchForm input[name=nba]').val(p4.tot);
$('#searchForm input[name=pag]').val(pag);
$("#answers").empty();
$('#searchForm').submit();
}
return false;
}
function evt_print(basrec){
if(typeof(basrec) == 'undefined') {
if($('#chutier_name option').length === 0) {
return false;
}
var datas = "&ssel="+$('#chutier_name')[0].options[$('#chutier_name')[0].selectedIndex].value;
} else {
var datas = "&lst=" + basrec;
}
var dialog = p4.Dialog.Create({title: typeof(language) !== 'undefined' ? language['print']: ''});
$.post("/prod/printer/", datas, function(data) {
dialog.setContent(data);
$('.tabs', dialog.getDomElement()).tabs();
$('.close_button', dialog.getDomElement()).bind('click',function(){
dialog.Close();
});
return false;
});
}
function evt_dwnl(lst)
{
if(typeof(lst) == 'undefined') {
if($('#chutier_name option').length === 0) {
return false;
}
var datas = "&ssel="+$('#chutier_name')[0].options[$('#chutier_name')[0].selectedIndex].value;
} else {
var datas = "&lst=" + lst;
}
var dialog = p4.Dialog.Create({title: typeof(language) !== 'undefined' ? language['export']: ''});
$.post("/prod/export/multi-export/", datas, function(data) {
dialog.setContent(data);
$('.tabs', dialog.getDomElement()).tabs();
$('.close_button', dialog.getDomElement()).bind('click',function(){
dialog.Close();
});
return false;
});
}
function profil(value)
{
var top;
var left;
if(value==undefined)
value = "0";
var url = "" +
"/include/profile.php" +
"?callclient=1&onglet="+value;
$('#MODALDL').attr('src',url);
var t = (bodySize.y - 550) / 2;
var l = (bodySize.x - 490) / 2;
$('#MODALDL').css({
'display': 'block',
'opacity': 0,
'width': '490px',
'position': 'absolute',
'top': t,
'left': l,
'height': '550px'
}).fadeTo(500, 1);
showOverlay(2);
}
function setCss(color)
{
$('#skinCss').attr('href','/include/minify/f=skins/common/main.css,skins/client/'+color+'/clientcolor.css,'+
'skins/client/'+color+'/ui.core.css,'+
'skins/client/'+color+'/ui.datepicker.css,'+
'skins/client/'+color+'/ui.theme.css');
$.post("/user/preferences/", {
prop: "css",
value: color
}, function(data){
return;
});
if ($.browser.msie && $.browser.version == '6.0')
$('select').hide().show();
}
function lessPubli(sselid)
{
$('#PUBLICONTMORE'+sselid+', #PUBLICONTLESS'+sselid).toggle();
$('#PUBLICONT'+sselid).css({height: '135px'});
$('#PUBLIMORE'+sselid+', #PUBLILESS'+sselid).toggle();
}
function morePubli(sselid)
{
$('#PUBLICONTMORE'+sselid+', #PUBLICONTLESS'+sselid).toggle();
$('#PUBLICONT'+sselid).css({height: 'auto'});
$('#PUBLIMORE'+sselid+', #PUBLILESS'+sselid).toggle();
}
function toggleFilter(filter,ele)
{
var el = $('#'+filter);
if(el.is(':hidden'))
$(ele).parent().addClass('open');
else
$(ele).parent().removeClass('open');
$('#'+filter).slideToggle('fast');
}
function checkFilters()
{
var danger = false;
var d = {};
$('.filter_danger').each(function(){
d[$(this).attr('id')] = false;
});
$('.basContTitle .base_filter :text').each(function(){
if($(this)[0].value != "")
{
danger = true;
d['filter_danger'+parseInt($(this).attr('db'))] = true;
}
});
$('.basContTitle .base_filter :checkbox').each(function(){
if($(this)[0].checked)
{
danger = true;
d['filter_danger'+parseInt($(this).attr('db'))] = true;
}
});
$('.basContTitle .base_filter select').each(function(){
if($(this)[0].selectedIndex != 0)
{
danger = true;
d['filter_danger'+parseInt($(this).attr('db'))] = true;
}
});
$.each(d,function(i,bool){
if(bool)
$('#'+i).show();
else
$('#'+i).hide();
});
if(danger)
$('#filter_danger').show();
else
$('#filter_danger').hide();
}
function removeFilters(bas)
{
if (typeof(bas) == 'undefined') {
$('.basContTitle .base_filter :checkbox').each(function(){
$(this)[0].checked = false;
});
$('.basContTitle .base_filter :text').each(function(){
$(this)[0].value = "";
});
$('.basContTitle .base_filter select').each(function(){
$(this)[0].selectedIndex = 0;
});
}
else {
$('#Filters' + bas + ' :checkbox').each(function(){
$(this)[0].checked = false;
});
$('#Filters' + bas + ' :text').each(function(){
$(this)[0].value = "";
});
$('#Filters' + bas + ' select').each(function(){
$(this)[0].selectedIndex = 0;
});
}
checkFilters();
}
function execLastAct(lastAct)
{
if(lastAct.act)
{
switch (lastAct.act)
{
case 'dwnl':
if(lastAct.SSTTID)
{
if (baskAjaxrunning) {
setTimeout("execLastAct(lastAct);", 500);
}
else {
if($('#chutier_name option').length === 0) {
return false;
}
if($('#chutier_name')[0].options[$('#chutier_name')[0].selectedIndex].value != lastAct.SSTTID)
{
$('#chutier_name option').each(function(i, n){
if (lastAct.SSTTID == this.value) {
$('#chutier_name')[0].selectedIndex = i;
$('#chutier_name').trigger('change');
setTimeout("execLastAct(lastAct);", 500);
}
});
}else
evt_dwnl();
}
}
else
if(lastAct.lst)
{
evt_dwnl(lastAct.lst);
}
break;
}
}
return;
}