@@ -15,7 +15,7 @@ discard block |
||
15 | 15 | |
16 | 16 | protected $ajaxLoader='<span></span><span></span><span></span><span></span><span></span>'; |
17 | 17 | |
18 | - abstract public function _add_event($element, $js, $event, $preventDefault=false, $stopPropagation=false,$immediatly=true); |
|
18 | + abstract public function _add_event($element, $js, $event, $preventDefault=false, $stopPropagation=false, $immediatly=true); |
|
19 | 19 | protected function addLoading(&$retour, $responseElement) { |
20 | 20 | $loading_notifier='<div class="ajax-loader">'; |
21 | 21 | if ($this->ajaxLoader=='') { |
@@ -28,20 +28,20 @@ discard block |
||
28 | 28 | $retour.="\t\t$({$responseElement}).prepend('{$loading_notifier}');\n"; |
29 | 29 | } |
30 | 30 | |
31 | - public function _get($url, $params="{}", $responseElement="", $jsCallback=NULL, $attr="id", $hasLoader=true,$immediatly=false) { |
|
32 | - return $this->_ajax("get", $url,$params,$responseElement,$jsCallback,$attr,$hasLoader,$immediatly); |
|
31 | + public function _get($url, $params="{}", $responseElement="", $jsCallback=NULL, $attr="id", $hasLoader=true, $immediatly=false) { |
|
32 | + return $this->_ajax("get", $url, $params, $responseElement, $jsCallback, $attr, $hasLoader, $immediatly); |
|
33 | 33 | } |
34 | - public function _post($url, $params="{}", $responseElement="", $jsCallback=NULL, $attr="id", $hasLoader=true,$immediatly=false) { |
|
35 | - return $this->_ajax("post", $url,$params,$responseElement,$jsCallback,$attr,$hasLoader,$immediatly); |
|
34 | + public function _post($url, $params="{}", $responseElement="", $jsCallback=NULL, $attr="id", $hasLoader=true, $immediatly=false) { |
|
35 | + return $this->_ajax("post", $url, $params, $responseElement, $jsCallback, $attr, $hasLoader, $immediatly); |
|
36 | 36 | } |
37 | 37 | |
38 | - protected function _ajax($method,$url, $params="{}", $responseElement="", $jsCallback=NULL, $attr="id", $hasLoader=true,$immediatly=false) { |
|
39 | - if(JString::isNull($params)){$params="{}";} |
|
38 | + protected function _ajax($method, $url, $params="{}", $responseElement="", $jsCallback=NULL, $attr="id", $hasLoader=true, $immediatly=false) { |
|
39 | + if (JString::isNull($params)) {$params="{}"; } |
|
40 | 40 | $jsCallback=isset($jsCallback) ? $jsCallback : ""; |
41 | 41 | $retour=$this->_getAjaxUrl($url, $attr); |
42 | 42 | $responseElement=$this->_getResponseElement($responseElement); |
43 | 43 | $retour.="var self=this;\n"; |
44 | - if($hasLoader===true){ |
|
44 | + if ($hasLoader===true) { |
|
45 | 45 | $this->addLoading($retour, $responseElement); |
46 | 46 | } |
47 | 47 | $retour.="$.".$method."(url,".$params.").done(function( data ) {\n"; |
@@ -51,30 +51,30 @@ discard block |
||
51 | 51 | return $retour; |
52 | 52 | } |
53 | 53 | |
54 | - protected function _getAjaxUrl($url,$attr){ |
|
54 | + protected function _getAjaxUrl($url, $attr) { |
|
55 | 55 | $url=$this->_correctAjaxUrl($url); |
56 | 56 | $retour="url='".$url."';\n"; |
57 | 57 | $slash="/"; |
58 | - if(JString::endswith($url, "/")===true) |
|
58 | + if (JString::endswith($url, "/")===true) |
|
59 | 59 | $slash=""; |
60 | - if(JString::isNotNull($attr)){ |
|
60 | + if (JString::isNotNull($attr)) { |
|
61 | 61 | if ($attr==="value") |
62 | 62 | $retour.="url=url+'".$slash."'+$(this).val();\n"; |
63 | 63 | elseif ($attr==="html") |
64 | 64 | $retour.="url=url+'".$slash."'+$(this).html();\n"; |
65 | - elseif($attr!=null && $attr!=="") |
|
65 | + elseif ($attr!=null && $attr!=="") |
|
66 | 66 | $retour.="url=url+'".$slash."'+($(this).attr('".$attr."')||'');\n"; |
67 | 67 | } |
68 | 68 | return $retour; |
69 | 69 | } |
70 | 70 | |
71 | - protected function _getOnAjaxDone($responseElement,$jsCallback){ |
|
71 | + protected function _getOnAjaxDone($responseElement, $jsCallback) { |
|
72 | 72 | $retour=""; |
73 | 73 | if ($responseElement!=="") { |
74 | - if(JString::startswith($responseElement, "\"-")===true){ |
|
74 | + if (JString::startswith($responseElement, "\"-")===true) { |
|
75 | 75 | $responseElement=\str_replace("\"-", "\"", $responseElement); |
76 | 76 | $retour="\t$({$responseElement}).replaceWith( data );\n"; |
77 | - }else{ |
|
77 | + } else { |
|
78 | 78 | $retour="\t$({$responseElement}).html( data );\n"; |
79 | 79 | } |
80 | 80 | } |
@@ -82,7 +82,7 @@ discard block |
||
82 | 82 | return $retour; |
83 | 83 | } |
84 | 84 | |
85 | - protected function _getResponseElement($responseElement){ |
|
85 | + protected function _getResponseElement($responseElement) { |
|
86 | 86 | if ($responseElement!=="") { |
87 | 87 | $responseElement=Javascript::prep_value($responseElement); |
88 | 88 | } |
@@ -92,7 +92,7 @@ discard block |
||
92 | 92 | protected function _correctAjaxUrl($url) { |
93 | 93 | if ($url!=="/" && JString::endsWith($url, "/")===true) |
94 | 94 | $url=substr($url, 0, strlen($url)-1); |
95 | - if (strncmp($url, 'http://', 7)!=0&&strncmp($url, 'https://', 8)!=0) { |
|
95 | + if (strncmp($url, 'http://', 7)!=0 && strncmp($url, 'https://', 8)!=0) { |
|
96 | 96 | $url=$this->jsUtils->getUrl($url); |
97 | 97 | } |
98 | 98 | return $url; |
@@ -106,7 +106,7 @@ discard block |
||
106 | 106 | * @param string $jsCallback javascript code to execute after the request |
107 | 107 | * @param boolean $immediatly |
108 | 108 | */ |
109 | - public function _json($url, $method="get", $params="{}", $jsCallback=NULL, $attr="id", $context="document",$immediatly=false) { |
|
109 | + public function _json($url, $method="get", $params="{}", $jsCallback=NULL, $attr="id", $context="document", $immediatly=false) { |
|
110 | 110 | $jsCallback=isset($jsCallback) ? $jsCallback : ""; |
111 | 111 | $retour=$this->_getAjaxUrl($url, $attr); |
112 | 112 | $retour.="$.{$method}(url,".$params.").done(function( data ) {\n"; |
@@ -127,7 +127,7 @@ discard block |
||
127 | 127 | * @param string $url the request address |
128 | 128 | * @param array $parameters default : array("preventDefault"=>true,"stopPropagation"=>true,"jsCallback"=>NULL,"attr"=>"id","params"=>"{}","method"=>"get","immediatly"=>true) |
129 | 129 | */ |
130 | - public function _jsonOn($event,$element, $url,$parameters=array()) { |
|
130 | + public function _jsonOn($event, $element, $url, $parameters=array()) { |
|
131 | 131 | $preventDefault=true; |
132 | 132 | $stopPropagation=true; |
133 | 133 | $jsCallback=null; |
@@ -137,7 +137,7 @@ discard block |
||
137 | 137 | $params="{}"; |
138 | 138 | $immediatly=true; |
139 | 139 | extract($parameters); |
140 | - return $this->_add_event($element, $this->_json($url,$method, $params,$jsCallback, $attr,$context), $event, $preventDefault, $stopPropagation,$immediatly); |
|
140 | + return $this->_add_event($element, $this->_json($url, $method, $params, $jsCallback, $attr, $context), $event, $preventDefault, $stopPropagation, $immediatly); |
|
141 | 141 | } |
142 | 142 | |
143 | 143 | /** |
@@ -149,19 +149,19 @@ discard block |
||
149 | 149 | * @param string $context jquery DOM element, array container. |
150 | 150 | * @param boolean $immediatly |
151 | 151 | */ |
152 | - public function _jsonArray($maskSelector, $url, $method="get", $params="{}", $jsCallback=NULL, $attr="id", $context=null,$immediatly=false) { |
|
152 | + public function _jsonArray($maskSelector, $url, $method="get", $params="{}", $jsCallback=NULL, $attr="id", $context=null, $immediatly=false) { |
|
153 | 153 | $jsCallback=isset($jsCallback) ? $jsCallback : ""; |
154 | 154 | $retour=$this->_getAjaxUrl($url, $attr); |
155 | - if($context===null){ |
|
155 | + if ($context===null) { |
|
156 | 156 | $appendTo="\t\tnewElm.appendTo($('".$maskSelector."').parent());\n"; |
157 | - $newElm = "$('#'+newId)"; |
|
158 | - }else{ |
|
157 | + $newElm="$('#'+newId)"; |
|
158 | + } else { |
|
159 | 159 | $appendTo="\t\tnewElm.appendTo(".$context.");\n"; |
160 | - $newElm = $context.".find('#'+newId)"; |
|
160 | + $newElm=$context.".find('#'+newId)"; |
|
161 | 161 | } |
162 | 162 | $retour.="var self = $(this);\n$.{$method}(url,".$params.").done(function( data ) {\n"; |
163 | 163 | $retour.="\tdata=$.parseJSON(data);$.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();newElm.attr('id',newId);\n"; |
164 | - $retour.= $appendTo; |
|
164 | + $retour.=$appendTo; |
|
165 | 165 | $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"; |
166 | 166 | $retour.="\t$(document).trigger('jsonReady',[data]);\n"; |
167 | 167 | $retour.="\t".$jsCallback."\n"."});\n"; |
@@ -176,26 +176,26 @@ discard block |
||
176 | 176 | * @param string $url the request address |
177 | 177 | * @param array $parameters default : array("preventDefault"=>true,"stopPropagation"=>true,"jsCallback"=>NULL,"attr"=>"id","params"=>"{}","method"=>"get", "context"=>null) |
178 | 178 | */ |
179 | - public function _jsonArrayOn($event,$element, $maskSelector,$url,$parameters=array()) { |
|
179 | + public function _jsonArrayOn($event, $element, $maskSelector, $url, $parameters=array()) { |
|
180 | 180 | $preventDefault=true; |
181 | 181 | $stopPropagation=true; |
182 | 182 | $jsCallback=null; |
183 | 183 | $attr="id"; |
184 | 184 | $method="get"; |
185 | - $context = null; |
|
185 | + $context=null; |
|
186 | 186 | $params="{}"; |
187 | 187 | $immediatly=true; |
188 | 188 | extract($parameters); |
189 | - return $this->_add_event($element, $this->_jsonArray($maskSelector,$url,$method, $params,$jsCallback, $attr, $context), $event, $preventDefault, $stopPropagation,$immediatly); |
|
189 | + return $this->_add_event($element, $this->_jsonArray($maskSelector, $url, $method, $params, $jsCallback, $attr, $context), $event, $preventDefault, $stopPropagation, $immediatly); |
|
190 | 190 | } |
191 | 191 | |
192 | - public function _postForm($url, $form, $responseElement, $validation=false, $jsCallback=NULL, $attr="id", $hasLoader=true,$immediatly=false) { |
|
192 | + public function _postForm($url, $form, $responseElement, $validation=false, $jsCallback=NULL, $attr="id", $hasLoader=true, $immediatly=false) { |
|
193 | 193 | $jsCallback=isset($jsCallback) ? $jsCallback : ""; |
194 | 194 | $retour=$this->_getAjaxUrl($url, $attr); |
195 | 195 | $retour.="\nvar params=$('#".$form."').serialize();\n"; |
196 | 196 | $responseElement=$this->_getResponseElement($responseElement); |
197 | 197 | $retour.="var self=this;\n"; |
198 | - if($hasLoader===true){ |
|
198 | + if ($hasLoader===true) { |
|
199 | 199 | $this->addLoading($retour, $responseElement); |
200 | 200 | } |
201 | 201 | $retour.="$.post(url,params).done(function( data ) {\n"; |
@@ -222,7 +222,7 @@ discard block |
||
222 | 222 | * @param string $responseElement |
223 | 223 | * @param array $parameters default : array("preventDefault"=>true,"stopPropagation"=>true,"jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true) |
224 | 224 | */ |
225 | - public function _getOn($event,$element, $url, $params="{}", $responseElement="", $parameters=array()) { |
|
225 | + public function _getOn($event, $element, $url, $params="{}", $responseElement="", $parameters=array()) { |
|
226 | 226 | $preventDefault=true; |
227 | 227 | $stopPropagation=true; |
228 | 228 | $jsCallback=null; |
@@ -230,7 +230,7 @@ discard block |
||
230 | 230 | $hasLoader=true; |
231 | 231 | $immediatly=true; |
232 | 232 | extract($parameters); |
233 | - return $this->_add_event($element, $this->_get($url, $params, $responseElement, $jsCallback, $attr,$hasLoader), $event, $preventDefault, $stopPropagation,$immediatly); |
|
233 | + return $this->_add_event($element, $this->_get($url, $params, $responseElement, $jsCallback, $attr, $hasLoader), $event, $preventDefault, $stopPropagation, $immediatly); |
|
234 | 234 | } |
235 | 235 | |
236 | 236 | /** |
@@ -243,7 +243,7 @@ discard block |
||
243 | 243 | * @param string $responseElement |
244 | 244 | * @param array $parameters default : array("preventDefault"=>true,"stopPropagation"=>true,"jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true) |
245 | 245 | */ |
246 | - public function _postOn($event,$element, $url, $params="{}", $responseElement="", $parameters=array()) { |
|
246 | + public function _postOn($event, $element, $url, $params="{}", $responseElement="", $parameters=array()) { |
|
247 | 247 | $preventDefault=true; |
248 | 248 | $stopPropagation=true; |
249 | 249 | $jsCallback=null; |
@@ -251,7 +251,7 @@ discard block |
||
251 | 251 | $hasLoader=true; |
252 | 252 | $immediatly=true; |
253 | 253 | extract($parameters); |
254 | - return $this->_add_event($element, $this->_post($url, $params, $responseElement, $jsCallback, $attr,$hasLoader), $event, $preventDefault, $stopPropagation,$immediatly); |
|
254 | + return $this->_add_event($element, $this->_post($url, $params, $responseElement, $jsCallback, $attr, $hasLoader), $event, $preventDefault, $stopPropagation, $immediatly); |
|
255 | 255 | } |
256 | 256 | |
257 | 257 | /** |
@@ -264,7 +264,7 @@ discard block |
||
264 | 264 | * @param string $responseElement |
265 | 265 | * @param array $parameters default : array("preventDefault"=>true,"stopPropagation"=>true,"validation"=>false,"jsCallback"=>NULL,"attr"=>"id","hasLoader"=>true,"immediatly"=>true) |
266 | 266 | */ |
267 | - public function _postFormOn($event,$element, $url, $form, $responseElement="", $parameters=array()) { |
|
267 | + public function _postFormOn($event, $element, $url, $form, $responseElement="", $parameters=array()) { |
|
268 | 268 | $preventDefault=true; |
269 | 269 | $stopPropagation=true; |
270 | 270 | $validation=false; |
@@ -273,6 +273,6 @@ discard block |
||
273 | 273 | $hasLoader=true; |
274 | 274 | $immediatly=true; |
275 | 275 | extract($parameters); |
276 | - return $this->_add_event($element, $this->_postForm($url, $form, $responseElement, $validation, $jsCallback, $attr,$hasLoader), $event, $preventDefault, $stopPropagation,$immediatly); |
|
276 | + return $this->_add_event($element, $this->_postForm($url, $form, $responseElement, $validation, $jsCallback, $attr, $hasLoader), $event, $preventDefault, $stopPropagation, $immediatly); |
|
277 | 277 | } |
278 | 278 | } |
279 | 279 | \ No newline at end of file |
@@ -10,7 +10,7 @@ discard block |
||
10 | 10 | */ |
11 | 11 | |
12 | 12 | trait JqueryEventsTrait { |
13 | - abstract public function _add_event($element, $js, $event, $preventDefault=false, $stopPropagation=false,$immediatly=true); |
|
13 | + abstract public function _add_event($element, $js, $event, $preventDefault=false, $stopPropagation=false, $immediatly=true); |
|
14 | 14 | |
15 | 15 | /** |
16 | 16 | * Blur |
@@ -52,7 +52,7 @@ discard block |
||
52 | 52 | */ |
53 | 53 | public function _click($element='this', $js=array(), $ret_false=TRUE) { |
54 | 54 | if (!is_array($js)) { |
55 | - $js=array ( |
|
55 | + $js=array( |
|
56 | 56 | $js |
57 | 57 | ); |
58 | 58 | } |
@@ -15,18 +15,18 @@ discard block |
||
15 | 15 | private $_hasIcon=false; |
16 | 16 | |
17 | 17 | abstract protected function addToPropertyCtrl($name, $value, $typeCtrl); |
18 | - abstract public function addContent($content,$before=false); |
|
18 | + abstract public function addContent($content, $before=false); |
|
19 | 19 | |
20 | - public function addIcon($icon,$direction=Direction::LEFT){ |
|
21 | - if($this->_hasIcon===false){ |
|
20 | + public function addIcon($icon, $direction=Direction::LEFT) { |
|
21 | + if ($this->_hasIcon===false) { |
|
22 | 22 | $iconO=$icon; |
23 | - if(\is_string($icon)){ |
|
23 | + if (\is_string($icon)) { |
|
24 | 24 | $iconO=new HtmlIcon("icon-".$this->identifier, $icon); |
25 | 25 | } |
26 | 26 | $this->addToPropertyCtrl("class", $direction." icon", Direction::getConstantValues("icon")); |
27 | - $this->addContent($iconO,$direction===Direction::LEFT); |
|
27 | + $this->addContent($iconO, $direction===Direction::LEFT); |
|
28 | 28 | $this->_hasIcon=true; |
29 | - }else{ |
|
29 | + } else { |
|
30 | 30 | $iconO=$this->getIcon(); |
31 | 31 | $iconO->setIcon($icon); |
32 | 32 | $this->addToPropertyCtrl("class", $direction." icon", Direction::getConstantValues("icon")); |
@@ -34,10 +34,10 @@ discard block |
||
34 | 34 | return $iconO; |
35 | 35 | } |
36 | 36 | |
37 | - public function getIcon(){ |
|
38 | - if(\is_array($this->content)){ |
|
39 | - foreach ($this->content as $item){ |
|
40 | - if($item instanceof HtmlIcon) |
|
37 | + public function getIcon() { |
|
38 | + if (\is_array($this->content)) { |
|
39 | + foreach ($this->content as $item) { |
|
40 | + if ($item instanceof HtmlIcon) |
|
41 | 41 | return $item; |
42 | 42 | } |
43 | 43 | } |
@@ -15,46 +15,46 @@ discard block |
||
15 | 15 | * @property string $identifier |
16 | 16 | */ |
17 | 17 | trait FieldsTrait { |
18 | - abstract public function addFields($fields=NULL,$label=NULL); |
|
18 | + abstract public function addFields($fields=NULL, $label=NULL); |
|
19 | 19 | abstract public function addItem($item); |
20 | 20 | |
21 | - protected function createItem($value){ |
|
22 | - if(\is_array($value)){ |
|
23 | - $itemO=new HtmlFormInput(JArray::getDefaultValue($value, "id",""),JArray::getDefaultValue($value, "label",null),JArray::getDefaultValue($value, "type", "text"),JArray::getDefaultValue($value, "value",""),JArray::getDefaultValue($value, "placeholder",JArray::getDefaultValue($value, "label",null))); |
|
21 | + protected function createItem($value) { |
|
22 | + if (\is_array($value)) { |
|
23 | + $itemO=new HtmlFormInput(JArray::getDefaultValue($value, "id", ""), JArray::getDefaultValue($value, "label", null), JArray::getDefaultValue($value, "type", "text"), JArray::getDefaultValue($value, "value", ""), JArray::getDefaultValue($value, "placeholder", JArray::getDefaultValue($value, "label", null))); |
|
24 | 24 | return $itemO; |
25 | - }elseif(\is_object($value)){ |
|
25 | + }elseif (\is_object($value)) { |
|
26 | 26 | $itemO=new HtmlFormField("field-".$this->identifier, $value); |
27 | 27 | return $itemO; |
28 | - }else |
|
28 | + } else |
|
29 | 29 | return new HtmlFormInput($value); |
30 | 30 | } |
31 | 31 | |
32 | - protected function createCondition($value){ |
|
32 | + protected function createCondition($value) { |
|
33 | 33 | return \is_object($value)===false || $value instanceof \Ajax\semantic\html\elements\HtmlInput; |
34 | 34 | } |
35 | 35 | |
36 | - public function addInputs($inputs,$fieldslabel=null){ |
|
36 | + public function addInputs($inputs, $fieldslabel=null) { |
|
37 | 37 | $fields=array(); |
38 | - foreach ($inputs as $input){ |
|
38 | + foreach ($inputs as $input) { |
|
39 | 39 | \extract($input); |
40 | - $f=new HtmlFormInput("",""); |
|
40 | + $f=new HtmlFormInput("", ""); |
|
41 | 41 | $f->fromArray($input); |
42 | 42 | $fields[]=$f; |
43 | 43 | } |
44 | - return $this->addFields($fields,$fieldslabel); |
|
44 | + return $this->addFields($fields, $fieldslabel); |
|
45 | 45 | } |
46 | 46 | |
47 | - public function addFieldRule($index,$type,$prompt=NULL,$value=NULL){ |
|
47 | + public function addFieldRule($index, $type, $prompt=NULL, $value=NULL) { |
|
48 | 48 | $field=$this->getItem($index); |
49 | - if(isset($field)){ |
|
50 | - $field->addRule($type,$prompt,$value); |
|
49 | + if (isset($field)) { |
|
50 | + $field->addRule($type, $prompt, $value); |
|
51 | 51 | } |
52 | 52 | return $this; |
53 | 53 | } |
54 | 54 | |
55 | - public function addFieldRules($index,$rules){ |
|
55 | + public function addFieldRules($index, $rules) { |
|
56 | 56 | $field=$this->getItem($index); |
57 | - if(isset($field)){ |
|
57 | + if (isset($field)) { |
|
58 | 58 | $field->addRules($rules); |
59 | 59 | } |
60 | 60 | return $this; |
@@ -68,8 +68,8 @@ discard block |
||
68 | 68 | * @param boolean $multiple |
69 | 69 | * @return \Ajax\common\html\HtmlDoubleElement |
70 | 70 | */ |
71 | - public function addDropdown($identifier,$items=array(), $label=NULL,$value=NULL,$multiple=false){ |
|
72 | - return $this->addItem(new HtmlFormDropdown($identifier,$items,$label,$value,$multiple)); |
|
71 | + public function addDropdown($identifier, $items=array(), $label=NULL, $value=NULL, $multiple=false) { |
|
72 | + return $this->addItem(new HtmlFormDropdown($identifier, $items, $label, $value, $multiple)); |
|
73 | 73 | } |
74 | 74 | |
75 | 75 | /** |
@@ -80,23 +80,23 @@ discard block |
||
80 | 80 | * @param string $placeholder |
81 | 81 | * @return HtmlFormInput |
82 | 82 | */ |
83 | - public function addInput($identifier, $label=NULL,$type="text",$value=NULL,$placeholder=NULL){ |
|
84 | - return $this->addItem(new HtmlFormInput($identifier,$label,$type,$value,$placeholder)); |
|
83 | + public function addInput($identifier, $label=NULL, $type="text", $value=NULL, $placeholder=NULL) { |
|
84 | + return $this->addItem(new HtmlFormInput($identifier, $label, $type, $value, $placeholder)); |
|
85 | 85 | } |
86 | 86 | |
87 | - public function addPassword($identifier, $label=NULL){ |
|
88 | - return $this->addItem(new HtmlFormInput($identifier,$label,"password","","")); |
|
87 | + public function addPassword($identifier, $label=NULL) { |
|
88 | + return $this->addItem(new HtmlFormInput($identifier, $label, "password", "", "")); |
|
89 | 89 | } |
90 | 90 | |
91 | - public function addButton($identifier,$value,$cssStyle=NULL,$onClick=NULL){ |
|
92 | - return $this->addItem(new HtmlButton($identifier,$value,$cssStyle,$onClick)); |
|
91 | + public function addButton($identifier, $value, $cssStyle=NULL, $onClick=NULL) { |
|
92 | + return $this->addItem(new HtmlButton($identifier, $value, $cssStyle, $onClick)); |
|
93 | 93 | } |
94 | 94 | |
95 | - public function addCheckbox($identifier, $label=NULL,$value=NULL,$type=NULL){ |
|
96 | - return $this->addItem(new HtmlFormCheckbox($identifier,$label,$value,$type)); |
|
95 | + public function addCheckbox($identifier, $label=NULL, $value=NULL, $type=NULL) { |
|
96 | + return $this->addItem(new HtmlFormCheckbox($identifier, $label, $value, $type)); |
|
97 | 97 | } |
98 | 98 | |
99 | - public function addRadio($identifier, $name,$label=NULL,$value=NULL){ |
|
100 | - return $this->addItem(new HtmlFormRadio($identifier,$name,$label,$value)); |
|
99 | + public function addRadio($identifier, $name, $label=NULL, $value=NULL) { |
|
100 | + return $this->addItem(new HtmlFormRadio($identifier, $name, $label, $value)); |
|
101 | 101 | } |
102 | 102 | } |
103 | 103 | \ No newline at end of file |
@@ -25,7 +25,7 @@ |
||
25 | 25 | } |
26 | 26 | |
27 | 27 | public function setDisabled($disable=true) { |
28 | - if($disable) |
|
28 | + if ($disable) |
|
29 | 29 | $this->addState(State::DISABLED); |
30 | 30 | return $this; |
31 | 31 | } |
@@ -19,33 +19,33 @@ |
||
19 | 19 | class DataElement extends Widget { |
20 | 20 | |
21 | 21 | public function __construct($identifier, $modelInstance=NULL) { |
22 | - parent::__construct($identifier, null,$modelInstance); |
|
23 | - $this->_init(new InstanceViewer($identifier), "table", new HtmlTable($identifier, 0,2), false); |
|
22 | + parent::__construct($identifier, null, $modelInstance); |
|
23 | + $this->_init(new InstanceViewer($identifier), "table", new HtmlTable($identifier, 0, 2), false); |
|
24 | 24 | $this->content["table"]->setDefinition(); |
25 | 25 | } |
26 | 26 | |
27 | - public function compile(JsUtils $js=NULL,&$view=NULL){ |
|
27 | + public function compile(JsUtils $js=NULL, &$view=NULL) { |
|
28 | 28 | $this->_instanceViewer->setInstance($this->_modelInstance); |
29 | 29 | |
30 | 30 | $table=$this->content["table"]; |
31 | 31 | $this->_generateContent($table); |
32 | 32 | |
33 | - if(isset($this->_toolbar)){ |
|
33 | + if (isset($this->_toolbar)) { |
|
34 | 34 | $this->_setToolbarPosition($table); |
35 | 35 | } |
36 | - $this->content=JArray::sortAssociative($this->content, [PositionInTable::BEFORETABLE,"table",PositionInTable::AFTERTABLE]); |
|
37 | - return parent::compile($js,$view); |
|
36 | + $this->content=JArray::sortAssociative($this->content, [PositionInTable::BEFORETABLE, "table", PositionInTable::AFTERTABLE]); |
|
37 | + return parent::compile($js, $view); |
|
38 | 38 | } |
39 | 39 | |
40 | 40 | /** |
41 | 41 | * @param HtmlTable $table |
42 | 42 | */ |
43 | - protected function _generateContent($table){ |
|
43 | + protected function _generateContent($table) { |
|
44 | 44 | $captions=$this->_instanceViewer->getCaptions(); |
45 | - $values= $this->_instanceViewer->getValues(); |
|
45 | + $values=$this->_instanceViewer->getValues(); |
|
46 | 46 | $count=$this->_instanceViewer->count(); |
47 | - for($i=0;$i<$count;$i++){ |
|
48 | - $table->addRow([$captions[$i],$values[$i]]); |
|
47 | + for ($i=0; $i<$count; $i++) { |
|
48 | + $table->addRow([$captions[$i], $values[$i]]); |
|
49 | 49 | } |
50 | 50 | } |
51 | 51 |
@@ -9,41 +9,41 @@ |
||
9 | 9 | class FormInstanceViewer extends InstanceViewer { |
10 | 10 | protected $separators; |
11 | 11 | |
12 | - public function __construct($identifier,$instance=NULL, $captions=NULL) { |
|
13 | - parent::__construct($identifier,$instance=NULL, $captions=NULL); |
|
12 | + public function __construct($identifier, $instance=NULL, $captions=NULL) { |
|
13 | + parent::__construct($identifier, $instance=NULL, $captions=NULL); |
|
14 | 14 | $this->separators=[-1]; |
15 | - $this->defaultValueFunction=function($name,$value,$index){ |
|
15 | + $this->defaultValueFunction=function($name, $value, $index) { |
|
16 | 16 | $caption=$this->getCaption($index); |
17 | - $input=new HtmlFormInput($this->widgetIdentifier."-".$name,$caption,"text",$value); |
|
17 | + $input=new HtmlFormInput($this->widgetIdentifier."-".$name, $caption, "text", $value); |
|
18 | 18 | $input->setName($name); |
19 | 19 | return $input; |
20 | 20 | }; |
21 | 21 | } |
22 | 22 | |
23 | - protected function _beforeAddProperty($index,&$field){ |
|
24 | - if(JString::endswith($field, "\n")===true){ |
|
23 | + protected function _beforeAddProperty($index, &$field) { |
|
24 | + if (JString::endswith($field, "\n")===true) { |
|
25 | 25 | $this->addSeparatorAfter($index); |
26 | 26 | } |
27 | - if($index>1 && JString::startswith($field, "\n")===true){ |
|
27 | + if ($index>1 && JString::startswith($field, "\n")===true) { |
|
28 | 28 | $this->addSeparatorAfter($index-1); |
29 | 29 | } |
30 | 30 | $field=\str_replace("\n", "", $field); |
31 | 31 | } |
32 | 32 | |
33 | - public function getFieldName($index){ |
|
33 | + public function getFieldName($index) { |
|
34 | 34 | $property=$this->getProperty($index); |
35 | - if($property instanceof \ReflectionProperty){ |
|
35 | + if ($property instanceof \ReflectionProperty) { |
|
36 | 36 | $result=$property->getName(); |
37 | - }elseif(\is_callable($property)){ |
|
37 | + }elseif (\is_callable($property)) { |
|
38 | 38 | $result=$this->visibleProperties[$index]; |
39 | - }else{ |
|
39 | + } else { |
|
40 | 40 | $result=$property; |
41 | 41 | } |
42 | 42 | return $result; |
43 | 43 | } |
44 | 44 | |
45 | - public function addSeparatorAfter($fieldNum){ |
|
46 | - if(\array_search($fieldNum, $this->separators)===false) |
|
45 | + public function addSeparatorAfter($fieldNum) { |
|
46 | + if (\array_search($fieldNum, $this->separators)===false) |
|
47 | 47 | $this->separators[]=$fieldNum; |
48 | 48 | return $this; |
49 | 49 | } |
@@ -17,165 +17,165 @@ discard block |
||
17 | 17 | |
18 | 18 | public static $index=0; |
19 | 19 | |
20 | - public function __construct($identifier,$instance=NULL,$captions=NULL){ |
|
20 | + public function __construct($identifier, $instance=NULL, $captions=NULL) { |
|
21 | 21 | $this->widgetIdentifier=$identifier; |
22 | 22 | $this->values=[]; |
23 | 23 | $this->afterCompile=[]; |
24 | - if(isset($instance)) |
|
24 | + if (isset($instance)) |
|
25 | 25 | $this->setInstance($instance); |
26 | 26 | $this->setCaptions($captions); |
27 | 27 | $this->captionCallback=NULL; |
28 | - $this->defaultValueFunction=function($name,$value){return $value;}; |
|
28 | + $this->defaultValueFunction=function($name, $value) {return $value; }; |
|
29 | 29 | } |
30 | 30 | |
31 | - public function getValues(){ |
|
31 | + public function getValues() { |
|
32 | 32 | $values=[]; |
33 | 33 | $index=0; |
34 | 34 | $count=$this->count(); |
35 | - while($index<$count){ |
|
35 | + while ($index<$count) { |
|
36 | 36 | $values[]=$this->getValue($index++); |
37 | 37 | } |
38 | 38 | return $values; |
39 | 39 | } |
40 | 40 | |
41 | - public function getIdentifier(){ |
|
41 | + public function getIdentifier() { |
|
42 | 42 | $value=self::$index; |
43 | - if(isset($this->values["identifier"])) |
|
44 | - $value=$this->values["identifier"](self::$index,$this->instance); |
|
43 | + if (isset($this->values["identifier"])) |
|
44 | + $value=$this->values["identifier"](self::$index, $this->instance); |
|
45 | 45 | return $value; |
46 | 46 | } |
47 | 47 | |
48 | - public function getValue($index){ |
|
48 | + public function getValue($index) { |
|
49 | 49 | $property=$this->properties[$index]; |
50 | 50 | return $this->_getValue($property, $index); |
51 | 51 | } |
52 | 52 | |
53 | - protected function _beforeAddProperty($index,&$field){ |
|
53 | + protected function _beforeAddProperty($index, &$field) { |
|
54 | 54 | |
55 | 55 | } |
56 | 56 | |
57 | - protected function _getDefaultValue($name,$value,$index){ |
|
57 | + protected function _getDefaultValue($name, $value, $index) { |
|
58 | 58 | $func=$this->defaultValueFunction; |
59 | - return $func($name,$value,$index); |
|
59 | + return $func($name, $value, $index); |
|
60 | 60 | } |
61 | 61 | |
62 | - protected function _getValue($property,$index){ |
|
63 | - if($property instanceof \ReflectionProperty){ |
|
62 | + protected function _getValue($property, $index) { |
|
63 | + if ($property instanceof \ReflectionProperty) { |
|
64 | 64 | $property->setAccessible(true); |
65 | 65 | $value=$property->getValue($this->instance); |
66 | - if(isset($this->values[$index])){ |
|
67 | - $value= $this->values[$index]($value,$this->instance,$index); |
|
68 | - }else{ |
|
69 | - $value=$this->_getDefaultValue($property->getName(),$value, $index); |
|
66 | + if (isset($this->values[$index])) { |
|
67 | + $value=$this->values[$index]($value, $this->instance, $index); |
|
68 | + } else { |
|
69 | + $value=$this->_getDefaultValue($property->getName(), $value, $index); |
|
70 | 70 | } |
71 | - }else{ |
|
72 | - if(\is_callable($property)) |
|
71 | + } else { |
|
72 | + if (\is_callable($property)) |
|
73 | 73 | $value=$property($this->instance); |
74 | - elseif(\is_array($property)){ |
|
75 | - $values=\array_map(function($v) use ($index){return $this->_getValue($v, $index);}, $property); |
|
74 | + elseif (\is_array($property)) { |
|
75 | + $values=\array_map(function($v) use ($index){return $this->_getValue($v, $index); }, $property); |
|
76 | 76 | $value=\implode("", $values); |
77 | - }else{ |
|
78 | - if(isset($this->values[$index])){ |
|
79 | - $value= $this->values[$index]($property,$this->instance,$index); |
|
80 | - }else{ |
|
77 | + } else { |
|
78 | + if (isset($this->values[$index])) { |
|
79 | + $value=$this->values[$index]($property, $this->instance, $index); |
|
80 | + } else { |
|
81 | 81 | $value=$property; |
82 | 82 | } |
83 | 83 | } |
84 | 84 | } |
85 | - if(isset($this->afterCompile[$index])){ |
|
86 | - if(\is_callable($this->afterCompile[$index])){ |
|
87 | - $this->afterCompile[$index]($value,$this->instance,$index); |
|
85 | + if (isset($this->afterCompile[$index])) { |
|
86 | + if (\is_callable($this->afterCompile[$index])) { |
|
87 | + $this->afterCompile[$index]($value, $this->instance, $index); |
|
88 | 88 | } |
89 | 89 | } |
90 | 90 | return $value; |
91 | 91 | } |
92 | 92 | |
93 | - public function insertField($index,$field){ |
|
94 | - array_splice( $this->visibleProperties, $index, 0, $field ); |
|
93 | + public function insertField($index, $field) { |
|
94 | + array_splice($this->visibleProperties, $index, 0, $field); |
|
95 | 95 | return $this; |
96 | 96 | } |
97 | 97 | |
98 | - public function insertInField($index,$field){ |
|
98 | + public function insertInField($index, $field) { |
|
99 | 99 | $vb=$this->visibleProperties; |
100 | - if(isset($vb[$index])){ |
|
101 | - if(\is_array($vb[$index])){ |
|
100 | + if (isset($vb[$index])) { |
|
101 | + if (\is_array($vb[$index])) { |
|
102 | 102 | $this->visibleProperties[$index][]=$field; |
103 | - }else{ |
|
104 | - $this->visibleProperties[$index]=[$vb[$index],$field]; |
|
103 | + } else { |
|
104 | + $this->visibleProperties[$index]=[$vb[$index], $field]; |
|
105 | 105 | } |
106 | - }else{ |
|
106 | + } else { |
|
107 | 107 | return $this->insertField($index, $field); |
108 | 108 | } |
109 | 109 | return $this; |
110 | 110 | } |
111 | 111 | |
112 | - public function addField($field){ |
|
112 | + public function addField($field) { |
|
113 | 113 | $this->visibleProperties[]=$field; |
114 | 114 | return $this; |
115 | 115 | } |
116 | 116 | |
117 | - public function count(){ |
|
117 | + public function count() { |
|
118 | 118 | return \sizeof($this->properties); |
119 | 119 | } |
120 | 120 | |
121 | - public function visiblePropertiesCount(){ |
|
121 | + public function visiblePropertiesCount() { |
|
122 | 122 | return \sizeof($this->visibleProperties); |
123 | 123 | } |
124 | 124 | |
125 | - public function getProperty($index){ |
|
125 | + public function getProperty($index) { |
|
126 | 126 | return $this->properties[$index]; |
127 | 127 | } |
128 | 128 | |
129 | - protected function showableProperty(\ReflectionProperty $rProperty){ |
|
130 | - return JString::startswith($rProperty->getName(),"_")===false; |
|
129 | + protected function showableProperty(\ReflectionProperty $rProperty) { |
|
130 | + return JString::startswith($rProperty->getName(), "_")===false; |
|
131 | 131 | } |
132 | 132 | |
133 | 133 | public function setInstance($instance) { |
134 | - if(\is_string($instance)){ |
|
134 | + if (\is_string($instance)) { |
|
135 | 135 | $instance=new $instance(); |
136 | 136 | } |
137 | 137 | $this->instance=$instance; |
138 | 138 | $this->properties=[]; |
139 | 139 | $this->reflect=new \ReflectionClass($instance); |
140 | - if(\sizeof($this->visibleProperties)===0){ |
|
140 | + if (\sizeof($this->visibleProperties)===0) { |
|
141 | 141 | $this->properties=$this->getDefaultProperties(); |
142 | - }else{ |
|
143 | - foreach ($this->visibleProperties as $property){ |
|
142 | + } else { |
|
143 | + foreach ($this->visibleProperties as $property) { |
|
144 | 144 | $this->setInstanceProperty($property); |
145 | 145 | } |
146 | 146 | } |
147 | 147 | return $this; |
148 | 148 | } |
149 | 149 | |
150 | - private function setInstanceProperty($property){ |
|
151 | - if(\is_callable($property)){ |
|
150 | + private function setInstanceProperty($property) { |
|
151 | + if (\is_callable($property)) { |
|
152 | 152 | $this->properties[]=$property; |
153 | - }elseif(\is_string($property)){ |
|
154 | - try{ |
|
153 | + }elseif (\is_string($property)) { |
|
154 | + try { |
|
155 | 155 | $this->_beforeAddProperty(\sizeof($this->properties), $property); |
156 | 156 | $rProperty=$this->reflect->getProperty($property); |
157 | 157 | $this->properties[]=$rProperty; |
158 | - }catch(\Exception $e){ |
|
158 | + }catch (\Exception $e) { |
|
159 | 159 | $this->_beforeAddProperty(\sizeof($this->properties), $property); |
160 | 160 | $this->properties[]=$property; |
161 | 161 | } |
162 | - }elseif(\is_int($property)){ |
|
162 | + }elseif (\is_int($property)) { |
|
163 | 163 | $props=$this->getDefaultProperties(); |
164 | - if(isset($props[$property])) |
|
164 | + if (isset($props[$property])) |
|
165 | 165 | $this->properties[]=$props[$property]; |
166 | 166 | else |
167 | 167 | $this->properties[]=$property; |
168 | - }else{ |
|
168 | + } else { |
|
169 | 169 | $this->properties[]=$property; |
170 | 170 | } |
171 | 171 | } |
172 | 172 | |
173 | - protected function getDefaultProperties(){ |
|
173 | + protected function getDefaultProperties() { |
|
174 | 174 | $result=[]; |
175 | 175 | $properties=$this->reflect->getProperties(); |
176 | - foreach ($properties as $property){ |
|
176 | + foreach ($properties as $property) { |
|
177 | 177 | $showable=$this->showableProperty($property); |
178 | - if($showable!==false){ |
|
178 | + if ($showable!==false) { |
|
179 | 179 | $result[]=$property; |
180 | 180 | } |
181 | 181 | } |
@@ -187,12 +187,12 @@ discard block |
||
187 | 187 | return $this; |
188 | 188 | } |
189 | 189 | |
190 | - public function setValueFunction($index,$callback){ |
|
190 | + public function setValueFunction($index, $callback) { |
|
191 | 191 | $this->values[$index]=$callback; |
192 | 192 | return $this; |
193 | 193 | } |
194 | 194 | |
195 | - public function setIdentifierFunction($callback){ |
|
195 | + public function setIdentifierFunction($callback) { |
|
196 | 196 | $this->values["identifier"]=$callback; |
197 | 197 | return $this; |
198 | 198 | } |
@@ -205,41 +205,41 @@ discard block |
||
205 | 205 | return $this->properties; |
206 | 206 | } |
207 | 207 | |
208 | - public function getCaption($index){ |
|
209 | - if(isset($this->captions[$index])){ |
|
208 | + public function getCaption($index) { |
|
209 | + if (isset($this->captions[$index])) { |
|
210 | 210 | return $this->captions[$index]; |
211 | 211 | } |
212 | - if($this->properties[$index] instanceof \ReflectionProperty) |
|
212 | + if ($this->properties[$index] instanceof \ReflectionProperty) |
|
213 | 213 | return $this->properties[$index]->getName(); |
214 | - elseif(\is_callable($this->properties[$index])) |
|
214 | + elseif (\is_callable($this->properties[$index])) |
|
215 | 215 | return ""; |
216 | 216 | else |
217 | 217 | return $this->properties[$index]; |
218 | 218 | } |
219 | 219 | |
220 | - public function getCaptions(){ |
|
221 | - if(isset($this->captions)){ |
|
222 | - $captions= $this->captions; |
|
223 | - for($i=\sizeof($captions);$i<$this->count();$i++){ |
|
220 | + public function getCaptions() { |
|
221 | + if (isset($this->captions)) { |
|
222 | + $captions=$this->captions; |
|
223 | + for ($i=\sizeof($captions); $i<$this->count(); $i++) { |
|
224 | 224 | $captions[]=""; |
225 | 225 | } |
226 | - }else{ |
|
226 | + } else { |
|
227 | 227 | $captions=[]; |
228 | 228 | $index=0; |
229 | 229 | $count=$this->count(); |
230 | - while($index<$count){ |
|
230 | + while ($index<$count) { |
|
231 | 231 | $captions[]=$this->getCaption($index++); |
232 | 232 | } |
233 | 233 | } |
234 | - if(isset($this->captionCallback) && \is_callable($this->captionCallback)){ |
|
234 | + if (isset($this->captionCallback) && \is_callable($this->captionCallback)) { |
|
235 | 235 | $callback=$this->captionCallback; |
236 | - $callback($captions,$this->instance); |
|
236 | + $callback($captions, $this->instance); |
|
237 | 237 | } |
238 | 238 | return $captions; |
239 | 239 | } |
240 | 240 | |
241 | - public function setCaption($index,$caption){ |
|
242 | - if(isset($this->captions)===false) |
|
241 | + public function setCaption($index, $caption) { |
|
242 | + if (isset($this->captions)===false) |
|
243 | 243 | $this->captions=[]; |
244 | 244 | $this->captions[$index]=$caption; |
245 | 245 | return $this; |
@@ -257,7 +257,7 @@ discard block |
||
257 | 257 | * @param callable $callback function called after the field compilation |
258 | 258 | * @return \Ajax\semantic\widgets\datatable\InstanceViewer |
259 | 259 | */ |
260 | - public function afterCompile($index,$callback){ |
|
260 | + public function afterCompile($index, $callback) { |
|
261 | 261 | $this->afterCompile[$index]=$callback; |
262 | 262 | return $this; |
263 | 263 | } |
@@ -9,15 +9,15 @@ discard block |
||
9 | 9 | protected $image; |
10 | 10 | |
11 | 11 | public function __construct($identifier, $content=NULL) { |
12 | - parent::__construct($identifier,"item",$content); |
|
12 | + parent::__construct($identifier, "item", $content); |
|
13 | 13 | } |
14 | - protected function initContent($content){ |
|
15 | - if(\is_array($content)){ |
|
16 | - if(JArray::isAssociative($content)===false){ |
|
14 | + protected function initContent($content) { |
|
15 | + if (\is_array($content)) { |
|
16 | + if (JArray::isAssociative($content)===false) { |
|
17 | 17 | $icon=@$content[0]; |
18 | 18 | $title=@$content[1]; |
19 | 19 | $desc=@$content[2]; |
20 | - }else{ |
|
20 | + } else { |
|
21 | 21 | $icon=@$content["icon"]; |
22 | 22 | $image=@$content["image"]; |
23 | 23 | $title=@$content["title"]; |
@@ -25,21 +25,21 @@ discard block |
||
25 | 25 | $desc=@$content["description"]; |
26 | 26 | $items=@$content["items"]; |
27 | 27 | } |
28 | - if(isset($icon)){ |
|
28 | + if (isset($icon)) { |
|
29 | 29 | $this->setIcon($icon); |
30 | 30 | } |
31 | - if(isset($image)){ |
|
31 | + if (isset($image)) { |
|
32 | 32 | $this->setImage($image); |
33 | 33 | } |
34 | - if(isset($title)){ |
|
35 | - $this->setTitle($title,$desc); |
|
36 | - }elseif (isset($header)){ |
|
37 | - $this->setTitle($header,$desc,"header"); |
|
34 | + if (isset($title)) { |
|
35 | + $this->setTitle($title, $desc); |
|
36 | + }elseif (isset($header)) { |
|
37 | + $this->setTitle($header, $desc, "header"); |
|
38 | 38 | } |
39 | - if(isset($items)){ |
|
39 | + if (isset($items)) { |
|
40 | 40 | $this->addList($items); |
41 | 41 | } |
42 | - }else{ |
|
42 | + } else { |
|
43 | 43 | $this->setContent($content); |
44 | 44 | } |
45 | 45 | } |
@@ -50,11 +50,11 @@ discard block |
||
50 | 50 | return $list; |
51 | 51 | } |
52 | 52 | |
53 | - public function getList(){ |
|
53 | + public function getList() { |
|
54 | 54 | return $this->content["list"]; |
55 | 55 | } |
56 | 56 | |
57 | - public function getItem($index){ |
|
57 | + public function getItem($index) { |
|
58 | 58 | return $this->getList()->getItem($index); |
59 | 59 | } |
60 | 60 | } |
61 | 61 | \ No newline at end of file |