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.'&amp;ligne='.$_GET["ligne"], $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteproductline');
+      $html->form_confirm($_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&amp;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.'&amp;action=delete_product_line&amp;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.'&amp;action=ask_deleteline&amp;ligne='.$objp->rowid.'">';
+							print img_delete();
+						}
 					}
 					else
 					{
-						print '<a href="'.$_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&amp;action=del_ligne&amp;ligne='.$objp->rowid.'">';
+						print '<a href="'.$_SERVER["PHP_SELF"].'?propalid='.$propal->id.'&amp;action=deleteline&amp;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