diff --git a/modules/visa/class/class_modules_tools_Abstract.php b/modules/visa/class/class_modules_tools_Abstract.php index 65b72a9157a9deab6f45bda09cca6f7212aadac0..ade4df126041841f70aaff4d4164ebf800630238 100755 --- a/modules/visa/class/class_modules_tools_Abstract.php +++ b/modules/visa/class/class_modules_tools_Abstract.php @@ -623,7 +623,17 @@ abstract class visa_Abstract extends Database $modif = 'false'; } - + $info_vised .= '<select style="display:none;" id="signRequest_'.$i.'" '.$isAllAttachementSigned; + $info_vised .= ' disabled="disabled" '; + $info_vised .= '>'; + $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>'; + + $info_vised .= '<option value="true"'; + if (!empty($info_userVis['requested_signature'])) { + $info_vised .= ' selected="selected" '; + } + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; }else{ $dropZone = '<i class="fa fa-exchange fa-2x fa-rotate-90" aria-hidden="true" title="'._DRAG_N_DROP_CHANGE_ORDER.'" style="cursor: pointer"></i>'; @@ -638,16 +648,20 @@ abstract class visa_Abstract extends Database $del_vis = ''; $disabled = ' disabled="disabled"'; } + + $info_vised = '<br/><select id="signRequest_'.$i.'" '.$isAllAttachementSigned; + if (!empty($info_userVis['signatory'])) { + $info_vised .= ' disabled="disabled" '; + } + $info_vised .= '>'; + $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>'; - - $info_vised = '<br/><sub><label for="signRequest_'.$i.'">Signature demandée</label> <input id="signRequest_'.$i.'" style="width:auto;" type="checkbox" '.$isAllAttachementSigned; + $info_vised .= '<option value="true"'; if (!empty($info_userVis['requested_signature'])) { - $info_vised .= 'checked="true" '; - } - if (!empty($info_userVis['signatory'])) { - $info_vised .= 'disabled="disabled" '; + $info_vised .= ' selected="selected" '; } - $info_vised .= '></sub>'; + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; $link_vis = 'hourglass-half'; } @@ -662,30 +676,42 @@ abstract class visa_Abstract extends Database $disabled = ' disabled="disabled"'; if(preg_match("/\[DEL\]/", $info_userVis['process_comment'])){ - - $info_vised = '<br/><sub><label for="signRequest_'.$i.'">Signature demandée</label> <input id="signRequest_'.$i.'" style="width:auto;" type="checkbox" '.$isAllAttachementSigned; - if (!empty($info_userVis['requested_signature'])) { - $info_vised .= 'checked="true" '; - } + $info_vised = '<br/><select id="signRequest_'.$i.'" '.$isAllAttachementSigned; if (!empty($info_userVis['signatory'])) { - $info_vised .= 'disabled="disabled" '; + $info_vised .= ' disabled="disabled" '; + } + $info_vised .= '>'; + $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>'; + + $info_vised .= '<option value="true"'; + if (!empty($info_userVis['requested_signature'])) { + $info_vised .= ' selected="selected" '; } - $info_vised .= '></sub>'; + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; $link_vis = 'times'; $vised = ' moved vised'; $del_vis = '<i class="fa fa-trash" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);" title="'._DELETE.'"></i>'; }else{ if (!empty($info_userVis['signatory'])) { $info_vised = '<br/><sub>signé le : '.functions::format_date_db($info_userVis['process_date'],'','',true).'</sub>'; - $info_vised .= '<input id="signRequest_'.$i.'" style="width:auto;display:none;" type="checkbox" '.$isAllAttachementSigned; - $info_vised .= 'checked="true" '; - $info_vised .= 'disabled="disabled" '; + $info_vised .= '<br/><select id="signRequest_'.$i.'" style="width:auto;display:none;" disabled="disabled" '.$isAllAttachementSigned; $info_vised .= '>'; + $info_vised .= '<option value="false" selected="selected">'._VISA_USER_SEARCH.'</option>'; + + $info_vised .= '<option value="true"'; + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; }else{ $info_vised = '<br/><sub>visé le : '.functions::format_date_db($info_userVis['process_date'],'','',true).'</sub>'; - $info_vised .= '<input id="signRequest_'.$i.'" style="width:auto;display:none;" type="checkbox" '.$isAllAttachementSigned; - $info_vised .= 'disabled="disabled" '; + + $info_vised .= '<br/><select id="signRequest_'.$i.'" style="width:auto;display:none;" disabled="disabled" '.$isAllAttachementSigned; $info_vised .= '>'; + $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>'; + + $info_vised .= '<option value="true" selected="selected"'; + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; } $link_vis = 'check'; @@ -756,6 +782,17 @@ abstract class visa_Abstract extends Database }else{ $modif = 'false'; } + $info_vised .= '<select style="display:none;" id="signRequest_'.$i.'" '.$isAllAttachementSigned; + $info_vised .= ' disabled="disabled" '; + $info_vised .= '>'; + $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>'; + + $info_vised .= '<option value="true"'; + if (!empty($info_userSign['requested_signature'])) { + $info_vised .= ' selected="selected" '; + } + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; }else{ $dropZone = '<i class="fa fa-exchange fa-2x fa-rotate-90" aria-hidden="true" title="'._DRAG_N_DROP_CHANGE_ORDER.'" style="cursor: pointer"></i>'; @@ -771,29 +808,41 @@ abstract class visa_Abstract extends Database $disabled = ' disabled="disabled"'; } + $info_vised = '<br/><select id="signRequest_'.$i.'" '.$isAllAttachementSigned; + if (!empty($info_userSign['signatory'])) { + $info_vised .= ' disabled="disabled" '; + } + $info_vised .= '>'; + $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>'; - $info_vised = '<br/><sub><label for="signRequest_'.$i.'">Signature demandée</label> <input id="signRequest_'.$i.'" style="width:auto;" type="checkbox" '.$isAllAttachementSigned; + $info_vised .= '<option value="true"'; if (!empty($info_userSign['requested_signature'])) { - $info_vised .= 'checked="true" '; + $info_vised .= ' selected="selected" '; } - if (!empty($info_userSign['signatory'])) { - $info_vised .= 'disabled="disabled" '; - } - $info_vised .= '></sub>'; + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; $link_vis = 'hourglass-half'; } }else{ $modif = 'false'; if (preg_match("/\[DEL\]/", $info_userSign['process_comment'])) { - $info_vised = '<br/><sub><label for="signRequest_'.$i.'">Signature demandée</label> <input id="signRequest_'.$i.'" style="width:auto;" type="checkbox" '.$isAllAttachementSigned; - if (!empty($info_userSign['requested_signature'])) { - $info_vised .= 'checked="true" '; - } + + $info_vised = '<br/><select id="signRequest_'.$i.'" '.$isAllAttachementSigned; if (!empty($info_userSign['signatory'])) { - $info_vised .= 'disabled="disabled" '; + $info_vised .= ' disabled="disabled" '; + } + $info_vised .= '>'; + $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>'; + + $info_vised .= '<option value="true"'; + if (!empty($info_userSign['requested_signature'])) { + $info_vised .= ' selected="selected" '; } - $info_vised .= '></sub>'; + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; + + $link_vis = 'hourglass-half'; $link_vis = 'times'; $vised = ' moved vised'; $del_vis = '<i class="fa fa-trash" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);" title="'._DELETE.'"></i>'; @@ -802,15 +851,25 @@ abstract class visa_Abstract extends Database $link_vis = 'check'; if (!empty($info_userVis['signatory'])) { $info_vised = '<br/><sub>signé le : '.functions::format_date_db($info_userSign['process_date'],'','',true).'</sub>'; - $info_vised .= '<input id="signRequest_'.$i.'" style="width:auto;display:none;" type="checkbox" '.$isAllAttachementSigned; - $info_vised .= 'checked="true" '; - $info_vised .= 'disabled="disabled" '; + + $info_vised = '<br/><select id="signRequest_'.$i.'" style="width:auto;display:none;" '.$isAllAttachementSigned; + $info_vised .= ' disabled="disabled" '; $info_vised .= '>'; + $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>'; + $info_vised .= '<option value="true"'; + $info_vised .= ' selected="selected" '; + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; }else{ $info_vised = '<br/><sub>visé le : '.functions::format_date_db($info_userSign['process_date'],'','',true).'</sub>'; - $info_vised .= '<input id="signRequest_'.$i.'" style="width:auto;display:none;" type="checkbox" '.$isAllAttachementSigned; - $info_vised .= 'disabled="disabled" '; + + $info_vised = '<br/><select id="signRequest_'.$i.'" style="width:auto;display:none;" '.$isAllAttachementSigned; + $info_vised .= ' disabled="disabled" '; $info_vised .= '>'; + $info_vised .= '<option value="false" selected="selected">'._VISA_USER_SEARCH.'</option>'; + $info_vised .= '<option value="true"'; + $info_vised .= '>'._SIGNATORY.'</option>'; + $info_vised .= '</select>'; } } diff --git a/modules/visa/js/functions.js b/modules/visa/js/functions.js index a08483c3904512ad7717b37725e9ffba1c41679e..02408115d8e5629a2d58a4d8fbb2afd101bdd4e2 100755 --- a/modules/visa/js/functions.js +++ b/modules/visa/js/functions.js @@ -5,10 +5,21 @@ function addVisaUser(users) { if(nb_visa == 0){ $j("#emptyVisa").hide(); } + + if ($j("select[id^=signRequest_] option:selected[value=true]").length <= 2) { + if (!$j('#signRequest_'+nb_visa).is(':disabled')) { + $j('#signRequest_'+nb_visa).val("false"); + } + selected = ' selected="selected" '; + } else { + selected = ''; + } + + if ($j("#isAllAttachementSigned").val() == 'false') { - signRequest = '<br/><sub><label for="signRequest_'+next_visa+'">Signature demandée</label> <input id="signRequest_'+next_visa+'" style="width:auto;" type="checkbox"></sub>' + signRequest = '<br/><sub><select id="signRequest_'+next_visa+'"><option value="false">Viseur</option><option value="true" '+selected+'>Signataire</option></select></sub>'; } else { - signRequest = '<br/><sub><label for="signRequest_'+next_visa+'">Signature demandée</label> <input id="signRequest_'+next_visa+'" style="width:auto;" type="checkbox" disabled="disabled"></sub>' + signRequest = '<br/><sub><select id="signRequest_'+next_visa+'" disabled="disabled"><option value="false">Viseur</option><option value="true" '+selected+'>Signataire</option></select></sub>'; } $j("#visa_content").append('<div class="droptarget" id="visa_' + next_visa + '" draggable="true">' @@ -42,10 +53,19 @@ function addVisaUser(users) { if(nb_visa == 0){ $j("#emptyVisa").hide(); } + if ($j("select[id^=signRequest_] option:selected[value=true]").length <= 2) { + if (!$j('#signRequest_'+nb_visa).is(':disabled')) { + $j('#signRequest_'+nb_visa).val("false"); + } + selected = ' selected="selected" '; + } else { + selected = ''; + } + if ($j("#isAllAttachementSigned").val() == 'false') { - signRequest = '<br/><sub><label for="signRequest_'+next_visa+'">Signature demandée</label> <input id="signRequest_'+next_visa+'" style="width:auto;" type="checkbox"></sub>' + signRequest = '<br/><sub><select id="signRequest_'+next_visa+'"><option value="false">Viseur</option><option value="true" '+selected+'>Signataire</option></select></sub>'; } else { - signRequest = '<br/><sub><label for="signRequest_'+next_visa+'">Signature demandée</label> <input id="signRequest_'+next_visa+'" style="width:auto;" type="checkbox" disabled="disabled"></sub>' + signRequest = '<br/><sub><select id="signRequest_'+next_visa+'" disabled="disabled"><option value="false">Viseur</option><option value="true" '+selected+'>Signataire</option></select></sub>'; } $j("#visa_content").append('<div class="droptarget" id="visa_' + next_visa + '" draggable="true">' +'<span class="visaUserStatus">' @@ -97,59 +117,58 @@ function resetPosVisa () { } function updateVisaWorkflow(resId) { - var $i = 0; + var i = 0; var userList = []; - if (($j("input[id^=signRequest_]:checked").length == 0) && $j(".droptarget").length != 0) { - alert("Veuillez demander au moins à une personne de signer") - } else { - if ($j(".droptarget").length) { - $j(".droptarget").each(function () { - if ($j("#signRequest_"+($i+1)+":checked").length) { - userRequestSign=true; - } else { - userRequestSign=false; - } - if ($j("#signedUser_"+($i+1)).css('visibility') == 'visible') { - userSignatory=true; - } else { - userSignatory=false; - } + if (($j("select[id^=signRequest_] option:selected[value=true]").length == 0) && $j(".droptarget").length != 0) { + $j('#signRequest_'+i).val("true"); + } + if ($j(".droptarget").length) { + $j(".droptarget").each(function () { + if ($j("#signRequest_"+(i+1)+" option:selected[value=true]").length) { + userRequestSign=true; + } else { + userRequestSign=false; + } + if ($j("#signedUser_"+(i+1)).css('visibility') == 'visible') { + userSignatory=true; + } else { + userSignatory=false; + } - userId = $j("#" + this.id).find(".userId").val(); - userConsigne = $j("#" + this.id).find(".consigne").val(); - userVisaDate = $j("#" + this.id).find(".visaDate").val(); - userPos = $i; - userList.push({userId: userId, userPos: userPos, userConsigne: userConsigne, userVisaDate: userVisaDate, userRequestSign: userRequestSign, userSignatory: userSignatory}); - $i++; - }); - } - $j.ajax({ - url : 'index.php?display=true&module=visa&page=updateVisaWF', - type : 'POST', - dataType : 'JSON', - data: { - resId: resId, - userList: JSON.stringify(userList) - }, - success : function(response){ - if (response.status == 0) { - parent.$('main_info').innerHTML = 'Mise à jour du circuit effectuée'; - parent.$('main_info').style.display = 'table-cell'; - parent.Element.hide.delay(5, 'main_info'); - eval(response.exec_js); - if(parent.$j('.contentShow iframe').length){ - parent.$j('.contentShow iframe')[0].contentWindow.location.reload(true); - } - } else if (response.status != 1) { - alert(response.error_txt) - } - }, - error : function(error){ - alert(error); - } - + userId = $j("#" + this.id).find(".userId").val(); + userConsigne = $j("#" + this.id).find(".consigne").val(); + userVisaDate = $j("#" + this.id).find(".visaDate").val(); + userPos = i; + userList.push({userId: userId, userPos: userPos, userConsigne: userConsigne, userVisaDate: userVisaDate, userRequestSign: userRequestSign, userSignatory: userSignatory}); + i++; }); } + $j.ajax({ + url : 'index.php?display=true&module=visa&page=updateVisaWF', + type : 'POST', + dataType : 'JSON', + data: { + resId: resId, + userList: JSON.stringify(userList) + }, + success : function(response){ + if (response.status == 0) { + parent.$('main_info').innerHTML = 'Mise à jour du circuit effectuée'; + parent.$('main_info').style.display = 'table-cell'; + parent.Element.hide.delay(5, 'main_info'); + eval(response.exec_js); + if(parent.$j('.contentShow iframe').length){ + parent.$j('.contentShow iframe')[0].contentWindow.location.reload(true); + } + } else if (response.status != 1) { + alert(response.error_txt) + } + }, + error : function(error){ + alert(error); + } + + }); } function saveVisaWorkflowAsModel () {