From eac99f9eecf79f2795e93742ba0701e192fbb8eb Mon Sep 17 00:00:00 2001 From: Regis Houssin <regis@dolibarr.fr> Date: Sat, 4 Aug 2007 10:10:45 +0000 Subject: [PATCH] =?UTF-8?q?Ajax:=20d=E9but=20ajout=20message=20de=20confir?= =?UTF-8?q?mation=20de=20suppression=20ou=20autre=20afin=20d'=E9viter=20de?= =?UTF-8?q?=20recharger=20la=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/comm/propal.php | 78 ++++++++++-------- htdocs/lib/lib_head.js | 17 ++++ htdocs/main.inc.php | 2 +- htdocs/theme/common/window/alert/bottom.gif | Bin 0 -> 70 bytes .../theme/common/window/alert/bottom_left.gif | Bin 0 -> 49 bytes .../common/window/alert/bottom_right.gif | Bin 0 -> 49 bytes htdocs/theme/common/window/alert/left.gif | Bin 0 -> 84 bytes htdocs/theme/common/window/alert/overlay.png | Bin 0 -> 2829 bytes htdocs/theme/common/window/alert/progress.gif | Bin 0 -> 1542 bytes htdocs/theme/common/window/alert/right.gif | Bin 0 -> 84 bytes htdocs/theme/common/window/alert/top.gif | Bin 0 -> 70 bytes htdocs/theme/common/window/alert/top_left.gif | Bin 0 -> 49 bytes .../theme/common/window/alert/top_right.gif | Bin 0 -> 49 bytes 13 files changed, 63 insertions(+), 34 deletions(-) create mode 100644 htdocs/theme/common/window/alert/bottom.gif create mode 100644 htdocs/theme/common/window/alert/bottom_left.gif create mode 100644 htdocs/theme/common/window/alert/bottom_right.gif create mode 100644 htdocs/theme/common/window/alert/left.gif create mode 100644 htdocs/theme/common/window/alert/overlay.png create mode 100644 htdocs/theme/common/window/alert/progress.gif create mode 100644 htdocs/theme/common/window/alert/right.gif create mode 100644 htdocs/theme/common/window/alert/top.gif create mode 100644 htdocs/theme/common/window/alert/top_left.gif create mode 100644 htdocs/theme/common/window/alert/top_right.gif diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index cb0ab675301..ba445cb2c09 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -95,20 +95,39 @@ if ($_POST['action'] == 'confirm_delete' && $_POST['confirm'] == 'yes') exit; } -if ($_POST['action'] == 'confirm_deleteproductline' && $_POST['confirm'] == 'yes' && $conf->global->PRODUIT_CONFIRM_DELETE_LINE) +/* + * Supprime une ligne produit SANS confirmation + */ +if ($_GET['action'] == 'deleteline' && $user->rights->propale->creer && !$conf->global->PRODUIT_CONFIRM_DELETE_LINE) { - if ($user->rights->propale->creer) - { - $propal = new Propal($db); - $propal->fetch($_GET['propalid']); - $result=$propal->delete_product($_GET['ligne']); - if ($_REQUEST['lang_id']) + $propal = new Propal($db); + $propal->fetch($_GET['propalid']); + $propal->delete_product($_GET['ligne']); + if ($_REQUEST['lang_id']) { - $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf); - $outputlangs->setDefaultLang($_REQUEST['lang_id']); + $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf); + $outputlangs->setDefaultLang($_REQUEST['lang_id']); } - propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); +} + +/* + * Supprime une ligne produit AVEC confirmation + */ +if ($_REQUEST['action'] == 'confirm_deleteline' && $_REQUEST['confirm'] == 'yes' && $conf->global->PRODUIT_CONFIRM_DELETE_LINE) +{ + if ($user->rights->propale->creer) + { + $propal = new Propal($db); + $propal->fetch($_GET['propalid']); + $result=$propal->delete_product($_GET['ligne']); + if ($_REQUEST['lang_id']) + { + $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf); + $outputlangs->setDefaultLang($_REQUEST['lang_id']); } + propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + } Header('Location: '.$_SERVER["PHP_SELF"].'?propalid='.$_GET['propalid']); exit; } @@ -598,23 +617,6 @@ if ($_REQUEST['action'] == 'builddoc' && $user->rights->propale->creer) } } - -if ($_GET['action'] == 'del_ligne' && $user->rights->propale->creer && !$conf->global->PRODUIT_CONFIRM_DELETE_LINE) -{ - /* - * Supprime une ligne produit dans la propale - */ - $propal = new Propal($db); - $propal->fetch($_GET['propalid']); - $propal->delete_product($_GET['ligne']); - if ($_REQUEST['lang_id']) - { - $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf); - $outputlangs->setDefaultLang($_REQUEST['lang_id']); - } - propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); -} - if ($_POST['action'] == 'classin') { $propal = new Propal($db); @@ -726,11 +728,11 @@ if ($_GET['propalid'] > 0) } /* - * Confirmation de la suppression d'une ligne produit + * Confirmation de la suppression d'une ligne produit/service */ - if ($_GET['action'] == 'delete_product_line' && $conf->global->PRODUIT_CONFIRM_DELETE_LINE) + if ($_GET['action'] == 'ask_deleteline' && $conf->global->PRODUIT_CONFIRM_DELETE_LINE) { - $html->form_confirm($_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&ligne='.$_GET["ligne"], $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteproductline'); + $html->form_confirm($_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&ligne='.$_GET["ligne"], $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline'); print '<br>'; } @@ -1162,13 +1164,23 @@ if ($_GET['propalid'] > 0) print '<td align="center">'; if ($conf->global->PRODUIT_CONFIRM_DELETE_LINE) { - print '<a href="'.$_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&action=delete_product_line&ligne='.$objp->rowid.'">'; + if ($conf->use_ajax) + { + $url = $_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&ligne='.$objp->rowid.'&action=confirm_deleteline&confirm=yes'; + print '<a href="#" onClick="confirmDelete(\''.$url.'\',\''.$langs->trans('ConfirmDeleteProductLine').'\',\''.$langs->trans("Yes").'\',\''.$langs->trans("No").'\')">'; + print img_delete(); + } + else + { + print '<a href="'.$_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&action=ask_deleteline&ligne='.$objp->rowid.'">'; + print img_delete(); + } } else { - print '<a href="'.$_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&action=del_ligne&ligne='.$objp->rowid.'">'; + print '<a href="'.$_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&action=deleteline&ligne='.$objp->rowid.'">'; + print img_delete(); } - print img_delete(); print '</a></td>'; if ($num > 1) { diff --git a/htdocs/lib/lib_head.js b/htdocs/lib/lib_head.js index cc2b8a6cb47..52105418761 100644 --- a/htdocs/lib/lib_head.js +++ b/htdocs/lib/lib_head.js @@ -648,4 +648,21 @@ function cleanSerialize(expr) { var liste1 = expr.replace(reg, ","); var liste = liste1.replace(reg2, ""); return liste; +} + +/*================================================================= + Purpose: Affiche un message de confirmation + Input: linkurl,message,ok,cancel + Author: Regis Houssin + Licence: GPL +==================================================================*/ +function confirmDelete(linkurl,message,ok,cancel) { + Dialog.confirm(message, { + width:300, + okLabel: ok, + cancelLabel: cancel, + buttonClass: "button", + cancel:function(win){}, + ok:function(win) {window.location.href=linkurl; return true;} + }); } \ No newline at end of file diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index e118f6daf42..3eb074a64a0 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -653,6 +653,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0) // Style sheets pour la class Window print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/theme/common/window/default.css">'."\n"; print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/theme/common/window/alphacube.css">'."\n"; + print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/theme/common/window/alert.css">'."\n"; // Definition en alternate style sheet des feuilles de styles les plus maintenues // Les navigateurs qui supportent sont rares. Plus aucun connu. @@ -676,7 +677,6 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0) print '<script language="javascript" type="text/javascript" src="'.DOL_URL_ROOT.'/includes/scriptaculous/src/scriptaculous.js"></script>'."\n"; print '<script language="javascript" type="text/javascript" src="'.DOL_URL_ROOT.'/includes/scriptaculous/src/effects.js"></script>'."\n"; print '<script language="javascript" type="text/javascript" src="'.DOL_URL_ROOT.'/includes/scriptaculous/src/controls.js"></script>'."\n"; - //print '<script language="javascript" type="text/javascript" src="'.DOL_URL_ROOT.'/includes/scriptaculous/src/prototip.js"></script>'."\n"; print '<script language="javascript" type="text/javascript" src="'.DOL_URL_ROOT.'/includes/scriptaculous/src/window/window.js"></script>'."\n"; print '<script language="javascript" type="text/javascript" src="'.DOL_URL_ROOT.'/includes/scriptaculous/src/window/tooltip.js"></script>'."\n"; diff --git a/htdocs/theme/common/window/alert/bottom.gif b/htdocs/theme/common/window/alert/bottom.gif new file mode 100644 index 0000000000000000000000000000000000000000..9870f5224ab4a6c73dd6047a53b59b3fc02d4768 GIT binary patch literal 70 zcmZ?wbhEHbjACGAXkcKlWMKIJ|G(l-76uT|0TCb>1}52_{*|ZS@-LpV<rdqfdwYKK Uw>`3md)8_6<kU93Xa)vr0LID~0RR91 literal 0 HcmV?d00001 diff --git a/htdocs/theme/common/window/alert/bottom_left.gif b/htdocs/theme/common/window/alert/bottom_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..583f113faf44672d7e50e064c54d39804a8a0241 GIT binary patch literal 49 ycmZ?wbhEHbWMyDwXkcLY|Np-w1B2pE76uT|0TCb>1||-knwbYVt~)U@SOWkI9SQ~j literal 0 HcmV?d00001 diff --git a/htdocs/theme/common/window/alert/bottom_right.gif b/htdocs/theme/common/window/alert/bottom_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..230ba12bedb5e82cbe13af02c4ea60fac1c7187c GIT binary patch literal 49 xcmZ?wbhEHbWMyDwXkcLY|Np-w1B2pE76uT|0TCb>1||-cqPBzCw;~uBtN{&_3S9sI literal 0 HcmV?d00001 diff --git a/htdocs/theme/common/window/alert/left.gif b/htdocs/theme/common/window/alert/left.gif new file mode 100644 index 0000000000000000000000000000000000000000..4a3fab520239d0d923d95d3128e1b035dbb89381 GIT binary patch literal 84 zcmZ?wbhEHbWMznAXkcKlWMKIJ|G(l-76uT|0TCb>1}1Hnnwc4EWW!oEUHZN0c5r!K jrDDg#q@PO{cdg6gp1;X+^XAz7+vgqs`|j{cE(U7=I!+)L literal 0 HcmV?d00001 diff --git a/htdocs/theme/common/window/alert/overlay.png b/htdocs/theme/common/window/alert/overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..2f3344e5cbba86538a03e06e171d119ac2da0139 GIT binary patch literal 2829 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 Of%u-TelF{r5}E+dxm$Mt literal 0 HcmV?d00001 diff --git a/htdocs/theme/common/window/alert/progress.gif b/htdocs/theme/common/window/alert/progress.gif new file mode 100644 index 0000000000000000000000000000000000000000..529e72f45a2395e2eddb0487edbe79b306c92c3a GIT binary patch literal 1542 zcmZ?wbhEHb6krfwIKsg2|NsB@@893Mckk%YqkH%6U9)D*oH=uPdU}eAijtF)gMxyb zoSX~|4HXp?1q1{b!0H)D0gC^*{aizWogD*Qjr0td85tND6o0a?vNH%U=zz=tIfH?< zOhLtoai+%86;4jdEa#Octk$sceQ@I78m`TUA8%k@=F)gn;8}o1+_otWFBN`F2uN9Q zV24s@d+X%@W!7^Kk2b|v&p*p@#BddtfcU+6r7al}Z`d7}SXHWZjG1^?SlO5w<CPh? zI0V>InCeZLIE<$$u@sxKu%s%YI)$G>fPsNENkOGgU{VL8rCyRUm*2uJo+}pLoX;#O zl;*$Y@zB6QhUfC*iC&!|0&NK{Gd{K0cqleHyxAnstTgdQQ@q>M;*bc3t4z-m6^&2C zt>3Dls35|Wrp4h_r_`vyrr9bG7Rl7BjApF>13v=;YrKL=--N;mD`s?f3$yrWS#e!q zE0vlOa8XQ|(Xl0gL9+X>qMC(`9Fu6Tih+&%VL`=>m+kzNnl1^r?mfra5_Rm|*1%5Z z?YRy-oGqW{T(RZ&C%{y#!sgt-n5yZ}m|BftC&;Ub3Mzez9Oo$sIh<0`V&O96c&+wA z%gROiF=OM42?BZoY|YvUMK1(QI{2J2PAHg8+8_}j$;BFZ$gxe8_fYVogJ~0z)Ei?K z2+R0f7i8p}_<X4nBTH;>IEzzkeQjfFeWwP7t$Yj&tnLabeHRKRXxuVMGF~Dey}5^5 z{#}#_PnW^^wnJOAMBR;oHUtK!1s$5mU>3Bdg88y$=<Z3&PHC*Vz_b29lhK)Orp0U> zW~CxbsF4RrNBN-0bDW?dBJ!xQqhkUaN41QA-f}0UJ520-E*dBJ*o2z`n{-?l4>bx% zu(EWqC#wr>@MvsZxJqcoNtI@&jTSS`Yc`*l$gr4&$MS~HCp$U+0H#pJ6h8h4e!dJ% zR(>wk_%dZ)es$w={wmEGm@x?oRd7ryOjzO3(ROgzo5&r<n7Z8!oV^=oG0GlH@#qk9 zo0u@e%R*$u0nVu(I-49L6el($G2dcsZrsr;!n#IsQ<KU81D8dNoD!1e#~(9j>L)T* z1qU}YG4X{paPbtVpoA$S10?mtDyTR$c?cvKt`oSm$mP&FgIPNoXLLJpigHYPWWdEy zrp=;!!l{pM-OZkc6|0sko{`jX_3je4`5PG%H_7!MPIOe$i)d$GbkV?}!<cc`6Apt7 zto(Yl0=$9Rb^=^MC^j-MKteiML8UK1V8V(DrzQm<ZLK-F*+)_yY&-aHk@n=y00CJZ z%>{~$K8twl)jbPVc)2sRZ2OTV5U}s%qmLPVVtvi0J|^stYI90rG&B)XI(+>^g2?PZ zWnRWw0WLm2zI+~~5>M?YPZWD$K8*p{o504jvTK>gnpZ#9t<<`5jHmyoBg?j_e3J?! zgf}!zI#6LDZqR(NT}VP^>%>I%pS?_+$HJ~Cut{-0b-Wm=;L^Iraif9-m#PG_Q@g@9 zr&Iy%0GCJuc6I}t7OIF$c_G2E^uVG+o_6O0PceQJ`trGtDVFo2#+H;tZAPq$7OY(D zA`^?m;u;SzrRr$9*k4q<*lM6~rS(vzM~490M1wd76_)g6$=U4^+YA~w;~7JIl-LR( z`GXU!EKE^Q=}Ykx>PuL6<no%;pF}qNa60sPhLZx9IdiVai>W+(PAAQ+48*#dS84<( zN=3Zfw5sU`2iN3DA`T8gOAjUTaC!@OWF2e}{^z1`=-`|eMy`xJoC4JXtQ_?!%`IsH MC8ll8s)`KO03ki!(f|Me literal 0 HcmV?d00001 diff --git a/htdocs/theme/common/window/alert/right.gif b/htdocs/theme/common/window/alert/right.gif new file mode 100644 index 0000000000000000000000000000000000000000..85ba9e2a56a93527dde4f14eccfe386e6af2e2b7 GIT binary patch literal 84 zcmZ?wbhEHbWMznAXkcKlWMKIJ|G(l-76uT|0TCb>1}1Hvg0>lZW=WNNJegg5cgy+y j!UfM-RV};Hs#d+=+P}$ryIJ?~QoH-R?mxcD#b6BpMUEfb literal 0 HcmV?d00001 diff --git a/htdocs/theme/common/window/alert/top.gif b/htdocs/theme/common/window/alert/top.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f6193664b77e0b385df5400b8fe25ef43a24201 GIT binary patch literal 70 zcmZ?wbhEHbjACGAXkcKlWMKIJ|G(l-76uT|0TCb>1}52-{*|ZS@+Z#Na;tmuy*=MK U+8#+%J?mWd>eRM%p$rVx0MDfv9smFU literal 0 HcmV?d00001 diff --git a/htdocs/theme/common/window/alert/top_left.gif b/htdocs/theme/common/window/alert/top_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..fabb33a189bcf331976100f954a125f1a3a10e8c GIT binary patch literal 49 xcmZ?wbhEHbWMyDwXkcLY|Np-w1B2pE76uT|0TCb>1}2Uke$I_2xE&c8tN{qv32XoW literal 0 HcmV?d00001 diff --git a/htdocs/theme/common/window/alert/top_right.gif b/htdocs/theme/common/window/alert/top_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..9fec6fa2b34647940d7aa1143ea58f448667f128 GIT binary patch literal 49 xcmZ?wbhEHbWMyDwXkcLY|Np-w1B2pE76uT|0TCb>1}2UkUQY4ZcVjddtN{pp3AX?M literal 0 HcmV?d00001 -- GitLab