Passed
Push — master ( 7ebbb8...87a0c2 )
by Jean-Christophe
01:49
created
Ajax/common/traits/JsUtilsAjaxTrait.php 1 patch
Spacing   +180 added lines, -180 removed lines patch added patch discarded remove patch
@@ -15,56 +15,56 @@  discard block
 block discarded – undo
15 15
 
16 16
 	protected $ajaxTransition;
17 17
 
18
-	protected $ajaxLoader = "<div class=\"ui active centered inline text loader\">Loading</div>";
18
+	protected $ajaxLoader="<div class=\"ui active centered inline text loader\">Loading</div>";
19 19
 
20 20
 	abstract public function getUrl($url);
21 21
 
22
-	abstract public function _add_event($element, $js, $event, $preventDefault = false, $stopPropagation = false, $immediatly = true);
22
+	abstract public function _add_event($element, $js, $event, $preventDefault=false, $stopPropagation=false, $immediatly=true);
23 23
 
24
-	abstract public function interval($jsCode, $time, $globalName = null, $immediatly = true);
24
+	abstract public function interval($jsCode, $time, $globalName=null, $immediatly=true);
25 25
 
26
-	protected function _ajax($method, $url, $responseElement = "", $parameters = []) {
26
+	protected function _ajax($method, $url, $responseElement="", $parameters=[]) {
27 27
 		if (isset($this->params["ajax"])) {
28 28
 			extract($this->params["ajax"]);
29 29
 		}
30 30
 		extract($parameters);
31 31
 
32
-		$jsCallback = isset($jsCallback) ? $jsCallback : "";
33
-		$retour = $this->_getAjaxUrl($url, $attr);
34
-		$originalSelector = $responseElement;
35
-		$responseElement = $this->_getResponseElement($responseElement);
36
-		$retour .= "var self=this;\n";
37
-		$before = isset($before) ? $before : "";
38
-		$retour .= $before;
39
-		if ($hasLoader === true && JString::isNotNull($responseElement)) {
32
+		$jsCallback=isset($jsCallback) ? $jsCallback : "";
33
+		$retour=$this->_getAjaxUrl($url, $attr);
34
+		$originalSelector=$responseElement;
35
+		$responseElement=$this->_getResponseElement($responseElement);
36
+		$retour.="var self=this;\n";
37
+		$before=isset($before) ? $before : "";
38
+		$retour.=$before;
39
+		if ($hasLoader===true && JString::isNotNull($responseElement)) {
40 40
 			$this->addLoading($retour, $responseElement, $ajaxLoader);
41
-		} elseif ($hasLoader === "internal") {
42
-			$retour .= "\n$(this).addClass('loading');";
41
+		} elseif ($hasLoader==="internal") {
42
+			$retour.="\n$(this).addClass('loading');";
43 43
 		}
44
-		$ajaxParameters = [
44
+		$ajaxParameters=[
45 45
 			"url" => "url",
46
-			"method" => "'" . \strtoupper($method) . "'"
46
+			"method" => "'".\strtoupper($method)."'"
47 47
 		];
48 48
 
49
-		$ajaxParameters["async"] = ($async ? "true" : "false");
49
+		$ajaxParameters["async"]=($async ? "true" : "false");
50 50
 
51 51
 		if (isset($params)) {
52
-			$ajaxParameters["data"] = self::_correctParams($params, $parameters);
52
+			$ajaxParameters["data"]=self::_correctParams($params, $parameters);
53 53
 		}
54 54
 		if (isset($headers)) {
55
-			$ajaxParameters["headers"] = $headers;
55
+			$ajaxParameters["headers"]=$headers;
56 56
 		}
57 57
 		$this->createAjaxParameters($ajaxParameters, $parameters);
58
-		$retour .= "$.ajax({" . $this->implodeAjaxParameters($ajaxParameters) . "}).done(function( data, textStatus, jqXHR ) {\n";
59
-		$retour .= $this->_getOnAjaxDone($responseElement, $jqueryDone, $ajaxTransition, $jsCallback, $hasLoader, ($historize ? $originalSelector : null)) . "});\n";
60
-		$retour = $this->_addJsCondition($jsCondition, $retour);
58
+		$retour.="$.ajax({".$this->implodeAjaxParameters($ajaxParameters)."}).done(function( data, textStatus, jqXHR ) {\n";
59
+		$retour.=$this->_getOnAjaxDone($responseElement, $jqueryDone, $ajaxTransition, $jsCallback, $hasLoader, ($historize ? $originalSelector : null))."});\n";
60
+		$retour=$this->_addJsCondition($jsCondition, $retour);
61 61
 		if ($immediatly)
62
-			$this->jquery_code_for_compile[] = $retour;
62
+			$this->jquery_code_for_compile[]=$retour;
63 63
 		return $retour;
64 64
 	}
65 65
 
66 66
 	protected function createAjaxParameters(&$original, $parameters) {
67
-		$validParameters = [
67
+		$validParameters=[
68 68
 			"contentType" => "%value%",
69 69
 			"dataType" => "'%value%'",
70 70
 			"beforeSend" => "function(jqXHR,settings){%value%}",
@@ -73,21 +73,21 @@  discard block
 block discarded – undo
73 73
 		];
74 74
 		foreach ($validParameters as $param => $mask) {
75 75
 			if (isset($parameters[$param])) {
76
-				$original[$param] = \str_replace("%value%", $parameters[$param], $mask);
76
+				$original[$param]=\str_replace("%value%", $parameters[$param], $mask);
77 77
 			}
78 78
 		}
79 79
 	}
80 80
 
81 81
 	protected function implodeAjaxParameters($ajaxParameters) {
82
-		$s = '';
82
+		$s='';
83 83
 		foreach ($ajaxParameters as $k => $v) {
84
-			if ($s !== '') {
85
-				$s .= ',';
84
+			if ($s!=='') {
85
+				$s.=',';
86 86
 			}
87 87
 			if (is_array($v)) {
88
-				$s .= "'{$k}':{" . self::implodeAjaxParameters($v) . "}";
88
+				$s.="'{$k}':{".self::implodeAjaxParameters($v)."}";
89 89
 			} else {
90
-				$s .= "'{$k}':{$v}";
90
+				$s.="'{$k}':{$v}";
91 91
 			}
92 92
 		}
93 93
 		return $s;
@@ -95,27 +95,27 @@  discard block
 block discarded – undo
95 95
 
96 96
 	protected function _addJsCondition($jsCondition, $jsSource) {
97 97
 		if (isset($jsCondition)) {
98
-			return "if(" . $jsCondition . "){\n" . $jsSource . "\n}";
98
+			return "if(".$jsCondition."){\n".$jsSource."\n}";
99 99
 		}
100 100
 		return $jsSource;
101 101
 	}
102 102
 
103 103
 	protected function _getAjaxUrl($url, $attr) {
104
-		$url = $this->_correctAjaxUrl($url);
105
-		$retour = "url='" . $url . "';";
106
-		$slash = "/";
107
-		if (JString::endswith($url, "/") === true) {
108
-			$slash = "";
104
+		$url=$this->_correctAjaxUrl($url);
105
+		$retour="url='".$url."';";
106
+		$slash="/";
107
+		if (JString::endswith($url, "/")===true) {
108
+			$slash="";
109 109
 		}
110 110
 		if (JString::isNotNull($attr)) {
111
-			if ($attr === "value") {
112
-				$retour .= "url=url+'" . $slash . "'+$(this).val();\n";
113
-			} elseif ($attr === "html") {
114
-				$retour .= "url=url+'" . $slash . "'+$(this).html();\n";
115
-			} elseif (\substr($attr, 0, 3) === "js:") {
116
-				$retour .= "url=url+'" . $slash . "'+" . \substr($attr, 3) . ";\n";
117
-			} elseif ($attr !== null && $attr !== "")
118
-				$retour .= "url=url+'" . $slash . "'+($(this).attr('" . $attr . "')||'');\n";
111
+			if ($attr==="value") {
112
+				$retour.="url=url+'".$slash."'+$(this).val();\n";
113
+			} elseif ($attr==="html") {
114
+				$retour.="url=url+'".$slash."'+$(this).html();\n";
115
+			} elseif (\substr($attr, 0, 3)==="js:") {
116
+				$retour.="url=url+'".$slash."'+".\substr($attr, 3).";\n";
117
+			} elseif ($attr!==null && $attr!=="")
118
+				$retour.="url=url+'".$slash."'+($(this).attr('".$attr."')||'');\n";
119 119
 		}
120 120
 		return $retour;
121 121
 	}
@@ -124,91 +124,91 @@  discard block
 block discarded – undo
124 124
 		return "window.onpopstate = function(e){if(e.state){var target=e.state.jqueryDone;$(e.state.selector)[target](e.state.html);}};";
125 125
 	}
126 126
 
127
-	protected function autoActiveLinks($previousURL = "window.location.href") {
128
-		$result = "\nfunction getHref(url) { return \$('a').filter(function(){return \$(this).prop('href') == url; });}";
129
-		$result .= "\nvar myurl={$previousURL};if(window._previousURL) getHref(window._previousURL).removeClass('active');getHref(myurl).addClass('active');window._previousURL=myurl;";
127
+	protected function autoActiveLinks($previousURL="window.location.href") {
128
+		$result="\nfunction getHref(url) { return \$('a').filter(function(){return \$(this).prop('href') == url; });}";
129
+		$result.="\nvar myurl={$previousURL};if(window._previousURL) getHref(window._previousURL).removeClass('active');getHref(myurl).addClass('active');window._previousURL=myurl;";
130 130
 		return $result;
131 131
 	}
132 132
 
133
-	protected function _getOnAjaxDone($responseElement, $jqueryDone, $ajaxTransition, $jsCallback, $hasLoader = false, $history = null) {
134
-		$retour = "";
135
-		$call = null;
133
+	protected function _getOnAjaxDone($responseElement, $jqueryDone, $ajaxTransition, $jsCallback, $hasLoader=false, $history=null) {
134
+		$retour="";
135
+		$call=null;
136 136
 		if (JString::isNotNull($responseElement)) {
137 137
 			if (isset($ajaxTransition)) {
138
-				$call = $this->setAjaxDataCall($ajaxTransition);
138
+				$call=$this->setAjaxDataCall($ajaxTransition);
139 139
 			} elseif (isset($this->ajaxTransition)) {
140
-				$call = $this->ajaxTransition;
140
+				$call=$this->ajaxTransition;
141 141
 			}
142 142
 			if (\is_callable($call))
143
-				$retour = "\t" . $call($responseElement, $jqueryDone) . ";\n";
143
+				$retour="\t".$call($responseElement, $jqueryDone).";\n";
144 144
 			else
145
-				$retour = "\t{$responseElement}.{$jqueryDone}( data );\n";
145
+				$retour="\t{$responseElement}.{$jqueryDone}( data );\n";
146 146
 		}
147 147
 		if (isset($history)) {
148 148
 			if ($this->params["autoActiveLinks"]) {
149
-				$retour .= $this->autoActiveLinks("url");
149
+				$retour.=$this->autoActiveLinks("url");
150 150
 			}
151
-			$retour .= "\nwindow.history.pushState({'html':data,'selector':" . Javascript::prep_value($history) . ",'jqueryDone':'{$jqueryDone}'},'', url);";
151
+			$retour.="\nwindow.history.pushState({'html':data,'selector':".Javascript::prep_value($history).",'jqueryDone':'{$jqueryDone}'},'', url);";
152 152
 		}
153
-		if ($hasLoader === "internal") {
154
-			$retour .= "\n$(self).removeClass('loading');";
153
+		if ($hasLoader==="internal") {
154
+			$retour.="\n$(self).removeClass('loading');";
155 155
 		}
156
-		$retour .= "\t" . $jsCallback . "\n";
156
+		$retour.="\t".$jsCallback."\n";
157 157
 		return $retour;
158 158
 	}
159 159
 
160 160
 	protected function _getResponseElement($responseElement) {
161 161
 		if (JString::isNotNull($responseElement)) {
162
-			$responseElement = Javascript::prep_jquery_selector($responseElement);
162
+			$responseElement=Javascript::prep_jquery_selector($responseElement);
163 163
 		}
164 164
 		return $responseElement;
165 165
 	}
166 166
 
167 167
 	protected function _correctAjaxUrl($url) {
168
-		if ($url !== "/" && JString::endsWith($url, "/") === true)
169
-			$url = substr($url, 0, strlen($url) - 1);
170
-		if (strncmp($url, 'http://', 7) != 0 && strncmp($url, 'https://', 8) != 0) {
171
-			$url = $this->getUrl($url);
168
+		if ($url!=="/" && JString::endsWith($url, "/")===true)
169
+			$url=substr($url, 0, strlen($url)-1);
170
+		if (strncmp($url, 'http://', 7)!=0 && strncmp($url, 'https://', 8)!=0) {
171
+			$url=$this->getUrl($url);
172 172
 		}
173 173
 		return $url;
174 174
 	}
175 175
 
176
-	public static function _correctParams($params, $ajaxParameters = []) {
176
+	public static function _correctParams($params, $ajaxParameters=[]) {
177 177
 		if (JString::isNull($params)) {
178 178
 			return "";
179 179
 		}
180 180
 		if (\preg_match("@^\{.*?\}$@", $params)) {
181
-			if (! isset($ajaxParameters['contentType']) || ! JString::contains($ajaxParameters['contentType'], 'json')) {
182
-				return '$.param(' . $params . ')';
181
+			if (!isset($ajaxParameters['contentType']) || !JString::contains($ajaxParameters['contentType'], 'json')) {
182
+				return '$.param('.$params.')';
183 183
 			} else {
184
-				return 'JSON.stringify(' . $params . ')';
184
+				return 'JSON.stringify('.$params.')';
185 185
 			}
186 186
 		}
187 187
 		return $params;
188 188
 	}
189 189
 
190 190
 	public static function _implodeParams($parameters) {
191
-		$allParameters = [];
191
+		$allParameters=[];
192 192
 		foreach ($parameters as $params) {
193 193
 			if (isset($params))
194
-				$allParameters[] = self::_correctParams($params);
194
+				$allParameters[]=self::_correctParams($params);
195 195
 		}
196 196
 		return \implode("+'&'+", $allParameters);
197 197
 	}
198 198
 
199
-	protected function addLoading(&$retour, $responseElement, $ajaxLoader = null) {
200
-		if (! isset($ajaxLoader)) {
201
-			$ajaxLoader = $this->ajaxLoader;
199
+	protected function addLoading(&$retour, $responseElement, $ajaxLoader=null) {
200
+		if (!isset($ajaxLoader)) {
201
+			$ajaxLoader=$this->ajaxLoader;
202 202
 		}
203
-		$loading_notifier = '<div class="ajax-loader">' . $ajaxLoader . '</div>';
204
-		$retour .= "{$responseElement}.empty();\n";
205
-		$retour .= "\t\t{$responseElement}.prepend('{$loading_notifier}');\n";
203
+		$loading_notifier='<div class="ajax-loader">'.$ajaxLoader.'</div>';
204
+		$retour.="{$responseElement}.empty();\n";
205
+		$retour.="\t\t{$responseElement}.prepend('{$loading_notifier}');\n";
206 206
 	}
207 207
 
208 208
 	protected function setAjaxDataCall($params) {
209
-		$result = null;
210
-		if (! \is_callable($params)) {
211
-			$result = function ($responseElement, $jqueryDone = "html") use ($params) {
209
+		$result=null;
210
+		if (!\is_callable($params)) {
211
+			$result=function($responseElement, $jqueryDone="html") use ($params) {
212 212
 				return AjaxTransition::{$params}($responseElement, $jqueryDone);
213 213
 			};
214 214
 		}
@@ -217,13 +217,13 @@  discard block
 block discarded – undo
217 217
 
218 218
 	protected function setDefaultParameters(&$parameters, $default) {
219 219
 		foreach ($default as $k => $v) {
220
-			if (! isset($parameters[$k]))
221
-				$parameters[$k] = $v;
220
+			if (!isset($parameters[$k]))
221
+				$parameters[$k]=$v;
222 222
 		}
223 223
 	}
224 224
 
225 225
 	public function setAjaxLoader($loader) {
226
-		$this->ajaxLoader = $loader;
226
+		$this->ajaxLoader=$loader;
227 227
 	}
228 228
 
229 229
 	/**
@@ -234,7 +234,7 @@  discard block
 block discarded – undo
234 234
 	 * @param string $responseElement
235 235
 	 *        	selector of the HTML element displaying the answer
236 236
 	 */
237
-	private function _get($url, $responseElement = "", $parameters = []) {
237
+	private function _get($url, $responseElement="", $parameters=[]) {
238 238
 		return $this->_ajax("get", $url, $responseElement, $parameters);
239 239
 	}
240 240
 
@@ -248,8 +248,8 @@  discard block
 block discarded – undo
248 248
 	 * @param array $parameters
249 249
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
250 250
 	 */
251
-	public function get($url, $responseElement = "", $parameters = []) {
252
-		$parameters["immediatly"] = true;
251
+	public function get($url, $responseElement="", $parameters=[]) {
252
+		$parameters["immediatly"]=true;
253 253
 		return $this->_get($url, $responseElement, $parameters);
254 254
 	}
255 255
 
@@ -265,8 +265,8 @@  discard block
 block discarded – undo
265 265
 	 * @param array $parameters
266 266
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
267 267
 	 */
268
-	public function ajax($method, $url, $responseElement = "", $parameters = []) {
269
-		$parameters["immediatly"] = true;
268
+	public function ajax($method, $url, $responseElement="", $parameters=[]) {
269
+		$parameters["immediatly"]=true;
270 270
 		return $this->_ajax($method, $url, $responseElement, $parameters);
271 271
 	}
272 272
 
@@ -286,7 +286,7 @@  discard block
 block discarded – undo
286 286
 	 *        	The ajax parameters, default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
287 287
 	 * @return string
288 288
 	 */
289
-	public function ajaxInterval($method, $url, $interval, $globalName = null, $responseElement = "", $parameters = []) {
289
+	public function ajaxInterval($method, $url, $interval, $globalName=null, $responseElement="", $parameters=[]) {
290 290
 		return $this->interval($this->ajaxDeferred($method, $url, $responseElement, $parameters), $interval, $globalName);
291 291
 	}
292 292
 
@@ -302,8 +302,8 @@  discard block
 block discarded – undo
302 302
 	 * @param array $parameters
303 303
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
304 304
 	 */
305
-	public function ajaxDeferred($method, $url, $responseElement = "", $parameters = []) {
306
-		$parameters["immediatly"] = false;
305
+	public function ajaxDeferred($method, $url, $responseElement="", $parameters=[]) {
306
+		$parameters["immediatly"]=false;
307 307
 		return $this->_ajax($method, $url, $responseElement, $parameters);
308 308
 	}
309 309
 
@@ -317,15 +317,15 @@  discard block
 block discarded – undo
317 317
 	 * @param array $parameters
318 318
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","context"=>"document","jsCondition"=>NULL,"headers"=>null,"immediatly"=>false)
319 319
 	 */
320
-	private function _json($url, $method = "get", $parameters = []) {
321
-		$parameters = \array_merge($parameters, [
320
+	private function _json($url, $method="get", $parameters=[]) {
321
+		$parameters=\array_merge($parameters, [
322 322
 			"hasLoader" => false
323 323
 		]);
324
-		$jsCallback = isset($parameters['jsCallback']) ? $parameters['jsCallback'] : "";
325
-		$context = isset($parameters['context']) ? $parameters['context'] : "document";
326
-		$retour = "\tdata=($.isPlainObject(data))?data:JSON.parse(data);\t" . $jsCallback . ";" . "\n\tfor(var key in data){" . "if($('#'+key," . $context . ").length){ if($('#'+key," . $context . ").is('[value]')) { $('#'+key," . $context . ").val(data[key]);} else { $('#'+key," . $context . ").html(data[key]); }}};\n";
327
-		$retour .= "\t$(document).trigger('jsonReady',[data]);\n";
328
-		$parameters["jsCallback"] = $retour;
324
+		$jsCallback=isset($parameters['jsCallback']) ? $parameters['jsCallback'] : "";
325
+		$context=isset($parameters['context']) ? $parameters['context'] : "document";
326
+		$retour="\tdata=($.isPlainObject(data))?data:JSON.parse(data);\t".$jsCallback.";"."\n\tfor(var key in data){"."if($('#'+key,".$context.").length){ if($('#'+key,".$context.").is('[value]')) { $('#'+key,".$context.").val(data[key]);} else { $('#'+key,".$context.").html(data[key]); }}};\n";
327
+		$retour.="\t$(document).trigger('jsonReady',[data]);\n";
328
+		$parameters["jsCallback"]=$retour;
329 329
 		return $this->_ajax($method, $url, null, $parameters);
330 330
 	}
331 331
 
@@ -339,7 +339,7 @@  discard block
 block discarded – undo
339 339
 	 * @param array $parameters
340 340
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","context"=>"document","jsCondition"=>NULL,"headers"=>null,"immediatly"=>false)
341 341
 	 */
342
-	public function json($url, $method = "get", $parameters = []) {
342
+	public function json($url, $method="get", $parameters=[]) {
343 343
 		return $this->_json($url, $method, $parameters);
344 344
 	}
345 345
 
@@ -355,7 +355,7 @@  discard block
 block discarded – undo
355 355
 	 * @param array $parameters
356 356
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"jsCallback"=>NULL,"attr"=>"id","params"=>"{}","method"=>"get","immediatly"=>true)
357 357
 	 */
358
-	public function jsonOn($event, $element, $url, $method = "get", $parameters = array()) {
358
+	public function jsonOn($event, $element, $url, $method="get", $parameters=array()) {
359 359
 		$this->setDefaultParameters($parameters, [
360 360
 			"preventDefault" => true,
361 361
 			"stopPropagation" => true,
@@ -374,8 +374,8 @@  discard block
 block discarded – undo
374 374
 	 * @param array $parameters
375 375
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","context"=>"document","jsCondition"=>NULL,"headers"=>null,"immediatly"=>false)
376 376
 	 */
377
-	public function jsonDeferred($url, $method = "get", $parameters = []) {
378
-		$parameters["immediatly"] = false;
377
+	public function jsonDeferred($url, $method="get", $parameters=[]) {
378
+		$parameters["immediatly"]=false;
379 379
 		return $this->_json($url, $method, $parameters);
380 380
 	}
381 381
 
@@ -390,29 +390,29 @@  discard block
 block discarded – undo
390 390
 	 * @param array $parameters
391 391
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","context"=>null,"jsCondition"=>NULL,"headers"=>null,"immediatly"=>false,"rowClass"=>"_json")
392 392
 	 */
393
-	private function _jsonArray($maskSelector, $url, $method = "get", $parameters = []) {
394
-		$parameters = \array_merge($parameters, [
393
+	private function _jsonArray($maskSelector, $url, $method="get", $parameters=[]) {
394
+		$parameters=\array_merge($parameters, [
395 395
 			"hasLoader" => false
396 396
 		]);
397
-		$rowClass = isset($parameters['rowClass']) ? $parameters['rowClass'] : "_json";
398
-		$jsCallback = isset($parameters['jsCallback']) ? $parameters['jsCallback'] : "";
399
-		$context = isset($parameters['context']) ? $parameters['context'] : null;
400
-		if ($context === null) {
401
-			$parent = "$('" . $maskSelector . "').parent()";
402
-			$newElm = "$('#'+newId)";
397
+		$rowClass=isset($parameters['rowClass']) ? $parameters['rowClass'] : "_json";
398
+		$jsCallback=isset($parameters['jsCallback']) ? $parameters['jsCallback'] : "";
399
+		$context=isset($parameters['context']) ? $parameters['context'] : null;
400
+		if ($context===null) {
401
+			$parent="$('".$maskSelector."').parent()";
402
+			$newElm="$('#'+newId)";
403 403
 		} else {
404
-			$parent = $context;
405
-			$newElm = $context . ".find('#'+newId)";
404
+			$parent=$context;
405
+			$newElm=$context.".find('#'+newId)";
406 406
 		}
407
-		$appendTo = "\t\tnewElm.appendTo(" . $parent . ");\n";
408
-		$retour = $parent . ".find('.{$rowClass}').remove();";
409
-		$retour .= "\tdata=($.isPlainObject(data)||$.isArray(data))?data:JSON.parse(data);\n$.each(data, function(index, value) {\n" . "\tvar created=false;var maskElm=$('" . $maskSelector . "').first();maskElm.hide();" . "\tvar newId=(maskElm.attr('id') || 'mask')+'-'+index;" . "\tvar newElm=" . $newElm . ";\n" . "\tif(!newElm.length){\n" . "\t\tnewElm=maskElm.clone();
407
+		$appendTo="\t\tnewElm.appendTo(".$parent.");\n";
408
+		$retour=$parent.".find('.{$rowClass}').remove();";
409
+		$retour.="\tdata=($.isPlainObject(data)||$.isArray(data))?data:JSON.parse(data);\n$.each(data, function(index, value) {\n"."\tvar created=false;var maskElm=$('".$maskSelector."').first();maskElm.hide();"."\tvar newId=(maskElm.attr('id') || 'mask')+'-'+index;"."\tvar newElm=".$newElm.";\n"."\tif(!newElm.length){\n"."\t\tnewElm=maskElm.clone();
410 410
 		newElm.attr('id',newId);\n;newElm.addClass('{$rowClass}').removeClass('_jsonArrayModel');\nnewElm.find('[id]').each(function(){ var newId=$(this).attr('id')+'-'+index;$(this).attr('id',newId).removeClass('_jsonArrayChecked');});\n";
411
-		$retour .= $appendTo;
412
-		$retour .= "\t}\n" . "\tfor(var key in value){\n" . "\t\t\tvar html = $('<div />').append($(newElm).clone()).html();\n" . "\t\t\tif(html.indexOf('__'+key+'__')>-1){\n" . "\t\t\t\tcontent=$(html.split('__'+key+'__').join(value[key]));\n" . "\t\t\t\t$(newElm).replaceWith(content);newElm=content;\n" . "\t\t\t}\n" . "\t\tvar sel='[data-id=\"'+key+'\"]';if($(sel,newElm).length){\n" . "\t\t\tvar selElm=$(sel,newElm);\n" . "\t\t\t if(selElm.is('[value]')) { selElm.attr('value',value[key]);selElm.val(value[key]);} else { selElm.html(value[key]); }\n" . "\t\t}\n" . "}\n" . "\t$(newElm).show(true);" . "\n" . "\t$(newElm).removeClass('hide');" . "});\n";
413
-		$retour .= "\t$(document).trigger('jsonReady',[data]);\n";
414
-		$retour .= "\t" . $jsCallback;
415
-		$parameters["jsCallback"] = $retour;
411
+		$retour.=$appendTo;
412
+		$retour.="\t}\n"."\tfor(var key in value){\n"."\t\t\tvar html = $('<div />').append($(newElm).clone()).html();\n"."\t\t\tif(html.indexOf('__'+key+'__')>-1){\n"."\t\t\t\tcontent=$(html.split('__'+key+'__').join(value[key]));\n"."\t\t\t\t$(newElm).replaceWith(content);newElm=content;\n"."\t\t\t}\n"."\t\tvar sel='[data-id=\"'+key+'\"]';if($(sel,newElm).length){\n"."\t\t\tvar selElm=$(sel,newElm);\n"."\t\t\t if(selElm.is('[value]')) { selElm.attr('value',value[key]);selElm.val(value[key]);} else { selElm.html(value[key]); }\n"."\t\t}\n"."}\n"."\t$(newElm).show(true);"."\n"."\t$(newElm).removeClass('hide');"."});\n";
413
+		$retour.="\t$(document).trigger('jsonReady',[data]);\n";
414
+		$retour.="\t".$jsCallback;
415
+		$parameters["jsCallback"]=$retour;
416 416
 		return $this->_ajax($method, $url, null, $parameters);
417 417
 	}
418 418
 
@@ -427,7 +427,7 @@  discard block
 block discarded – undo
427 427
 	 * @param array $parameters
428 428
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","context"=>null,"jsCondition"=>NULL,"headers"=>null,"immediatly"=>false,"rowClass"=>"_json")
429 429
 	 */
430
-	public function jsonArray($maskSelector, $url, $method = "get", $parameters = []) {
430
+	public function jsonArray($maskSelector, $url, $method="get", $parameters=[]) {
431 431
 		return $this->_jsonArray($maskSelector, $url, $method, $parameters);
432 432
 	}
433 433
 
@@ -442,8 +442,8 @@  discard block
 block discarded – undo
442 442
 	 * @param array $parameters
443 443
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","context"=>null,"jsCondition"=>NULL,"headers"=>null,"rowClass"=>"_json")
444 444
 	 */
445
-	public function jsonArrayDeferred($maskSelector, $url, $method = "get", $parameters) {
446
-		$parameters["immediatly"] = false;
445
+	public function jsonArrayDeferred($maskSelector, $url, $method="get", $parameters) {
446
+		$parameters["immediatly"]=false;
447 447
 		return $this->jsonArray($maskSelector, $url, $method, $parameters);
448 448
 	}
449 449
 
@@ -459,7 +459,7 @@  discard block
 block discarded – undo
459 459
 	 * @param array $parameters
460 460
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"jsCallback"=>NULL,"attr"=>"id","params"=>"{}","method"=>"get","rowClass"=>"_json","immediatly"=>true)
461 461
 	 */
462
-	public function jsonArrayOn($event, $element, $maskSelector, $url, $method = "get", $parameters = array()) {
462
+	public function jsonArrayOn($event, $element, $maskSelector, $url, $method="get", $parameters=array()) {
463 463
 		$this->setDefaultParameters($parameters, [
464 464
 			"preventDefault" => true,
465 465
 			"stopPropagation" => true,
@@ -479,8 +479,8 @@  discard block
 block discarded – undo
479 479
 	 * @param array $parameters
480 480
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
481 481
 	 */
482
-	public function getDeferred($url, $responseElement = "", $parameters = []) {
483
-		$parameters["immediatly"] = false;
482
+	public function getDeferred($url, $responseElement="", $parameters=[]) {
483
+		$parameters["immediatly"]=false;
484 484
 		return $this->_get($url, $responseElement, $parameters);
485 485
 	}
486 486
 
@@ -499,7 +499,7 @@  discard block
 block discarded – undo
499 499
 	 * @param array $parameters
500 500
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>null,"headers"=>null,"historize"=>false)
501 501
 	 */
502
-	public function getOn($event, $element, $url, $responseElement = "", $parameters = array()) {
502
+	public function getOn($event, $element, $url, $responseElement="", $parameters=array()) {
503 503
 		$this->setDefaultParameters($parameters, [
504 504
 			"preventDefault" => true,
505 505
 			"stopPropagation" => true,
@@ -523,7 +523,7 @@  discard block
 block discarded – undo
523 523
 	 * @param array $parameters
524 524
 	 *        	default : array("method"=>"get","preventDefault"=>true,"stopPropagation"=>true,"params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","jsCondition"=>NULL,"headers"=>null,"historize"=>false)
525 525
 	 */
526
-	public function ajaxOn($event, $element, $url, $responseElement = "", $parameters = array()) {
526
+	public function ajaxOn($event, $element, $url, $responseElement="", $parameters=array()) {
527 527
 		$this->setDefaultParameters($parameters, [
528 528
 			"preventDefault" => true,
529 529
 			"stopPropagation" => true,
@@ -546,7 +546,7 @@  discard block
 block discarded – undo
546 546
 	 * @param array $parameters
547 547
 	 *        	default : array("method"=>"get","preventDefault"=>true,"stopPropagation"=>true,"params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","jsCondition"=>NULL,"headers"=>null,"historize"=>false)
548 548
 	 */
549
-	public function ajaxOnClick($element, $url, $responseElement = "", $parameters = array()) {
549
+	public function ajaxOnClick($element, $url, $responseElement="", $parameters=array()) {
550 550
 		return $this->ajaxOn("click", $element, $url, $responseElement, $parameters);
551 551
 	}
552 552
 
@@ -563,7 +563,7 @@  discard block
 block discarded – undo
563 563
 	 * @param array $parameters
564 564
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","jsCondition"=>NULL,"headers"=>null,"historize"=>false)
565 565
 	 */
566
-	public function getOnClick($element, $url, $responseElement = "", $parameters = array()) {
566
+	public function getOnClick($element, $url, $responseElement="", $parameters=array()) {
567 567
 		return $this->getOn("click", $element, $url, $responseElement, $parameters);
568 568
 	}
569 569
 
@@ -578,15 +578,15 @@  discard block
 block discarded – undo
578 578
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"params"=>"{}","jsCallback"=>NULL,"attr"=>"href","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","jsCondition"=>NULL,"headers"=>null,"historize"=>true)
579 579
 	 * @return $this
580 580
 	 */
581
-	public function getHref($element, $responseElement = "", $parameters = array()) {
582
-		$parameters["attr"] = "href";
581
+	public function getHref($element, $responseElement="", $parameters=array()) {
582
+		$parameters["attr"]="href";
583 583
 		if (JString::isNull($responseElement)) {
584
-			$responseElement = '%$(self).attr("data-target")%';
584
+			$responseElement='%$(self).attr("data-target")%';
585 585
 		} else {
586
-			$responseElement = '%$(self).attr("data-target") || "' . $responseElement . '"%';
586
+			$responseElement='%$(self).attr("data-target") || "'.$responseElement.'"%';
587 587
 		}
588
-		if (! isset($parameters["historize"])) {
589
-			$parameters["historize"] = true;
588
+		if (!isset($parameters["historize"])) {
589
+			$parameters["historize"]=true;
590 590
 		}
591 591
 		return $this->getOnClick($element, "", $responseElement, $parameters);
592 592
 	}
@@ -602,21 +602,21 @@  discard block
 block discarded – undo
602 602
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"params"=>"{}","jsCallback"=>NULL,"attr"=>"href","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","jsCondition"=>NULL,"headers"=>null,"historize"=>true)
603 603
 	 * @return $this
604 604
 	 */
605
-	public function postHref($element, $responseElement = "", $parameters = array()) {
606
-		$parameters["attr"] = "href";
605
+	public function postHref($element, $responseElement="", $parameters=array()) {
606
+		$parameters["attr"]="href";
607 607
 		if (JString::isNull($responseElement)) {
608
-			$responseElement = '%$(this).attr("data-target")%';
608
+			$responseElement='%$(this).attr("data-target")%';
609 609
 		} else {
610
-			$responseElement = '%$(self).attr("data-target") || "' . $responseElement . '"%';
610
+			$responseElement='%$(self).attr("data-target") || "'.$responseElement.'"%';
611 611
 		}
612
-		if (! isset($parameters["historize"])) {
613
-			$parameters["historize"] = true;
612
+		if (!isset($parameters["historize"])) {
613
+			$parameters["historize"]=true;
614 614
 		}
615 615
 		return $this->postOnClick($element, "", "{}", $responseElement, $parameters);
616 616
 	}
617 617
 
618
-	private function _post($url, $params = "{}", $responseElement = "", $parameters = []) {
619
-		$parameters["params"] = $params;
618
+	private function _post($url, $params="{}", $responseElement="", $parameters=[]) {
619
+		$parameters["params"]=$params;
620 620
 		return $this->_ajax("POST", $url, $responseElement, $parameters);
621 621
 	}
622 622
 
@@ -632,7 +632,7 @@  discard block
 block discarded – undo
632 632
 	 * @param array $parameters
633 633
 	 *        	default : array("jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
634 634
 	 */
635
-	public function post($url, $params = "{}", $responseElement = "", $parameters = []) {
635
+	public function post($url, $params="{}", $responseElement="", $parameters=[]) {
636 636
 		return $this->_post($url, $params, $responseElement, $parameters);
637 637
 	}
638 638
 
@@ -649,8 +649,8 @@  discard block
 block discarded – undo
649 649
 	 * @param array $parameters
650 650
 	 *        	default : array("jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
651 651
 	 */
652
-	public function postDeferred($url, $params = "{}", $responseElement = "", $parameters = []) {
653
-		$parameters["immediatly"] = false;
652
+	public function postDeferred($url, $params="{}", $responseElement="", $parameters=[]) {
653
+		$parameters["immediatly"]=false;
654 654
 		return $this->_post($url, $params, $responseElement, $parameters);
655 655
 	}
656 656
 
@@ -669,7 +669,7 @@  discard block
 block discarded – undo
669 669
 	 * @param array $parameters
670 670
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
671 671
 	 */
672
-	public function postOn($event, $element, $url, $params = "{}", $responseElement = "", $parameters = array()) {
672
+	public function postOn($event, $element, $url, $params="{}", $responseElement="", $parameters=array()) {
673 673
 		$this->setDefaultParameters($parameters, [
674 674
 			"preventDefault" => true,
675 675
 			"stopPropagation" => true,
@@ -692,58 +692,58 @@  discard block
 block discarded – undo
692 692
 	 * @param array $parameters
693 693
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
694 694
 	 */
695
-	public function postOnClick($element, $url, $params = "{}", $responseElement = "", $parameters = array()) {
695
+	public function postOnClick($element, $url, $params="{}", $responseElement="", $parameters=array()) {
696 696
 		return $this->postOn("click", $element, $url, $params, $responseElement, $parameters);
697 697
 	}
698 698
 
699
-	private function _postForm($url, $form, $responseElement, $parameters = []) {
699
+	private function _postForm($url, $form, $responseElement, $parameters=[]) {
700 700
 		if (isset($this->params["ajax"])) {
701 701
 			extract($this->params["ajax"]);
702 702
 		}
703
-		$params = "{}";
704
-		$validation = false;
703
+		$params="{}";
704
+		$validation=false;
705 705
 		\extract($parameters);
706
-		$async = ($async) ? "true" : "false";
707
-		$jsCallback = isset($jsCallback) ? $jsCallback : "";
708
-		$retour = $this->_getAjaxUrl($url, $attr);
709
-		$retour .= "\n$('#" . $form . "').trigger('ajaxSubmit');";
710
-		if(!isset($contentType) || $contentType!='false'){
711
-			$retour .= "\nvar params=$('#" . $form . "').serialize();\n";
706
+		$async=($async) ? "true" : "false";
707
+		$jsCallback=isset($jsCallback) ? $jsCallback : "";
708
+		$retour=$this->_getAjaxUrl($url, $attr);
709
+		$retour.="\n$('#".$form."').trigger('ajaxSubmit');";
710
+		if (!isset($contentType) || $contentType!='false') {
711
+			$retour.="\nvar params=$('#".$form."').serialize();\n";
712 712
 			if (isset($params)) {
713
-				$retour .= "params+='&'+" . self::_correctParams($params) . ";\n";
713
+				$retour.="params+='&'+".self::_correctParams($params).";\n";
714 714
 			}
715
-		}else{
716
-			$retour .= "\nvar params=new FormData($('#" . $form . "')[0]);\n";
715
+		} else {
716
+			$retour.="\nvar params=new FormData($('#".$form."')[0]);\n";
717 717
 		}
718
-		$responseElement = $this->_getResponseElement($responseElement);
719
-		$retour .= "var self=this;\n";
720
-		if ($hasLoader === true) {
718
+		$responseElement=$this->_getResponseElement($responseElement);
719
+		$retour.="var self=this;\n";
720
+		if ($hasLoader===true) {
721 721
 			$this->addLoading($retour, $responseElement, $ajaxLoader);
722
-		} elseif ($hasLoader === "internal") {
723
-			$retour .= "\n$(this).addClass('loading');";
722
+		} elseif ($hasLoader==="internal") {
723
+			$retour.="\n$(this).addClass('loading');";
724 724
 		}
725
-		$ajaxParameters = [
725
+		$ajaxParameters=[
726 726
 			"url" => "url",
727 727
 			"method" => "'POST'",
728 728
 			"data" => "params",
729 729
 			"async" => $async
730 730
 		];
731 731
 		if (isset($headers)) {
732
-			$ajaxParameters["headers"] = $headers;
732
+			$ajaxParameters["headers"]=$headers;
733 733
 		}
734 734
 		$this->createAjaxParameters($ajaxParameters, $parameters);
735
-		$retour .= "$.ajax({" . $this->implodeAjaxParameters($ajaxParameters) . "}).done(function( data ) {\n";
736
-		$retour .= $this->_getOnAjaxDone($responseElement, $jqueryDone, $ajaxTransition, $jsCallback, $hasLoader) . "});\n";
735
+		$retour.="$.ajax({".$this->implodeAjaxParameters($ajaxParameters)."}).done(function( data ) {\n";
736
+		$retour.=$this->_getOnAjaxDone($responseElement, $jqueryDone, $ajaxTransition, $jsCallback, $hasLoader)."});\n";
737 737
 
738 738
 		if ($validation) {
739
-			$retour = "$('#" . $form . "').validate({submitHandler: function(form) {
740
-			" . $retour . "
739
+			$retour="$('#".$form."').validate({submitHandler: function(form) {
740
+			" . $retour."
741 741
 			}});\n";
742
-			$retour .= "$('#" . $form . "').submit();\n";
742
+			$retour.="$('#".$form."').submit();\n";
743 743
 		}
744
-		$retour = $this->_addJsCondition($jsCondition, $retour);
744
+		$retour=$this->_addJsCondition($jsCondition, $retour);
745 745
 		if ($immediatly)
746
-			$this->jquery_code_for_compile[] = $retour;
746
+			$this->jquery_code_for_compile[]=$retour;
747 747
 		return $retour;
748 748
 	}
749 749
 
@@ -759,8 +759,8 @@  discard block
 block discarded – undo
759 759
 	 * @param array $parameters
760 760
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
761 761
 	 */
762
-	public function postForm($url, $form, $responseElement, $parameters = []) {
763
-		$parameters["immediatly"] = true;
762
+	public function postForm($url, $form, $responseElement, $parameters=[]) {
763
+		$parameters["immediatly"]=true;
764 764
 		return $this->_postForm($url, $form, $responseElement, $parameters);
765 765
 	}
766 766
 
@@ -777,8 +777,8 @@  discard block
 block discarded – undo
777 777
 	 * @param array $parameters
778 778
 	 *        	default : array("params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>NULL,"headers"=>null,"historize"=>false)
779 779
 	 */
780
-	public function postFormDeferred($url, $form, $responseElement, $parameters = []) {
781
-		$parameters["immediatly"] = false;
780
+	public function postFormDeferred($url, $form, $responseElement, $parameters=[]) {
781
+		$parameters["immediatly"]=false;
782 782
 		return $this->_postForm($url, $form, $responseElement, $parameters);
783 783
 	}
784 784
 
@@ -795,7 +795,7 @@  discard block
 block discarded – undo
795 795
 	 * @param array $parameters
796 796
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"validation"=>false,"params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>null,"headers"=>null,"historize"=>false)
797 797
 	 */
798
-	public function postFormOn($event, $element, $url, $form, $responseElement = "", $parameters = array()) {
798
+	public function postFormOn($event, $element, $url, $form, $responseElement="", $parameters=array()) {
799 799
 		$this->setDefaultParameters($parameters, [
800 800
 			"preventDefault" => true,
801 801
 			"stopPropagation" => true,
@@ -816,7 +816,7 @@  discard block
 block discarded – undo
816 816
 	 * @param array $parameters
817 817
 	 *        	default : array("preventDefault"=>true,"stopPropagation"=>true,"validation"=>false,"params"=>"{}","jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"ajaxLoader"=>null,"immediatly"=>true,"jqueryDone"=>"html","ajaxTransition"=>null,"jsCondition"=>null,"headers"=>null,"historize"=>false)
818 818
 	 */
819
-	public function postFormOnClick($element, $url, $form, $responseElement = "", $parameters = array()) {
819
+	public function postFormOnClick($element, $url, $form, $responseElement="", $parameters=array()) {
820 820
 		return $this->postFormOn("click", $element, $url, $form, $responseElement, $parameters);
821 821
 	}
822 822
 }
Please login to merge, or discard this patch.