Work on popup create pages
This commit is contained in:
parent
ae34fd1498
commit
9e2e3393c6
@ -1584,8 +1584,7 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename =
|
||||
* @param string $disabled Disabled text
|
||||
* @param string $morecss More CSS
|
||||
* @param string $backtopagejsfields The back to page must be managed using javascript instead of a redirect.
|
||||
* Value is 'Name of html component to set with id:Name of html component to set with label'
|
||||
* TODO Support this mode, for example when used from the page create a project on thirdparty creation.
|
||||
* Value is 'keyforpopupid:Name_of_html_component_to_set_with id,Name_of_html_component_to_set_with_label'
|
||||
* @return string HTML component with button
|
||||
*/
|
||||
function dolButtonToOpenUrlInDialogPopup($name, $label, $buttonstring, $url, $disabled = '', $morecss = 'button bordertransp', $backtopagejsfields = '')
|
||||
@ -1600,10 +1599,16 @@ function dolButtonToOpenUrlInDialogPopup($name, $label, $buttonstring, $url, $di
|
||||
|
||||
$backtopagejsfieldsid = ''; $backtopagejsfieldslabel = '';
|
||||
if ($backtopagejsfields) {
|
||||
$url .= '&backtopagejsfields='.urlencode($backtopagejsfields);
|
||||
$tmpbacktopagejsfields = explode(':', $backtopagejsfields);
|
||||
$backtopagejsfieldsid = empty($tmpbacktopagejsfields[0]) ? '' : $tmpbacktopagejsfields[0];
|
||||
$backtopagejsfieldslabel = empty($tmpbacktopagejsfields[1]) ? '' : $tmpbacktopagejsfields[1];
|
||||
if (empty($tmpbacktopagejsfields[1])) { // If the part 'keyforpopupid:' is missing, we add $name for it.
|
||||
$backtopagejsfields = $name.":".$backtopagejsfields;
|
||||
$tmp2backtopagejsfields = explode(',', $tmpbacktopagejsfields[0]);
|
||||
} else {
|
||||
$tmp2backtopagejsfields = explode(',', $tmpbacktopagejsfields[1]);
|
||||
}
|
||||
$backtopagejsfieldsid = empty($tmp2backtopagejsfields[0]) ? '' : $tmp2backtopagejsfields[0];
|
||||
$backtopagejsfieldslabel = empty($tmp2backtopagejsfields[1]) ? '' : $tmp2backtopagejsfields[1];
|
||||
$url .= '&backtopagejsfields='.urlencode($backtopagejsfields);
|
||||
}
|
||||
|
||||
//print '<input type="submit" class="button bordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("MediaFiles")).'" name="file_manager">';
|
||||
@ -1626,7 +1631,7 @@ function dolButtonToOpenUrlInDialogPopup($name, $label, $buttonstring, $url, $di
|
||||
width: \'80%\',
|
||||
title: \''.dol_escape_js($label).'\',
|
||||
open: function (event, ui) {
|
||||
console.log("open popup");
|
||||
console.log("open popup name='.$name.', backtopagejsfields='.$backtopagejsfields.'");
|
||||
},
|
||||
close: function (event, ui) {
|
||||
returnedid = jQuery("#varforreturndialogid'.$name.'").text();
|
||||
|
||||
@ -46,6 +46,7 @@ $id = GETPOST('id', 'int');
|
||||
$ref = GETPOST('ref', 'alpha');
|
||||
$action = GETPOST('action', 'aZ09');
|
||||
$backtopage = GETPOST('backtopage', 'alpha');
|
||||
$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
|
||||
$backtopagejsfields = GETPOST('backtopagejsfields', 'alpha');
|
||||
$cancel = GETPOST('cancel', 'alpha');
|
||||
$confirm = GETPOST('confirm', 'aZ09');
|
||||
@ -620,9 +621,12 @@ if ($action == 'create' && $user->rights->projet->creer) {
|
||||
$url = '/societe/card.php?action=create&client=3&fournisseur=0&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create');
|
||||
$newbutton = '<span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans("AddThirdParty").'"></span>';
|
||||
// TODO @LDR Implement this
|
||||
//$tmpbacktopagejsfields = 'socid:search_socid';
|
||||
//print dolButtonToOpenUrlInDialogPopup('addthirdparty', $langs->transnoentitiesnoconv('AddThirdParty'), $newbutton, $url, '', '', $tmpbacktopagejsfields);
|
||||
print ' <a href="'.DOL_URL_ROOT.$url.'">'.$newbutton.'</a>';
|
||||
if (getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) {
|
||||
$tmpbacktopagejsfields = 'addthirdparty:socid,search_socid';
|
||||
print dolButtonToOpenUrlInDialogPopup('addthirdparty', $langs->transnoentitiesnoconv('AddThirdParty'), $newbutton, $url, '', '', $tmpbacktopagejsfields);
|
||||
} else {
|
||||
print ' <a href="'.DOL_URL_ROOT.$url.'">'.$newbutton.'</a>';
|
||||
}
|
||||
}
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
@ -84,8 +84,8 @@ $error = 0; $errors = array();
|
||||
$action = (GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view');
|
||||
$cancel = GETPOST('cancel', 'alpha');
|
||||
$backtopage = GETPOST('backtopage', 'alpha');
|
||||
$backtopagejsfields = GETPOST('backtopagejsfields', 'alpha');
|
||||
$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
|
||||
$backtopagejsfields = GETPOST('backtopagejsfields', 'alpha');
|
||||
$dol_openinpopup = GETPOST('dol_openinpopup', 'aZ09');
|
||||
$confirm = GETPOST('confirm', 'alpha');
|
||||
|
||||
@ -689,6 +689,27 @@ if (empty($reshook)) {
|
||||
if ($result >= 0 && !$error) {
|
||||
$db->commit();
|
||||
|
||||
if ($backtopagejsfields) {
|
||||
llxHeader('', '', '');
|
||||
|
||||
$tmpbacktopagejsfields = explode(':', $backtopagejsfields);
|
||||
$dol_openinpopup = $tmpbacktopagejsfields[0];
|
||||
|
||||
$retstring = '<script>';
|
||||
$retstring .= 'jQuery(document).ready(function() {
|
||||
console.log(\'We execute action to create. We save id and go back - '.$dol_openinpopup.'\');
|
||||
console.log(\'id = '.$object->id.'\');
|
||||
$(\'#varforreturndialogid'.$dol_openinpopup.'\', window.parent.document).text(\''.$object->id.'\');
|
||||
$(\'#varforreturndialoglabel'.$dol_openinpopup.'\', window.parent.document).text(\''.$object->name.'\');
|
||||
window.parent.jQuery(\'#idfordialog'.$dol_openinpopup.'\').dialog(\'close\');
|
||||
});';
|
||||
$retstring .= '</script>';
|
||||
print $retstring;
|
||||
|
||||
llxFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!empty($backtopage)) {
|
||||
$backtopage = preg_replace('/--IDFORBACKTOPAGE--/', $object->id, $backtopage); // New method to autoselect project after a New on another form object creation
|
||||
if (preg_match('/\?/', $backtopage)) {
|
||||
@ -704,28 +725,8 @@ if (empty($reshook)) {
|
||||
$url = DOL_URL_ROOT."/fourn/card.php?socid=".$object->id;
|
||||
}
|
||||
|
||||
// TODO @LDR
|
||||
if ($dol_openinpopup && $backtopagejsfields) {
|
||||
// TODO @LDR for the save button, in action "add", set parent var to return data and close the window
|
||||
//$retstring .= '<a onclick="javascript:$(\'#varforreturndialogid'.$dol_openinpopup.'\', window.parent.document).text(\'setid\');">setid</a> ';
|
||||
//$retstring .= '<a onclick="javascript:$(\'#varforreturndialoglabel'.$dol_openinpopup.'\', window.parent.document).text(\'setlabel\');">setlabel</a>';
|
||||
$retstring = '';
|
||||
$retstring .= '<script>';
|
||||
$retstring .= 'jQuery(document).ready() {
|
||||
console.log(\'We execute action to create. We save id and go back - '.$dol_openinpopup.'\');
|
||||
console.log(\'id = '.$object->id.'\');
|
||||
$(\'#varforreturndialogid'.$dol_openinpopup.'\', window.parent.document).text(\'newid\');
|
||||
$(\'#varforreturndialoglabel'.$dol_openinpopup.'\', window.parent.document).text(\'newlabel\');
|
||||
//window.parent.jQuery(\'#idfordialog'.$dol_openinpopup.'\').dialog(\'close\');
|
||||
});';
|
||||
$retstring .= '</script>';
|
||||
$retstring .= 'Set js var of parent with id of object created then close popup.';
|
||||
print $retstring;
|
||||
exit;
|
||||
} else {
|
||||
header("Location: ".$url);
|
||||
exit;
|
||||
}
|
||||
header("Location: ".$url);
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
$db->rollback();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user