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 $disabled Disabled text
|
||||||
* @param string $morecss More CSS
|
* @param string $morecss More CSS
|
||||||
* @param string $backtopagejsfields The back to page must be managed using javascript instead of a redirect.
|
* @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'
|
* Value is 'keyforpopupid: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.
|
|
||||||
* @return string HTML component with button
|
* @return string HTML component with button
|
||||||
*/
|
*/
|
||||||
function dolButtonToOpenUrlInDialogPopup($name, $label, $buttonstring, $url, $disabled = '', $morecss = 'button bordertransp', $backtopagejsfields = '')
|
function dolButtonToOpenUrlInDialogPopup($name, $label, $buttonstring, $url, $disabled = '', $morecss = 'button bordertransp', $backtopagejsfields = '')
|
||||||
@ -1600,10 +1599,16 @@ function dolButtonToOpenUrlInDialogPopup($name, $label, $buttonstring, $url, $di
|
|||||||
|
|
||||||
$backtopagejsfieldsid = ''; $backtopagejsfieldslabel = '';
|
$backtopagejsfieldsid = ''; $backtopagejsfieldslabel = '';
|
||||||
if ($backtopagejsfields) {
|
if ($backtopagejsfields) {
|
||||||
$url .= '&backtopagejsfields='.urlencode($backtopagejsfields);
|
|
||||||
$tmpbacktopagejsfields = explode(':', $backtopagejsfields);
|
$tmpbacktopagejsfields = explode(':', $backtopagejsfields);
|
||||||
$backtopagejsfieldsid = empty($tmpbacktopagejsfields[0]) ? '' : $tmpbacktopagejsfields[0];
|
if (empty($tmpbacktopagejsfields[1])) { // If the part 'keyforpopupid:' is missing, we add $name for it.
|
||||||
$backtopagejsfieldslabel = empty($tmpbacktopagejsfields[1]) ? '' : $tmpbacktopagejsfields[1];
|
$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">';
|
//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%\',
|
width: \'80%\',
|
||||||
title: \''.dol_escape_js($label).'\',
|
title: \''.dol_escape_js($label).'\',
|
||||||
open: function (event, ui) {
|
open: function (event, ui) {
|
||||||
console.log("open popup");
|
console.log("open popup name='.$name.', backtopagejsfields='.$backtopagejsfields.'");
|
||||||
},
|
},
|
||||||
close: function (event, ui) {
|
close: function (event, ui) {
|
||||||
returnedid = jQuery("#varforreturndialogid'.$name.'").text();
|
returnedid = jQuery("#varforreturndialogid'.$name.'").text();
|
||||||
|
|||||||
@ -46,6 +46,7 @@ $id = GETPOST('id', 'int');
|
|||||||
$ref = GETPOST('ref', 'alpha');
|
$ref = GETPOST('ref', 'alpha');
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
$backtopage = GETPOST('backtopage', 'alpha');
|
$backtopage = GETPOST('backtopage', 'alpha');
|
||||||
|
$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
|
||||||
$backtopagejsfields = GETPOST('backtopagejsfields', 'alpha');
|
$backtopagejsfields = GETPOST('backtopagejsfields', 'alpha');
|
||||||
$cancel = GETPOST('cancel', 'alpha');
|
$cancel = GETPOST('cancel', 'alpha');
|
||||||
$confirm = GETPOST('confirm', 'aZ09');
|
$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');
|
$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>';
|
$newbutton = '<span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans("AddThirdParty").'"></span>';
|
||||||
// TODO @LDR Implement this
|
// TODO @LDR Implement this
|
||||||
//$tmpbacktopagejsfields = 'socid:search_socid';
|
if (getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) {
|
||||||
//print dolButtonToOpenUrlInDialogPopup('addthirdparty', $langs->transnoentitiesnoconv('AddThirdParty'), $newbutton, $url, '', '', $tmpbacktopagejsfields);
|
$tmpbacktopagejsfields = 'addthirdparty:socid,search_socid';
|
||||||
print ' <a href="'.DOL_URL_ROOT.$url.'">'.$newbutton.'</a>';
|
print dolButtonToOpenUrlInDialogPopup('addthirdparty', $langs->transnoentitiesnoconv('AddThirdParty'), $newbutton, $url, '', '', $tmpbacktopagejsfields);
|
||||||
|
} else {
|
||||||
|
print ' <a href="'.DOL_URL_ROOT.$url.'">'.$newbutton.'</a>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -84,8 +84,8 @@ $error = 0; $errors = array();
|
|||||||
$action = (GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view');
|
$action = (GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view');
|
||||||
$cancel = GETPOST('cancel', 'alpha');
|
$cancel = GETPOST('cancel', 'alpha');
|
||||||
$backtopage = GETPOST('backtopage', 'alpha');
|
$backtopage = GETPOST('backtopage', 'alpha');
|
||||||
$backtopagejsfields = GETPOST('backtopagejsfields', 'alpha');
|
|
||||||
$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
|
$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
|
||||||
|
$backtopagejsfields = GETPOST('backtopagejsfields', 'alpha');
|
||||||
$dol_openinpopup = GETPOST('dol_openinpopup', 'aZ09');
|
$dol_openinpopup = GETPOST('dol_openinpopup', 'aZ09');
|
||||||
$confirm = GETPOST('confirm', 'alpha');
|
$confirm = GETPOST('confirm', 'alpha');
|
||||||
|
|
||||||
@ -689,6 +689,27 @@ if (empty($reshook)) {
|
|||||||
if ($result >= 0 && !$error) {
|
if ($result >= 0 && !$error) {
|
||||||
$db->commit();
|
$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)) {
|
if (!empty($backtopage)) {
|
||||||
$backtopage = preg_replace('/--IDFORBACKTOPAGE--/', $object->id, $backtopage); // New method to autoselect project after a New on another form object creation
|
$backtopage = preg_replace('/--IDFORBACKTOPAGE--/', $object->id, $backtopage); // New method to autoselect project after a New on another form object creation
|
||||||
if (preg_match('/\?/', $backtopage)) {
|
if (preg_match('/\?/', $backtopage)) {
|
||||||
@ -704,28 +725,8 @@ if (empty($reshook)) {
|
|||||||
$url = DOL_URL_ROOT."/fourn/card.php?socid=".$object->id;
|
$url = DOL_URL_ROOT."/fourn/card.php?socid=".$object->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO @LDR
|
header("Location: ".$url);
|
||||||
if ($dol_openinpopup && $backtopagejsfields) {
|
exit;
|
||||||
// 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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user