dolibarr/htdocs/core/js/listview.js
2024-09-06 20:28:06 +08:00

167 lines
5.7 KiB
JavaScript
Raw Permalink Blame History

// Copyright (C) 2017 Laurent Destailleur <eldy@users.sourceforge.net>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
// or see https://www.gnu.org/
//
// \file htdocs/core/js/listview.js
// \brief File that include javascript functions for lists
//
var Listview_include = true;
function Listview_OrderDown(idListe, column) {
var base_url = document.location.href;
base_url = Listview_recup_form_param(idListe,base_url);
base_url = Listview_removeParam(base_url,'Listview['+encodeURIComponent(idListe)+'][orderBy]');
base_url = Listview_removeParam(base_url,'get-all-for-export');
document.location.href=Listview_modifyUrl(base_url,"Listview["+encodeURIComponent(idListe)+"][orderBy]["+encodeURIComponent(column)+"]","DESC");
}
function Listview_OrderUp(idListe, column) {
var base_url = document.location.href;
base_url = Listview_recup_form_param(idListe,base_url);
base_url = Listview_removeParam(base_url,'Listview['+encodeURIComponent(idListe)+'][orderBy]');
base_url = Listview_removeParam(base_url,'get-all-for-export');
document.location.href=Listview_modifyUrl(base_url,"Listview["+encodeURIComponent(idListe)+"][orderBy]["+encodeURIComponent(column)+"]","ASC");
}
function Listview_modifyUrl(strURL,paramName,paramNewValue){
if (strURL.indexOf(paramName+'=')!=-1){
var strFirstPart=strURL.substring(0,strURL.indexOf(paramName+'=',0))+paramName+'=';
var strLastPart="";
if (strURL.indexOf('&',strFirstPart.length-1)>0)
strLastPart=strURL.substring(strURL.indexOf('&',strFirstPart.length-1),strURL.length);
strURL=strFirstPart+paramNewValue+strLastPart;
}
else{
if (strURL.search('=')!=-1) // permet de verifier s'il y a dej<65> des param<61>tres dans l'URL
strURL+='&'+paramName+'='+paramNewValue;
else
strURL+='?'+paramName+'='+paramNewValue;
}
return strURL;
}
function Listview_removeParam(strURL, paramMask) {
var cpt=0;
var url = '';
while(strURL.indexOf(paramMask)!=-1 && cpt++ <50){
var strFirstPart= strURL.substring(0,strURL.indexOf(paramMask)-1);
var strLastPart='';
if (strURL.indexOf('&',strFirstPart.length+1)>0) {
strLastPart = strURL.substring(strURL.indexOf('&',strFirstPart.length+1),strURL.length);
}
url = strFirstPart+strLastPart;
}
if(url=='')url = strURL;
return url;
}
function Listview_recup_form_param(idListe,base_url) {
$('#'+idListe+' tr.barre-recherche [listviewtbs],#'+idListe+' tr.barre-recherche-head input,#'+idListe+' tr.barre-recherche-head select,#'+idListe+' div.tabsAction input[listviewtbs]').each(function(i,item) {
if($(item).attr("name")) {
base_url = Listview_modifyUrl(base_url, $(item).attr("name") , $(item).val());
}
});
return base_url;
}
function Listview_GoToPage(idListe,pageNumber){
var base_url = document.location.href;
base_url = Listview_recup_form_param(idListe,base_url);
base_url =Listview_modifyUrl(base_url,"Listview["+encodeURIComponent(idListe)+"][page]",pageNumber);
base_url = Listview_removeParam(base_url,'get-all-for-export');
document.location.href=base_url;
}
function Listview_submitSearch(obj) {
$form = $(obj).closest('form');
console.log($form);
if($form.length>0){
$form.submit();
}
}
function Listview_launch_downloadAs(mode,url,token,session_name) {
$('#listviewdAS_export_form').remove();
$form = $('<form action="'+url+'" method="post" name="listviewdAS_export_form" id="listTBSdAS_export_form"></form>');
$form.append('<input type="hidden" name="mode" value="'+mode+'" />');
$form.append('<input type="hidden" name="token" value="'+token+'" />');
$form.append('<input type="hidden" name="session_name" value="'+session_name+'" />');
$('body').append($form);
$('#listviewdAS_export_form').submit();
}
function Listview_downloadAs(obj, mode,url,token,session_name) {
$form = $(obj).closest('form');
$div = $form.find('div.tabsAction');
$div.append('<input type="hidden" listviewtbs="hidden" name="token" value="'+token+'" />');
$div.append('<input type="hidden" listviewtbs="hidden" name="mode" value="'+mode+'" />');
$div.append('<input type="hidden" listviewtbs="hidden" name="url" value="'+url+'" />');
$div.append('<input type="hidden" listviewtbs="hidden" name="session_name" value="'+session_name+'" />');
$div.append('<input type="hidden" listviewtbs="hidden" name="get-all-for-export" value="1" />');
Listview_submitSearch(obj);
}
$(document).ready(function() {
$('tr.barre-recherche input').keypress(function(e) {
if(e.which == 13) {
var id_list = $(this).closest('table').attr('id');
$('#'+id_list+' .list-search-link').click();
}
});
var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
$_GET[decode(arguments[1])] = decode(arguments[2]);
});
if(typeof $_GET["get-all-for-export"] != "undefined") {
Listview_launch_downloadAs($_GET['mode'],$_GET['url'],$_GET['token'],$_GET['session_name']);
}
});