From bd4e62a5e786d57bb5b5109247d5dbfbe4976502 Mon Sep 17 00:00:00 2001 From: jfefe Date: Sat, 30 Mar 2013 16:58:49 +0100 Subject: [PATCH 01/22] Implement extrafields : calendar on date type and new separator type --- htdocs/product/fiche.php | 109 +++++++++++++++++++++++++-------------- 1 file changed, 69 insertions(+), 40 deletions(-) diff --git a/htdocs/product/fiche.php b/htdocs/product/fiche.php index 1ccc7e2c8b3..80a93028a05 100644 --- a/htdocs/product/fiche.php +++ b/htdocs/product/fiche.php @@ -56,6 +56,9 @@ if (! empty($user->societe_id)) $socid=$user->societe_id; $object = new Product($db); $extrafields = new ExtraFields($db); +// fetch optionals attributes and labels +$extralabels=$extrafields->fetch_name_optionals_label('product'); + if ($id > 0 || ! empty($ref)) { $object = new Product($db); @@ -212,14 +215,8 @@ if (empty($reshook)) } } - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=$_POST[$key]; - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); $id = $object->create($user); @@ -272,14 +269,8 @@ if (empty($reshook)) $object->finished = GETPOST('finished'); $object->hidden = GETPOST('hidden')=='yes'?1:0; - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=$_POST[$key]; - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); if ($object->check()) { @@ -632,9 +623,6 @@ if (GETPOST("cancel") == $langs->trans("Cancel")) * View */ -// fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label('product'); - $helpurl=''; if (GETPOST("type") == '0') $helpurl='EN:Module_Products|FR:Module_Produits|ES:Módulo_Productos'; if (GETPOST("type") == '1') $helpurl='EN:Module_Services_En|FR:Module_Services|ES:Módulo_Servicios'; @@ -792,15 +780,29 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(GETPOST('options_'.$key)?GETPOST('options_'.$key):$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } + foreach($extrafields->attribute_label as $key=>$label) + { + $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); + // Show separator only + if ($extrafields->attribute_type[$key] == 'separate') + { + print $extrafields->showSeparator($key); + } + else + { + // Convert date into timestamp format + if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) + { + $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key]; + } + + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''; + print $extrafields->showInputField($key,$value); + print ''."\n"; + } + } } // Note (private, no output on invoices, propales...) @@ -1000,14 +1002,28 @@ else if (empty($reshook) && ! empty($extrafields->attribute_label)) { foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } + { + $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); + // Show separator only + if ($extrafields->attribute_type[$key] == 'separate') + { + print $extrafields->showSeparator($key); + } + else + { + // Convert date into timestamp format + if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) + { + $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key]; + } + + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''; + print $extrafields->showInputField($key,$value); + print ''."\n"; + } + } } // Note @@ -1230,13 +1246,26 @@ else $parameters=array('colspan' => ' colspan="'.(2+(($showphoto||$showbarcode)?1:0)).'"'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) - { + { foreach($extrafields->attribute_label as $key=>$label) { + $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print ''.$label.''; - print $extrafields->showOutputField($key,$value); - print ''."\n"; + if ($extrafields->attribute_type[$key] == 'separate') + { + print $extrafields->showSeparator($key); + } + else + { + // Convert date into timestamp format + if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) + { + $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key]; + } + print ''.$label.''; + print $extrafields->showOutputField($key,$value); + print ''."\n"; + } } } From 3fe1b261368f30c674045155fd02f4d7cbb28f94 Mon Sep 17 00:00:00 2001 From: jfefe Date: Sat, 30 Mar 2013 17:43:21 +0100 Subject: [PATCH 02/22] New method to CommonObject to display extrafields data output Try for product --- htdocs/core/class/commonobject.class.php | 38 ++++++++++++++++++++++++ htdocs/product/fiche.php | 21 +------------ 2 files changed, 39 insertions(+), 20 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index b128455b8ff..af5122adbc3 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2189,6 +2189,44 @@ abstract class CommonObject } else return 0; } + + /** + * Function to show lines of extrafields with output datas + * + * @param object $extrafields extrafield Object + * + * return string + */ + function showOptionals($extrafields) + { + global $_POST; + + $out = ''; + + if (! empty($this->array_options)) + { + foreach($extrafields->attribute_label as $key=>$label) + { + $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$this->array_options["options_".$key]); + if ($extrafields->attribute_type[$key] == 'separate') + { + $out = $extrafields->showSeparator($key); + } + else + { + // Convert date into timestamp format + if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) + { + $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$this->array_options['options_'.$key]; + } + $out .= ''.$label.''; + $out .= $extrafields->showOutputField($key,$value); + $out .= ''."\n"; + } + } + } + return $out; + } /** diff --git a/htdocs/product/fiche.php b/htdocs/product/fiche.php index 80a93028a05..98a6c35aa09 100644 --- a/htdocs/product/fiche.php +++ b/htdocs/product/fiche.php @@ -1247,26 +1247,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - // Convert date into timestamp format - if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) - { - $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key]; - } - print ''.$label.''; - print $extrafields->showOutputField($key,$value); - print ''."\n"; - } - } + print $object->showOptionals($extrafields); } // Note From 1ab1d74c77b10af35f191b61a7bf25ac245b770f Mon Sep 17 00:00:00 2001 From: jfefe Date: Sat, 30 Mar 2013 17:52:59 +0100 Subject: [PATCH 03/22] New option (MAIN_EXTRAFIELDS_USE_TWO_COLUMS) to split extrafields display into 2 columns --- htdocs/core/class/commonobject.class.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index af5122adbc3..f9a1bad9ef7 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2205,8 +2205,10 @@ abstract class CommonObject if (! empty($this->array_options)) { + $e = 0; foreach($extrafields->attribute_label as $key=>$label) { + $colspan='3'; $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$this->array_options["options_".$key]); if ($extrafields->attribute_type[$key] == 'separate') { @@ -2214,14 +2216,28 @@ abstract class CommonObject } else { + if ( !empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && ($e % 2) == 0) + { + $out .= ''; + $colspan='0'; + } + else + { + $out .= ''; + } // Convert date into timestamp format if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) { $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$this->array_options['options_'.$key]; } - $out .= ''.$label.''; + $out .= ''.$label.''; + $out .=''; $out .= $extrafields->showOutputField($key,$value); - $out .= ''."\n"; + $out .= ''."\n"; + + if (! empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && (($e % 2) == 1)) $out .= ''; + else $out .= ''; + $e++; } } } From 2b587e1742fbdf7baabbac86882361a00002c3af Mon Sep 17 00:00:00 2001 From: jfefe Date: Sat, 30 Mar 2013 18:54:51 +0100 Subject: [PATCH 04/22] For thirdparty use new method to display extrafield values --- htdocs/societe/soc.php | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index 0972d93f26a..5b3106afa0d 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -1761,31 +1761,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - $e=0; - foreach($extrafields->attribute_label as $key=>$label) - { - $colspan='3'; - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options['options_'.$key])?$object->array_options['options_'.$key]:'')); - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - if (($e % 2) == 0) - { - print ''; - $colspan='0'; - } - print ''.$label.''; - print ''; - print $extrafields->showOutputField($key,$value); - print ""; - - if (($e % 2) == 1) print ''; - $e++; - } - } + print $object->showOptionals($extrafields); } // Ban From 3c37f89d2e5781f95953869e79cad20dcb19080e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 16:02:16 +0200 Subject: [PATCH 05/22] Work on new menu managers - step x --- htdocs/core/menus/standard/auguria.lib.php | 160 ++++++++++---------- htdocs/core/menus/standard/auguria_menu.php | 9 +- htdocs/core/menus/standard/eldy_menu.php | 7 +- htdocs/user/logout.php | 4 +- 4 files changed, 95 insertions(+), 85 deletions(-) diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 1a40de3c713..d3be68503c0 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -252,92 +252,92 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM // Show menu if (empty($noout)) { - $alt=0; - $num=count($menu_array); - for ($i = 0; $i < $num; $i++) - { - $showmenu=true; - if (! empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) $showmenu=false; - - $alt++; - if (empty($menu_array[$i]['level']) && $showmenu) + $alt=0; + $num=count($menu_array); + for ($i = 0; $i < $num; $i++) { - if (($alt%2==0)) + $showmenu=true; + if (! empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) $showmenu=false; + + $alt++; + if (empty($menu_array[$i]['level']) && $showmenu) { - print '
'."\n"; + if (($alt%2==0)) + { + print '
'."\n"; + } + else + { + print '
'."\n"; + } } - else + + // Place tabulation + $tabstring=''; + $tabul=($menu_array[$i]['level'] - 1); + if ($tabul > 0) { - print '
'."\n"; + for ($j=0; $j < $tabul; $j++) + { + $tabstring.='   '; + } + } + + // Add mainmenu in GET url. This make to go back on correct menu even when using Back on browser. + $url=dol_buildpath($menu_array[$i]['url'],1); + $url=preg_replace('/__LOGIN__/',$user->login,$url); + $url=preg_replace('/__USERID__/',$user->id,$url); + + if (! preg_match('/mainmenu=/i',$menu_array[$i]['url'])) + { + if (! preg_match('/\?/',$url)) $url.='?'; + else $url.='&'; + $url.='mainmenu='.$mainmenu; + } + + print ''."\n"; + + // Menu niveau 0 + if ($menu_array[$i]['level'] == 0) + { + if ($menu_array[$i]['enabled']) + { + print ''; + } + else if ($showmenu) + { + print ''."\n"; + } + if ($showmenu) + print ''."\n"; + } + // Menu niveau > 0 + if ($menu_array[$i]['level'] > 0) + { + if ($menu_array[$i]['enabled']) + { + print ''."\n"; + } + else if ($showmenu) + { + print ''."\n"; + } + } + + // If next is a new block or end + if (empty($menu_array[$i+1]['level'])) + { + if ($showmenu) + print ''."\n"; + print "
\n"; } } - - // Place tabulation - $tabstring=''; - $tabul=($menu_array[$i]['level'] - 1); - if ($tabul > 0) - { - for ($j=0; $j < $tabul; $j++) - { - $tabstring.='   '; - } - } - - // Add mainmenu in GET url. This make to go back on correct menu even when using Back on browser. - $url=dol_buildpath($menu_array[$i]['url'],1); - $url=preg_replace('/__LOGIN__/',$user->login,$url); - $url=preg_replace('/__USERID__/',$user->id,$url); - - if (! preg_match('/mainmenu=/i',$menu_array[$i]['url'])) - { - if (! preg_match('/\?/',$url)) $url.='?'; - else $url.='&'; - $url.='mainmenu='.$mainmenu; - } - - print ''."\n"; - - // Menu niveau 0 - if ($menu_array[$i]['level'] == 0) - { - if ($menu_array[$i]['enabled']) - { - print ''; - } - else if ($showmenu) - { - print ''."\n"; - } - if ($showmenu) - print ''."\n"; - } - // Menu niveau > 0 - if ($menu_array[$i]['level'] > 0) - { - if ($menu_array[$i]['enabled']) - { - print ''."\n"; - } - else if ($showmenu) - { - print ''."\n"; - } - } - - // If next is a new block or end - if (empty($menu_array[$i+1]['level'])) - { - if ($showmenu) - print ''."\n"; - print "
\n"; - } - } } return count($menu_array); diff --git a/htdocs/core/menus/standard/auguria_menu.php b/htdocs/core/menus/standard/auguria_menu.php index 343edaf5201..35d73f55dcc 100644 --- a/htdocs/core/menus/standard/auguria_menu.php +++ b/htdocs/core/menus/standard/auguria_menu.php @@ -160,7 +160,7 @@ class MenuManager */ function showmenu($mode) { - global $conf, $langs; + global $conf, $langs, $user; require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria.lib.php'; @@ -188,6 +188,8 @@ class MenuManager if ($val['enabled'] == 1) { $relurl=dol_buildpath($val['url'],1); + $relurl=preg_replace('/__LOGIN__/',$user->login,$relurl); + $relurl=preg_replace('/__USERID__/',$user->id,$relurl); print ''.$val['titre'].''."\n"; // Search submenu fot this entry @@ -198,6 +200,7 @@ class MenuManager $res=print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$submenu,1,$tmpmainmenu,$tmpleftmenu); //var_dump($submenu->liste); $nexturl=dol_buildpath($submenu->liste[0]['url'],1); + $canonrelurl=preg_replace('/\?.*$/','',$relurl); $canonnexturl=preg_replace('/\?.*$/','',$nexturl); //var_dump($canonrelurl); @@ -211,9 +214,11 @@ class MenuManager foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' { $relurl2=dol_buildpath($val2['url'],1); + $relurl2=preg_replace('/__LOGIN__/',$user->login,$relurl2); + $relurl2=preg_replace('/__USERID__/',$user->id,$relurl2); $canonurl2=preg_replace('/\?.*$/','',$val2['url']); //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']); - if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php'))) $relurl2=''; + if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php','/core/tools.php'))) $relurl2=''; print ''; if ($relurl2) print ''; print $val2['titre']; diff --git a/htdocs/core/menus/standard/eldy_menu.php b/htdocs/core/menus/standard/eldy_menu.php index 18d64839fdc..d1751ead59c 100644 --- a/htdocs/core/menus/standard/eldy_menu.php +++ b/htdocs/core/menus/standard/eldy_menu.php @@ -116,7 +116,7 @@ class MenuManager */ function showmenu($mode) { - global $conf, $langs; + global $conf, $langs, $user; require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy.lib.php'; @@ -144,6 +144,8 @@ class MenuManager if ($val['enabled'] == 1) { $relurl=dol_buildpath($val['url'],1); + $relurl=preg_replace('/__LOGIN__/',$user->login,$relurl); + $relurl=preg_replace('/__USERID__/',$user->id,$relurl); print ''.$val['titre'].''."\n"; // Search submenu fot this entry @@ -152,6 +154,7 @@ class MenuManager $submenu=new Menu(); $res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$submenu,1,$tmpmainmenu,$tmpleftmenu); $nexturl=dol_buildpath($submenu->liste[0]['url'],1); + $canonrelurl=preg_replace('/\?.*$/','',$relurl); $canonnexturl=preg_replace('/\?.*$/','',$nexturl); //var_dump($canonrelurl); @@ -165,6 +168,8 @@ class MenuManager foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' { $relurl2=dol_buildpath($val2['url'],1); + $relurl2=preg_replace('/__LOGIN__/',$user->login,$relurl2); + $relurl2=preg_replace('/__USERID__/',$user->id,$relurl2); //var_dump($val2); print ''.$val2['titre'].''."\n"; } diff --git a/htdocs/user/logout.php b/htdocs/user/logout.php index f5523c791f2..7113d2a459a 100644 --- a/htdocs/user/logout.php +++ b/htdocs/user/logout.php @@ -61,8 +61,8 @@ $url=DOL_URL_ROOT."/index.php"; // By default go to login page if ($urlfrom) $url=DOL_URL_ROOT.$urlfrom; if (! empty($conf->global->MAIN_LOGOUT_GOTO_URL)) $url=$conf->global->MAIN_LOGOUT_GOTO_URL; -if (! empty($_SESSION['dol_hide_topmenu'])) $url.=(preg_match('/\?/',$url)?'&':'?').'dol_hide_topmenu=1'; -if (! empty($_SESSION['dol_hide_leftmenu'])) $url.=(preg_match('/\?/',$url)?'&':'?').'dol_hide_leftmenu=1'; +if (GETPOST('dol_hide_topmenu')) $url.=(preg_match('/\?/',$url)?'&':'?').'dol_hide_topmenu=1'; +if (GETPOST('dol_hide_leftmenu')) $url.=(preg_match('/\?/',$url)?'&':'?').'dol_hide_leftmenu=1'; // Destroy session $prefix=dol_getprefix(); From e2623c6ad514383009296c2c88234e1518fd495e Mon Sep 17 00:00:00 2001 From: Grand Philippe Date: Mon, 1 Apr 2013 16:04:15 +0200 Subject: [PATCH 06/22] try to fix :supplier invoice numbering --- htdocs/compta/index.php | 18 ++++---- .../fourn/class/fournisseur.facture.class.php | 45 +++---------------- htdocs/fourn/facture/fiche.php | 17 +++---- htdocs/fourn/facture/impayees.php | 14 +++--- htdocs/fourn/facture/index.php | 10 ++--- htdocs/fourn/facture/paiement.php | 14 +++--- htdocs/fourn/fiche.php | 6 +-- htdocs/fourn/index.php | 6 +-- htdocs/fourn/paiement/fiche.php | 2 +- htdocs/fourn/recap-fourn.php | 2 +- .../install/mysql/migration/3.3.0-3.4.0.sql | 3 +- 11 files changed, 52 insertions(+), 85 deletions(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index ec2dc5997e2..7600e05d0d8 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -258,7 +258,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) */ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire) { - $sql = "SELECT f.facnumber, f.rowid, f.total_ttc, f.type,"; + $sql = "SELECT f.ref_supplier, f.rowid, f.total_ttc, f.type,"; $sql.= " s.nom, s.rowid as socid"; $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn as f, ".MAIN_DB_PREFIX."societe as s"; if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; @@ -287,7 +287,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- { $obj = $db->fetch_object($resql); print ''; - $facturesupplierstatic->ref=$obj->facnumber; + $facturesupplierstatic->ref=$obj->ref; $facturesupplierstatic->id=$obj->rowid; $facturesupplierstatic->type=$obj->type; print $facturesupplierstatic->getNomUrl(1,'',16); @@ -432,7 +432,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- $langs->load("boxes"); $facstatic=new FactureFournisseur($db); - $sql = "SELECT ff.rowid, ff.facnumber, ff.fk_statut, ff.libelle, ff.total_ht, ff.total_ttc, ff.tms, ff.paye"; + $sql = "SELECT ff.rowid, ff.ref_supplier, ff.fk_statut, ff.libelle, ff.total_ht, ff.total_ttc, ff.tms, ff.paye"; $sql.= ", s.nom, s.rowid as socid"; $sql.= ", SUM(pf.amount) as am"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_fourn as ff"; @@ -442,7 +442,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- $sql.= " AND ff.entity = ".$conf->entity; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; if ($socid) $sql.= " AND ff.fk_soc = ".$socid; - $sql.= " GROUP BY ff.rowid, ff.facnumber, ff.fk_statut, ff.libelle, ff.total_ht, ff.total_ttc, ff.tms, ff.paye, s.nom, s.rowid"; + $sql.= " GROUP BY ff.rowid, ff.ref_supplier, ff.fk_statut, ff.libelle, ff.total_ht, ff.total_ttc, ff.tms, ff.paye, s.nom, s.rowid"; $sql.= " ORDER BY ff.tms DESC "; $sql.= $db->plimit($max, 0); @@ -467,7 +467,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- { $obj = $db->fetch_object($resql); print ''; - $facstatic->ref=$obj->facnumber; + $facstatic->ref=$obj->ref; $facstatic->id=$obj->rowid; print $facstatic->getNomUrl(1,''); print ''; @@ -930,7 +930,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- { $facstatic=new FactureFournisseur($db); - $sql = "SELECT ff.rowid, ff.facnumber, ff.fk_statut, ff.libelle, ff.total_ht, ff.total_ttc, ff.paye,"; + $sql = "SELECT ff.rowid, ff.ref_supplier, ff.fk_statut, ff.libelle, ff.total_ht, ff.total_ttc, ff.paye,"; $sql.= " s.nom, s.rowid as socid,"; $sql.= " sum(pf.amount) as am"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_fourn as ff"; @@ -942,7 +942,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- $sql.= " AND ff.fk_statut = 1"; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; if ($socid) $sql.= " AND ff.fk_soc = ".$socid; - $sql.= " GROUP BY ff.rowid, ff.facnumber, ff.fk_statut, ff.libelle, ff.total_ht, ff.total_ttc, s.nom, s.rowid"; + $sql.= " GROUP BY ff.rowid, ff.ref_supplier, ff.fk_statut, ff.libelle, ff.total_ht, ff.total_ttc, s.nom, s.rowid"; $resql=$db->query($sql); if ($resql) @@ -967,7 +967,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- $obj = $db->fetch_object($resql); print ''; - $facstatic->ref=$obj->facnumber; + $facstatic->ref=$obj->ref; $facstatic->id=$obj->rowid; print $facstatic->getNomUrl(1,''); print ''; @@ -1033,7 +1033,7 @@ if ($resql) } //print ''; -print '
'; +print '
'; llxFooter(); diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 5b26339c8c8..3ca14f707e3 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -134,7 +134,7 @@ class FactureFournisseur extends CommonInvoice $sql = "INSERT INTO ".MAIN_DB_PREFIX."facture_fourn ("; $sql.= "ref"; - $sql.= ", facnumber"; + $sql.= ", ref_supplier"; $sql.= ", entity"; $sql.= ", libelle"; $sql.= ", fk_soc"; @@ -263,7 +263,7 @@ class FactureFournisseur extends CommonInvoice $sql = "SELECT"; $sql.= " t.rowid,"; $sql.= " t.ref,"; - $sql.= " t.facnumber,"; + $sql.= " t.ref_supplier,"; $sql.= " t.entity,"; $sql.= " t.type,"; $sql.= " t.fk_soc,"; @@ -298,7 +298,7 @@ class FactureFournisseur extends CommonInvoice $sql.= ' s.nom as socnom, s.rowid as socid'; $sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as t,'.MAIN_DB_PREFIX.'societe as s'; if ($id) $sql.= " WHERE t.rowid=".$id; - if ($ref) $sql.= " WHERE t.ref='".$this->db->escape($ref)."'"; // ref is id (facnumber is supplier ref) + if ($ref) $sql.= " WHERE t.ref='".$this->db->escape($ref)."'"; $sql.= ' AND t.fk_soc = s.rowid'; dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG); @@ -312,8 +312,7 @@ class FactureFournisseur extends CommonInvoice $this->id = $obj->rowid; $this->ref = $obj->ref; - $this->ref_supplier = $obj->facnumber; - $this->facnumber = $obj->facnumber; + $this->ref_supplier = $obj->ref_supplier; $this->entity = $obj->entity; $this->type = empty($obj->type)?0:$obj->type; $this->fk_soc = $obj->fk_soc; @@ -501,7 +500,7 @@ class FactureFournisseur extends CommonInvoice // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn SET"; $sql.= " ref=".(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").","; - $sql.= " facnumber=".(isset($this->facnumber)?"'".$this->db->escape($this->facnumber)."'":"null").","; + $sql.= " ref_supplier=".(isset($this->ref_supplier)?"'".$this->db->escape($this->ref_supplier)."'":"null").","; $sql.= " entity=".(isset($this->entity)?$this->entity:"null").","; $sql.= " type=".(isset($this->type)?$this->type:"null").","; $sql.= " fk_soc=".(isset($this->fk_soc)?$this->fk_soc:"null").","; @@ -664,39 +663,7 @@ class FactureFournisseur extends CommonInvoice return -$error; } } - - /** - * Set supplier ref - * - * @param User $user User that make change - * @param string $ref_supplier Supplier ref - * @return int <0 if KO, >0 if OK - */ - function set_ref_supplier($user, $ref_supplier) - { - if ($user->rights->fournisseur->facture->creer) - { - $sql = 'UPDATE '.MAIN_DB_PREFIX.'facture_fourn SET facnumber = '.(empty($ref_supplier) ? 'NULL' : '\''.$this->db->escape($ref_supplier).'\''); - $sql.= ' WHERE rowid = '.$this->id; - - dol_syslog("FactureFournisseur::set_ref_supplier sql=".$sql); - if ($this->db->query($sql)) - { - $this->ref_supplier = $ref_supplier; - return 1; - } - else - { - $this->error=$this->db->lasterror(); - dol_syslog('FactureFournisseur::set_ref_supplier '.$this->error.' - '.$sql, LOG_ERR); - return -2; - } - } - else - { - return -1; - } - } + /** * Tag invoice as a payed invoice diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 9f63805a288..1e92ced62ab 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -170,12 +170,13 @@ elseif ($action == 'confirm_paid' && $confirm == 'yes' && $user->rights->fournis } // Set supplier ref -elseif ($action == 'setfacnumber' && $user->rights->fournisseur->facture->creer) +if ($action == 'setref_supplier' && $user->rights->fournisseur->commande->creer) { - $object->fetch($id); - $result=$object->set_ref_supplier($user, GETPOST('facnumber')); + $result=$object->setValueFrom('ref_supplier',GETPOST('ref_supplier','alpha')); + if ($result < 0) dol_print_error($db, $object->error); } + // Set label elseif ($action == 'setlabel' && $user->rights->fournisseur->facture->creer) { @@ -253,7 +254,7 @@ elseif ($action == 'add' && $user->rights->fournisseur->facture->creer) $_GET['socid']=$_POST['socid']; $error++; } - if (! GETPOST('facnumber')) + if (! GETPOST('ref_supplier')) { $mesg='
'.$langs->trans('ErrorFieldRequired',$langs->transnoentities('RefSupplier')).'
'; $action='create'; @@ -267,7 +268,7 @@ elseif ($action == 'add' && $user->rights->fournisseur->facture->creer) // Creation facture $object->ref = $_POST['ref']; - $object->facnumber = $_POST['facnumber']; + $object->ref_supplier = $_POST['ref_supplier']; $object->socid = $_POST['socid']; $object->libelle = $_POST['libelle']; $object->date = $datefacture; @@ -1048,7 +1049,7 @@ if ($action == 'create') print ''; // Ref supplier - print ''.$langs->trans('RefSupplier').''; + print ''.$langs->trans('RefSupplier').''; print ''; print ''.$langs->trans('Type').''; @@ -1352,8 +1353,8 @@ else print "\n"; // Ref supplier - print ''.$form->editfieldkey("RefSupplier",'facnumber',$object->ref_supplier,$object,($object->statut<2 && $user->rights->fournisseur->facture->creer)).''; - print $form->editfieldval("RefSupplier",'facnumber',$object->ref_supplier,$object,($object->statut<2 && $user->rights->fournisseur->facture->creer)); + print ''.$form->editfieldkey("RefSupplier",'ref_supplier',$object->ref_supplier,$object,($object->statut<2 && $user->rights->fournisseur->facture->creer)).''; + print $form->editfieldval("RefSupplier",'ref_supplier',$object->ref_supplier,$object,($object->statut<2 && $user->rights->fournisseur->facture->creer)); print ''; // Third party diff --git a/htdocs/fourn/facture/impayees.php b/htdocs/fourn/facture/impayees.php index 467d02e8726..e88350aad57 100644 --- a/htdocs/fourn/facture/impayees.php +++ b/htdocs/fourn/facture/impayees.php @@ -89,7 +89,7 @@ if (! $sortorder) $sortorder="ASC"; if ($user->rights->fournisseur->facture->lire) { $sql = "SELECT s.rowid as socid, s.nom,"; - $sql.= " f.rowid as ref, f.facnumber, f.total_ht, f.total_ttc,"; + $sql.= " f.rowid, f.ref, f.ref_supplier, f.total_ht, f.total_ttc,"; $sql.= " f.datef as df, f.date_lim_reglement as datelimite, "; $sql.= " f.paye as paye, f.rowid as facid, f.fk_statut"; $sql.= " ,sum(pf.amount) as am"; @@ -121,7 +121,7 @@ if ($user->rights->fournisseur->facture->lire) } if ($search_ref_supplier) { - $sql .= " AND f.facnumber LIKE '%".$search_ref_supplier."%'"; + $sql .= " AND f.ref_supplier LIKE '%".$search_ref_supplier."%'"; } if ($search_societe) @@ -141,14 +141,14 @@ if ($user->rights->fournisseur->facture->lire) if (dol_strlen(GETPOST('sf_re')) > 0) { - $sql .= " AND f.facnumber LIKE '%".GETPOST('sf_re')."%'"; + $sql .= " AND f.ref_supplier LIKE '%".GETPOST('sf_re')."%'"; } - $sql.= " GROUP BY f.facnumber, f.rowid, f.total_ht, f.total_ttc, f.datef, f.date_lim_reglement, f.paye, f.fk_statut, s.rowid, s.nom"; + $sql.= " GROUP BY f.ref_supplier, f.rowid, f.total_ht, f.total_ttc, f.datef, f.date_lim_reglement, f.paye, f.fk_statut, s.rowid, s.nom"; $sql.= " ORDER BY "; $listfield=explode(',',$sortfield); foreach ($listfield as $key => $value) $sql.=$listfield[$key]." ".$sortorder.","; - $sql.= " f.facnumber DESC"; + $sql.= " f.ref_supplier DESC"; $resql = $db->query($sql); if ($resql) @@ -191,7 +191,7 @@ if ($user->rights->fournisseur->facture->lire) print ''; print ''; print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefSupplier"),$_SERVER["PHP_SELF"],"f.facnumber","",$param,"",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("RefSupplier"),$_SERVER["PHP_SELF"],"f.ref_supplier","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"f.datef","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateDue"),$_SERVER["PHP_SELF"],"f.date_lim_reglement","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); @@ -242,7 +242,7 @@ if ($user->rights->fournisseur->facture->lire) print $facturestatic->getNomUrl(1); print "\n"; - print "\n"; + print "\n"; print "\n"; print "
".dol_trunc($objp->facnumber,12)."".dol_trunc($objp->ref_supplier,12)."".dol_print_date($db->jdate($objp->df),'day')."".dol_print_date($db->jdate($objp->datelimite),'day'); diff --git a/htdocs/fourn/facture/index.php b/htdocs/fourn/facture/index.php index b5922f52b29..6a3415f02f0 100644 --- a/htdocs/fourn/facture/index.php +++ b/htdocs/fourn/facture/index.php @@ -103,7 +103,7 @@ $htmlother=new FormOther($db); llxHeader('',$langs->trans("SuppliersInvoices"),'EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores'); $sql = "SELECT s.rowid as socid, s.nom, "; -$sql.= " fac.rowid as facid, fac.ref, fac.facnumber, fac.datef, fac.date_lim_reglement as date_echeance,"; +$sql.= " fac.rowid as facid, fac.ref, fac.ref_supplier, fac.datef, fac.date_lim_reglement as date_echeance,"; $sql.= " fac.total_ht, fac.total_ttc, fac.paye as paye, fac.fk_statut as fk_statut, fac.libelle"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user "; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_fourn as fac"; @@ -131,7 +131,7 @@ if (GETPOST("search_ref")) } if (GETPOST("search_ref_supplier")) { - $sql .= " AND fac.facnumber LIKE '%".$db->escape(GETPOST("search_ref_supplier"))."%'"; + $sql .= " AND fac.ref_supplier LIKE '%".$db->escape(GETPOST("search_ref_supplier"))."%'"; } if ($month > 0) { @@ -193,7 +193,7 @@ if ($resql) print ''; print ''; print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"fac.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefSupplier"),$_SERVER["PHP_SELF"],"facnumber","",$param,"",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("RefSupplier"),$_SERVER["PHP_SELF"],"ref_supplier","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"fac.datef,fac.rowid","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateDue"),$_SERVER["PHP_SELF"],"fac.date_lim_reglement","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"fac.libelle","",$param,"",$sortfield,$sortorder); @@ -249,10 +249,10 @@ if ($resql) print '\n"; - print '"; + print '"; print ''; print ''; print ''; - print ''; + print ''; if ($objp->df > 0 ) { print '\n"; // Lines for filters fields @@ -492,7 +492,7 @@ if (empty($action)) print ''; // Ref invoice - /*$invoicesupplierstatic->ref=$objp->facnumber; + /*$invoicesupplierstatic->ref=$objp->ref_supplier; $invoicesupplierstatic->id=$objp->facid; print ''; print ''; + print img_object($langs->trans('ShowBill'),'bill').' '.$obj->ref_supplier.' '.dol_trunc($obj->libelle,14).''; print ''; print ''; print '
'; $facturestatic->id=$obj->facid; $facturestatic->ref=$obj->ref; - $facturestatic->ref_supplier=$obj->facnumber; + $facturestatic->ref_supplier=$obj->ref_supplier; print $facturestatic->getNomUrl(1); print "'.dol_trunc($obj->facnumber,10)."'.dol_trunc($obj->ref_supplier,10)."'.dol_print_date($db->jdate($obj->datef),'day').''.dol_print_date($db->jdate($obj->date_echeance),'day'); if (($obj->paye == 0) && ($obj->fk_statut > 0) && $db->jdate($obj->date_echeance) < ($now - $conf->facture->fournisseur->warning_delay)) print img_picto($langs->trans("Late"),"warning"); diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php index 51b9972260e..9ee8f4d9a23 100644 --- a/htdocs/fourn/facture/paiement.php +++ b/htdocs/fourn/facture/paiement.php @@ -192,7 +192,7 @@ if ($action == 'create' || $action == 'add_paiement') $dateinvoice=($datefacture==''?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0):$datefacture); $sql = 'SELECT s.nom, s.rowid as socid,'; - $sql.= ' f.rowid as ref, f.facnumber, f.amount, f.total_ttc as total'; + $sql.= ' f.rowid, f.ref, f.ref_supplier, f.amount, f.total_ttc as total'; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user "; $sql.= ' FROM '.MAIN_DB_PREFIX.'societe as s, '.MAIN_DB_PREFIX.'facture_fourn as f'; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; @@ -214,7 +214,7 @@ if ($action == 'create' || $action == 'add_paiement') print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; @@ -257,7 +257,7 @@ if ($action == 'create' || $action == 'add_paiement') /* * Autres factures impayees */ - $sql = 'SELECT f.rowid as facid, f.rowid as ref, f.facnumber, f.total_ht, f.total_ttc, f.datef as df'; + $sql = 'SELECT f.rowid as facid, f.ref, f.ref_supplier, f.total_ht, f.total_ttc, f.datef as df'; $sql.= ', SUM(pf.amount) as am'; $sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as f'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON pf.fk_facturefourn = f.rowid'; @@ -265,7 +265,7 @@ if ($action == 'create' || $action == 'add_paiement') $sql.= ' AND f.fk_soc = '.$object->socid; $sql.= ' AND f.paye = 0'; $sql.= ' AND f.fk_statut = 1'; // Statut=0 => non validee, Statut=2 => annulee - $sql.= ' GROUP BY f.rowid, f.facnumber, f.total_ht, f.total_ttc, f.datef'; + $sql.= ' GROUP BY f.rowid, f.ref_supplier, f.total_ht, f.total_ttc, f.datef'; $resql = $db->query($sql); if ($resql) { @@ -298,7 +298,7 @@ if ($action == 'create' || $action == 'add_paiement') print '
'.img_object($langs->trans('ShowBill'),'bill').' '.$objp->ref; print ''.$objp->facnumber.''.$objp->ref_supplier.''; @@ -441,7 +441,7 @@ if (empty($action)) print_liste_field_titre($langs->trans('Type'),'paiement.php','c.libelle','',$paramlist,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Account'),'paiement.php','ba.label','',$paramlist,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Amount'),'paiement.php','f.amount','',$paramlist,'align="right"',$sortfield,$sortorder); - //print_liste_field_titre($langs->trans('Invoice'),'paiement.php','facnumber','',$paramlist,'',$sortfield,$sortorder); + //print_liste_field_titre($langs->trans('Invoice'),'paiement.php','ref_supplier','',$paramlist,'',$sortfield,$sortorder); print "
'.price($objp->pamount).''; print $invoicesupplierstatic->getNomUrl(1); diff --git a/htdocs/fourn/fiche.php b/htdocs/fourn/fiche.php index 4a745fc9ef9..2d9a7a151b3 100644 --- a/htdocs/fourn/fiche.php +++ b/htdocs/fourn/fiche.php @@ -319,12 +319,12 @@ if ($object->fetch($id)) if ($user->rights->fournisseur->facture->lire) { // TODO move to DAO class - $sql = 'SELECT f.rowid,f.libelle,f.facnumber,f.fk_statut,f.datef as df,f.total_ttc as amount,f.paye,'; + $sql = 'SELECT f.rowid,f.libelle,f.ref_supplier,f.fk_statut,f.datef as df,f.total_ttc as amount,f.paye,'; $sql.= ' SUM(pf.amount) as am'; $sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as f'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON f.rowid=pf.fk_facturefourn'; $sql.= ' WHERE f.fk_soc = '.$object->id; - $sql.= ' GROUP BY f.rowid,f.libelle,f.facnumber,f.fk_statut,f.datef,f.total_ttc,f.paye'; + $sql.= ' GROUP BY f.rowid,f.libelle,f.ref_supplier,f.fk_statut,f.datef,f.total_ttc,f.paye'; $sql.= ' ORDER BY f.datef DESC'; $resql=$db->query($sql); if ($resql) @@ -349,7 +349,7 @@ if ($object->fetch($id)) print '
'; print ''; - print img_object($langs->trans('ShowBill'),'bill').' '.$obj->facnumber.' '.dol_trunc($obj->libelle,14).''.dol_print_date($db->jdate($obj->df),'day').''.price($obj->amount).''; diff --git a/htdocs/fourn/index.php b/htdocs/fourn/index.php index 25f781ccf0d..49ab7bdaeae 100644 --- a/htdocs/fourn/index.php +++ b/htdocs/fourn/index.php @@ -163,7 +163,7 @@ if (! empty($conf->fournisseur->enabled)) // Draft invoices if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire) { - $sql = "SELECT ff.facnumber, ff.rowid, ff.total_ttc, ff.type"; + $sql = "SELECT ff.ref_supplier, ff.rowid, ff.total_ttc, ff.type"; $sql.= ", s.nom, s.rowid as socid"; $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn as ff"; $sql.= ", ".MAIN_DB_PREFIX."societe as s"; @@ -192,7 +192,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- $obj = $db->fetch_object($resql); $var=!$var; print '
'; - $facturestatic->ref=$obj->facnumber; + $facturestatic->ref=$obj->ref; $facturestatic->id=$obj->rowid; $facturestatic->type=$obj->type; print $facturestatic->getNomUrl(1,''); @@ -321,7 +321,7 @@ if (count($companystatic->SupplierCategories)) //print "
\n"; -print ''; +print '
'; llxFooter(); diff --git a/htdocs/fourn/paiement/fiche.php b/htdocs/fourn/paiement/fiche.php index b967a43984c..30afab7e935 100644 --- a/htdocs/fourn/paiement/fiche.php +++ b/htdocs/fourn/paiement/fiche.php @@ -234,7 +234,7 @@ if ($result > 0) * Liste des factures */ $allow_delete = 1 ; - $sql = 'SELECT f.rowid as ref, f.facnumber as ref_supplier, f.total_ttc, pf.amount, f.rowid as facid, f.paye, f.fk_statut, s.nom, s.rowid as socid'; + $sql = 'SELECT f.rowid, f.ref, f.ref_supplier, f.total_ttc, pf.amount, f.rowid as facid, f.paye, f.fk_statut, s.nom, s.rowid as socid'; $sql .= ' FROM '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf,'.MAIN_DB_PREFIX.'facture_fourn as f,'.MAIN_DB_PREFIX.'societe as s'; $sql .= ' WHERE pf.fk_facturefourn = f.rowid AND f.fk_soc = s.rowid'; $sql .= ' AND pf.fk_paiementfourn = '.$object->id; diff --git a/htdocs/fourn/recap-fourn.php b/htdocs/fourn/recap-fourn.php index ba10ab420c0..78cde75300f 100644 --- a/htdocs/fourn/recap-fourn.php +++ b/htdocs/fourn/recap-fourn.php @@ -90,7 +90,7 @@ if ($socid > 0) print ''; - $sql = "SELECT s.nom, s.rowid as socid, f.facnumber, f.amount, f.datef as df,"; + $sql = "SELECT s.nom, s.rowid as socid, f.ref_supplier, f.amount, f.datef as df,"; $sql.= " f.paye as paye, f.fk_statut as statut, f.rowid as facid,"; $sql.= " u.login, u.rowid as userid"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture_fourn as f,".MAIN_DB_PREFIX."user as u"; diff --git a/htdocs/install/mysql/migration/3.3.0-3.4.0.sql b/htdocs/install/mysql/migration/3.3.0-3.4.0.sql index 5c2a86122ea..c47b7a9adcf 100755 --- a/htdocs/install/mysql/migration/3.3.0-3.4.0.sql +++ b/htdocs/install/mysql/migration/3.3.0-3.4.0.sql @@ -85,6 +85,7 @@ alter table llx_societe_rib CHANGE COLUMN adresse_proprio owner_address text; alter table llx_societe_address CHANGE COLUMN ville town text; alter table llx_societe_address CHANGE COLUMN cp zip varchar(10); alter table llx_expedition CHANGE COLUMN fk_expedition_methode fk_shipping_method integer; +alter table llx_facture_fourn CHANGE COLUMN facnumber ref_supplier varchar(30); ALTER TABLE llx_c_shipment_mode ADD COLUMN tracking VARCHAR(256) NOT NULL DEFAULT '' AFTER description; @@ -208,5 +209,3 @@ ALTER TABLE llx_user ADD COLUMN town varchar(50); ALTER TABLE llx_user ADD COLUMN fk_state integer DEFAULT 0; ALTER TABLE llx_user ADD COLUMN fk_country integer DEFAULT 0; - -ALTER TABLE llx_user_clicktodial ADD COLUMN url varchar(255); From 6e66922a6b5b0e1f865124f2a332be7d74d4e29c Mon Sep 17 00:00:00 2001 From: jfefe Date: Mon, 1 Apr 2013 18:46:53 +0200 Subject: [PATCH 07/22] Fix : in extrafield force output for date selector --- htdocs/core/class/extrafields.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index f9398c21cb8..5491c727ad6 100755 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -624,7 +624,7 @@ class ExtraFields $formstat = new Form($db); $showtime = in_array($type,array('datetime')) ? 1 : 0; - $out = $formstat->select_date($value, 'options_'.$key, $showtime, $showtime, $required, '', 1, 1, 0, 0, 1); + $out = $formstat->select_date($value, 'options_'.$key, $showtime, $showtime, $required, '', 1, 1, 1, 0, 1); //$out=''; } elseif (in_array($type,array('int','double'))) From ec52f54a522a0a6291f137d657c925c041271f17 Mon Sep 17 00:00:00 2001 From: jfefe Date: Mon, 1 Apr 2013 18:59:05 +0200 Subject: [PATCH 08/22] Unique function to show input or output of extrafields datas --- htdocs/core/class/commonobject.class.php | 104 +++++++++++++---------- 1 file changed, 60 insertions(+), 44 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index f9a1bad9ef7..43fb4234558 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2190,59 +2190,75 @@ abstract class CommonObject else return 0; } - /** + /** * Function to show lines of extrafields with output datas * * @param object $extrafields extrafield Object + * @param string $mode Show output (view) or input (edit) for extrafield * * return string */ - function showOptionals($extrafields) + function showOptionals($extrafields,$mode='view') { - global $_POST; + global $_POST; - $out = ''; + $out = ''; - if (! empty($this->array_options)) - { - $e = 0; - foreach($extrafields->attribute_label as $key=>$label) - { - $colspan='3'; - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$this->array_options["options_".$key]); - if ($extrafields->attribute_type[$key] == 'separate') - { - $out = $extrafields->showSeparator($key); - } - else - { - if ( !empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && ($e % 2) == 0) - { - $out .= ''; - $colspan='0'; - } - else - { - $out .= ''; - } - // Convert date into timestamp format - if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) - { - $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$this->array_options['options_'.$key]; - } - $out .= ''; - $out .=''."\n"; - - if (! empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && (($e % 2) == 1)) $out .= ''; - else $out .= ''; - $e++; - } - } - } - return $out; - } + if(count($extrafields->attribute_label) > 0) + { + $out .= "\n"; + $out .= ' '; + $out .= "\n"; + + $e = 0; + foreach($extrafields->attribute_label as $key=>$label) + { + $colspan='3'; + $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$this->array_options["options_".$key]); + if ($extrafields->attribute_type[$key] == 'separate') + { + $out .= $extrafields->showSeparator($key); + } + else + { + if ( !empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && ($e % 2) == 0) + { + $out .= ''; + $colspan='0'; + } + else + { + $out .= ''; + } + // Convert date into timestamp format + if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) + { + $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$this->array_options['options_'.$key]; + } + $out .= ''; + $out .=''."\n"; + + if (! empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && (($e % 2) == 1)) $out .= ''; + else $out .= ''; + $e++; + } + } + $out .= "\n"; + $out .= ' '; + } + return $out; + } /** From 7ca7c552c06b87410a9857fe28c0944bdf7c7ea3 Mon Sep 17 00:00:00 2001 From: jfefe Date: Mon, 1 Apr 2013 18:59:41 +0200 Subject: [PATCH 09/22] Use new function to show extrafields on products --- htdocs/product/fiche.php | 50 +++------------------------------------- 1 file changed, 3 insertions(+), 47 deletions(-) diff --git a/htdocs/product/fiche.php b/htdocs/product/fiche.php index 98a6c35aa09..e222476ac1e 100644 --- a/htdocs/product/fiche.php +++ b/htdocs/product/fiche.php @@ -779,30 +779,8 @@ else $parameters=array('colspan' => ' colspan="2"'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) - { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - // Show separator only - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - // Convert date into timestamp format - if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) - { - $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key]; - } - - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''."\n"; - } - } + { + print $object->showOptionals($extrafields,'edit'); } // Note (private, no output on invoices, propales...) @@ -1001,29 +979,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - // Show separator only - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - // Convert date into timestamp format - if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) - { - $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key]; - } - - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''."\n"; - } - } + print $object->showOptionals($extrafields,'edit'); } // Note From a8874ebcc8eeb6bce82d64f044a231cafd732723 Mon Sep 17 00:00:00 2001 From: jfefe Date: Mon, 1 Apr 2013 19:43:26 +0200 Subject: [PATCH 10/22] Uniformize usage of extrafields methods --- htdocs/adherents/fiche.php | 54 +++++-------------------- htdocs/adherents/type.php | 58 ++++++--------------------- htdocs/comm/action/fiche.php | 58 ++++++--------------------- htdocs/comm/mailing/fiche.php | 35 +++-------------- htdocs/comm/propal.php | 21 +--------- htdocs/commande/fiche.php | 20 +--------- htdocs/compta/facture.php | 18 +-------- htdocs/contact/fiche.php | 74 +++++------------------------------ htdocs/societe/soc.php | 67 +------------------------------ htdocs/user/fiche.php | 50 ++++------------------- 10 files changed, 66 insertions(+), 389 deletions(-) diff --git a/htdocs/adherents/fiche.php b/htdocs/adherents/fiche.php index 787cad2664f..e76d41a6fd2 100644 --- a/htdocs/adherents/fiche.php +++ b/htdocs/adherents/fiche.php @@ -64,6 +64,9 @@ if (! empty($conf->mailmanspip->enabled)) $object = new Adherent($db); $extrafields = new ExtraFields($db); +// fetch optionals attributes and labels +$extralabels=$extrafields->fetch_name_optionals_label('member'); + // Get object canvas (By default, this is not defined, so standard usage of dolibarr) $object->getCanvas($socid); $canvas = $object->canvas?$object->canvas:GETPOST("canvas"); @@ -282,14 +285,8 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->adherent->creer) $object->statut = $_POST["statut"]; $object->public = $_POST["public"]; - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=$_POST[$key]; - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); // Check if we need to also synchronize user information $nosyncuser=0; @@ -451,14 +448,8 @@ if ($action == 'add' && $user->rights->adherent->creer) $object->fk_soc = $socid; $object->public = $public; - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=$_POST[$key]; - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); // Check parameters if (empty($morphy) || $morphy == "-1") { @@ -684,9 +675,6 @@ if ($user->rights->adherent->creer && $action == 'confirm_add_spip' && $confirm $form = new Form($db); $formcompany = new FormCompany($db); -// fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label('member'); - $help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; llxHeader('',$langs->trans("Member"),$help_url); @@ -885,15 +873,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?GETPOST('options_'.$key,'alpha'):(isset($object->array_options["options_".$key])?$object->array_options["options_".$key]:'')); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''."\n"; - } + print $object->showOptionals($extrafields,'edit'); } /* @@ -1128,15 +1108,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''."\n"; - } + print $object->showOptionals($extrafields,'edit'); } // Third party Dolibarr @@ -1458,13 +1430,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=$object->array_options["options_$key"]; - print "\n"; - } + print $object->showOptionals($extrafields); } // Third party Dolibarr diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index f4a60f55cd9..72fc3cc2a37 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -56,6 +56,9 @@ $result=restrictedArea($user,'adherent',$rowid,'adherent_type'); $extrafields = new ExtraFields($db); +// fetch optionals attributes and labels +$extralabels=$extrafields->fetch_name_optionals_label('adherent_type'); + if (GETPOST('button_removefilter')) { $search_lastname=""; @@ -84,14 +87,8 @@ if ($action == 'add' && $user->rights->adherent->configurer) $adht->mail_valid = trim($_POST["mail_valid"]); $adht->vote = trim($_POST["vote"]); - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $adht->array_options[$key]=GETPOST($key); - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$adht); if ($adht->libelle) { @@ -127,14 +124,8 @@ if ($action == 'update' && $user->rights->adherent->configurer) $adht->mail_valid = trim($_POST["mail_valid"]); $adht->vote = trim($_POST["vote"]); - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $adht->array_options[$key]=GETPOST($key); - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$adht); $adht->update($user->id); @@ -167,8 +158,6 @@ llxHeader('',$langs->trans("MembersTypeSetup"),'EN:Module_Foundations|FR:Module_ $form=new Form($db); -// fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label('adherent_type'); // Liste of members type @@ -245,6 +234,7 @@ if (! $rowid && $action != 'create' && $action != 'edit') if ($action == 'create') { $form = new Form($db); + $adht = new AdherentType($db); print_fiche_titre($langs->trans("NewMemberType")); @@ -278,23 +268,11 @@ if ($action == 'create') // Other attributes $parameters=array(); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$act,$action); // Note that $action and $object may have been modified by hook - - print "
'.$label.''; - $out .= $extrafields->showOutputField($key,$value); - $out .= '
'.$label.''; + + switch($mode) { + case "view": + $out .= $extrafields->showOutputField($key,$value); + break; + case "edit": + $out .= $extrafields->showInputField($key,$value); + break; + } + + $out .= '
'; - print $extrafields->showInputField($key,$value); - print '
'; - print $extrafields->showInputField($key,$value); - print '
'; - print $extrafields->showInputField($key,$value); - print '
'; - print $extrafields->showInputField($key,$value); - print '
".$label.""; - print $extrafields->showOutputField($key,$value); - print "
\n"; - if (empty($reshook) && ! empty($extrafields->attribute_label)) { - print '

'; - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$act->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print ' width="30%">'.$label.''."\n"; - } - print '
'; - print $extrafields->showInputField($key,$value); - print '


'; + print $adht->showOptionals($extrafields,'edit'); } + print "
\n"; print '
'; print '
    '; @@ -356,23 +334,13 @@ if ($rowid > 0) // Other attributes $parameters=array(); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$act,$action); // Note that $action and $object may have been modified by hook - - print ''; - - //Extra field if (empty($reshook) && ! empty($extrafields->attribute_label)) { - print '

'; - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($adht->array_options['options_'.$key])?$adht->array_options['options_'.$key]:'')); - print '\n"; - } - print '
'.$label.''; - print $extrafields->showOutputField($key,$value); - print "


'; + // View extrafields + print $adht->showOptionals($extrafields); } + print ''; print ''; /* diff --git a/htdocs/comm/action/fiche.php b/htdocs/comm/action/fiche.php index 07a6647f4bb..2851e55dfd9 100644 --- a/htdocs/comm/action/fiche.php +++ b/htdocs/comm/action/fiche.php @@ -63,6 +63,9 @@ $actioncomm = new ActionComm($db); $contact = new Contact($db); $extrafields = new ExtraFields($db); +// fetch optionals attributes and labels +$extralabels=$extrafields->fetch_name_optionals_label('actioncomm'); + //var_dump($_POST); // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array @@ -203,14 +206,8 @@ if ($action == 'add_action') $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")).'
'; } - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $actioncomm->array_options[$key]=GETPOST($key); - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$actioncomm); if (! $error) { @@ -343,14 +340,8 @@ if ($action == 'update') } $actioncomm->userdone = $userdone; - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $actioncomm->array_options[$key]=GETPOST($key); - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$actioncomm); if (! $error) { @@ -395,9 +386,6 @@ llxHeader('',$langs->trans("Agenda"),$help_url); $form = new Form($db); $htmlactions = new FormActions($db); -// fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label('actioncomm'); - if ($action == 'create') { $contact = new Contact($db); @@ -603,22 +591,13 @@ if ($action == 'create') $parameters=array(); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$actioncomm,$action); // Note that $action and $object may have been modified by hook - print ''; if (empty($reshook) && ! empty($extrafields->attribute_label)) { - print '

'; - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($actioncomm->array_options["options_".$key])?$actioncomm->array_options["options_".$key]:'')); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print ' width="30%">'.$label.''."\n"; - } - print '
'; - print $extrafields->showInputField($key,$value); - print '

'; + print $actioncomm->showOptionals($extrafields,'edit'); } + + print ''; print '

'; print ''; @@ -838,24 +817,13 @@ if ($id > 0) // Other attributes $parameters=array('colspan' => ' colspan="3"', 'colspanvalue' => '3'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$act,$action); // Note that $action and $object may have been modified by hook - - print ''; - if (empty($reshook) && ! empty($extrafields->attribute_label)) { - print '

'; - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$act->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print ' width="30%">'.$label.''."\n"; - } - print '
'; - print $extrafields->showInputField($key,$value); - print '


'; + print $actioncomm->showOptionals($extrafields,'edit'); + } + print ''; print '

'; print '     '; diff --git a/htdocs/comm/mailing/fiche.php b/htdocs/comm/mailing/fiche.php index d04b9c7aefe..195db2d53a8 100644 --- a/htdocs/comm/mailing/fiche.php +++ b/htdocs/comm/mailing/fiche.php @@ -48,6 +48,9 @@ $result=$object->fetch($id); $extrafields = new ExtraFields($db); +// fetch optionals attributes and labels +$extralabels=$extrafields->fetch_name_optionals_label('mailing'); + // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('mailingcard')); @@ -631,8 +634,6 @@ if (! empty($_POST["cancel"])) * View */ -// fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label('mailing'); $help_url='EN:Module_EMailing|FR:Module_Mailing|ES:Módulo_Mailing'; llxHeader('',$langs->trans("Mailing"),$help_url); @@ -661,15 +662,7 @@ if ($action == 'create') $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } + print $object->showOptionals($extrafields,'edit'); } print ''; @@ -823,15 +816,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print "\n"; - } + print $object->showOptionals($extrafields); } print ''; @@ -1072,15 +1057,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print "\n"; - } + print $object->showOptionals($extrafields,'edit'); } print ''; diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 7cf90691655..8c51c4ff941 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -1347,24 +1347,7 @@ if ($action == 'create') $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - - // Show separator only - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } - } + print $object->showOptionals($extrafields,'edit'); } print ""; @@ -1849,7 +1832,7 @@ else print ''; } - + // TODO : use showOptionals($extrafields) function foreach($extrafields->attribute_label as $key=>$label) { $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index bdd61a6ace3..116fd5fe3cb 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -1564,15 +1564,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } + print $object->showOptionals($extrafields,'edit'); } // Template to use by default @@ -2091,15 +2083,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } + print $object->showOptionals($extrafields,'edit'); } // Total HT diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 935d475bb9e..c24f09f4baa 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -2097,23 +2097,7 @@ if ($action == 'create') $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - // Show separator only - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } - } + print $object->showOptionals($extrafields,'edit'); } // Modele PDF diff --git a/htdocs/contact/fiche.php b/htdocs/contact/fiche.php index 885711bb526..db0fe091cd9 100644 --- a/htdocs/contact/fiche.php +++ b/htdocs/contact/fiche.php @@ -50,6 +50,9 @@ if ($user->societe_id) $socid=$user->societe_id; $object = new Contact($db); $extrafields = new ExtraFields($db); +// fetch optionals attributes and labels +$extralabels=$extrafields->fetch_name_optionals_label('contact'); + // Get object canvas (By default, this is not defined, so standard usage of dolibarr) $object->getCanvas($id); $objcanvas=null; @@ -155,14 +158,8 @@ if (empty($reshook)) $object->birthday = dol_mktime(0,0,0,$_POST["birthdaymonth"],$_POST["birthdayday"],$_POST["birthdayyear"]); $object->birthday_alert = $_POST["birthday_alert"]; - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=GETPOST($key); - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); if (! $_POST["lastname"]) { @@ -252,14 +249,8 @@ if (empty($reshook)) $object->priv = $_POST["priv"]; $object->note = $_POST["note"]; - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=GETPOST($key); - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); $result = $object->update($_POST["contactid"], $user); @@ -283,8 +274,6 @@ if (empty($reshook)) * View */ -// fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label('contact'); $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('',$langs->trans("ContactsAddresses"),$help_url); @@ -518,22 +507,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options["options_".$key])?$object->array_options["options_".$key]:'')); - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } - } + print $object->showOptionals($extrafields,'edit'); } print "
"; @@ -740,22 +714,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print "\n"; - } - } + print $object->showOptionals($extrafields,'edit'); } $object->load_ref_elements(); @@ -959,20 +918,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options['options_'.$key])?$object->array_options['options_'.$key]:'')); - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - print ''.$label.''; - print $extrafields->showOutputField($key,$value); - print "\n"; - } - } + print $object->showOptionals($extrafields); } $object->load_ref_elements(); diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index 5b3106afa0d..17892d4631d 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -974,40 +974,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - $e=0; - foreach($extrafields->attribute_label as $key=>$label) - { - $colspan='3'; - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options["options_".$key])?$object->array_options["options_".$key]:'')); - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - if (($e % 2) == 0) - { - print ''; - $colspan='0'; - } - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print ''; - - // Convert date into timestamp format - if (in_array($extrafields->attribute_type[$key],array('date','datetime'))) - { - $value = dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]); - } - - print $extrafields->showInputField($key,$value); - print ''; - - if (($e % 2) == 1) print ''."\n"; - $e++; - } - } + print $object->showOptionals($extrafields,'edit'); } // Ajout du logo @@ -1416,37 +1383,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - $old_pos=0; - $e=0; - foreach($extrafields->attribute_label as $key=>$label) - { - $colspan = '3'; - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - if ($extrafields->attribute_type[$key] == 'separate') - { - print $extrafields->showSeparator($key); - } - else - { - if (($e % 2) == 0) - { - print ''."\n"; - $colspan = '0'; - } - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''."\n"; - print ''; - print $extrafields->showInputField($key,$value); - print ""."\n"; - - if (($e % 2) == 1 ) - { - print "\n"; - } - $e++; - } - } + print $object->showOptionals($extrafields,'edit'); } // Logo print ''; diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php index 1ef52efc85b..be62afba37f 100644 --- a/htdocs/user/fiche.php +++ b/htdocs/user/fiche.php @@ -187,14 +187,8 @@ if ($action == 'add' && $canadduser) $object->note = GETPOST("note"); $object->ldap_sid = GETPOST("ldap_sid"); - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=GETPOST($key); - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); // If multicompany is off, admin users must all be on entity 0. if (! empty($conf->multicompany->enabled)) @@ -329,14 +323,8 @@ if ($action == 'update' && ! $_POST["cancel"]) $object->openid = GETPOST("openid"); $object->fk_user = GETPOST("fk_user")>0?GETPOST("fk_user"):0; - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=GETPOST($key); - } - } + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); if (! empty($conf->multicompany->enabled)) { @@ -927,15 +915,7 @@ if (($action == 'create') || ($action == 'adduserldap')) $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } + print $object->showOptionals($extrafields,'edit'); } print "\n"; @@ -1304,15 +1284,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showOutputField($key,$value); - print ''."\n"; - } + print $object->showOptionals($extrafields); } print "\n"; @@ -1921,15 +1893,7 @@ else $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; - } + print $object->showOptionals($extrafields,'edit'); } print ''; From 94493453953788fa7cf2c33cbe2e0266e4f453f6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 20:15:52 +0200 Subject: [PATCH 11/22] Another step for menu management rewriting --- htdocs/core/menus/standard/auguria.lib.php | 2 +- htdocs/core/menus/standard/auguria_menu.php | 6 +- htdocs/core/menus/standard/eldy.lib.php | 2 +- htdocs/core/menus/standard/eldy_menu.php | 4 +- htdocs/core/menus/standard/empty.php | 190 ++++++++++++++------ htdocs/cron/list.php | 41 ++--- htdocs/main.inc.php | 4 +- htdocs/theme/auguria/style.css.php | 5 +- htdocs/theme/bureau2crea/style.css.php | 3 +- htdocs/theme/cameleo/style.css.php | 3 +- htdocs/theme/eldy/style.css.php | 12 +- 11 files changed, 175 insertions(+), 97 deletions(-) diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index d3be68503c0..43c270c188d 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -326,7 +326,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM } else if ($showmenu) { - print ''."\n"; + print ''."\n"; } } diff --git a/htdocs/core/menus/standard/auguria_menu.php b/htdocs/core/menus/standard/auguria_menu.php index 35d73f55dcc..bac7e57bc0d 100644 --- a/htdocs/core/menus/standard/auguria_menu.php +++ b/htdocs/core/menus/standard/auguria_menu.php @@ -175,8 +175,8 @@ class MenuManager require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php'; $this->menu=new Menu(); - if ($mode == 'top') $res=print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu); - if ($mode == 'left') $res=print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu); + if ($mode == 'top') $res=print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,0); + if ($mode == 'left') $res=print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu,0); if ($mode == 'jmobile') { $res=print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1); @@ -206,7 +206,7 @@ class MenuManager //var_dump($canonrelurl); //var_dump($canonnexturl); print '
    '; - if ($canonrelurl != $canonnexturl && $val['mainmenu'] != 'home') + if ($canonrelurl != $canonnexturl && ! in_array($val['mainmenu'],array('home','tools'))) { // We add sub entry print '
  • '.$langs->trans("MainArea").'-'.$val['titre'].'
  • '."\n"; diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 34ac773b1d1..1e2bf1c7fa2 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1242,7 +1242,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu } else if ($showmenu) { - print ''."\n"; + print ''."\n"; } } diff --git a/htdocs/core/menus/standard/eldy_menu.php b/htdocs/core/menus/standard/eldy_menu.php index d1751ead59c..04be9e3563a 100644 --- a/htdocs/core/menus/standard/eldy_menu.php +++ b/htdocs/core/menus/standard/eldy_menu.php @@ -131,8 +131,8 @@ class MenuManager require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php'; $this->menu=new Menu(); - if ($mode == 'top') $res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu); - if ($mode == 'left') $res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu); + if ($mode == 'top') $res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,0); + if ($mode == 'left') $res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu,0); if ($mode == 'jmobile') { $res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1); diff --git a/htdocs/core/menus/standard/empty.php b/htdocs/core/menus/standard/empty.php index 14093ce5995..240953afd57 100644 --- a/htdocs/core/menus/standard/empty.php +++ b/htdocs/core/menus/standard/empty.php @@ -60,8 +60,8 @@ class MenuManager /** * Show menu * - * @param string $mode 'top' or 'left' - * @return void + * @param string $mode 'top', 'left', 'jmobile' + * @return void */ function showmenu($mode) { @@ -72,23 +72,35 @@ class MenuManager require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php'; $this->menu=new Menu(); - if ($mode == 'top') + $res='ErrorBadParameterForMode'; + + $noout=0; + if ($mode == 'jmobile') $noout=1; + + if ($mode == 'top' || $mode == 'jmobile') { - print_start_menu_array_empty(); + if (empty($noout)) print_start_menu_array_empty(); // Home $showmode=1; $idsel='home'; $classname='class="tmenusel"'; - print_start_menu_entry_empty($idsel, $classname, $showmode); - print_text_menu_entry_empty($langs->trans("Home"), 1, dol_buildpath('/index.php',1).'?mainmenu=home&leftmenu=', $id, $idsel, $classname, $this->atarget); - print_end_menu_entry_empty($showmode); + if (empty($noout)) print_start_menu_entry_empty($idsel, $classname, $showmode); + if (empty($noout)) print_text_menu_entry_empty($langs->trans("Home"), 1, dol_buildpath('/index.php',1).'?mainmenu=home&leftmenu=', $id, $idsel, $classname, $this->atarget); + if (empty($noout)) print_end_menu_entry_empty($showmode); + $this->menu->add(dol_buildpath('/index.php',1), $langs->trans("Home"), 0, $showmode, $this->atarget, 'home', ''); - print_end_menu_array_empty(); + if (empty($noout)) print_end_menu_array_empty(); + + if ($mode == 'jmobile') + { + $this->topmenu=dol_clone($this->menu); + unset($this->menu->liste); + } } - if ($mode == 'left') + if ($mode == 'left' || $mode == 'jmobile') { // Put here left menu entries // ***** START ***** @@ -113,65 +125,131 @@ class MenuManager // do not change code after this - $alt=0; - $num=count($this->menu->liste); - for ($i = 0; $i < $num; $i++) + if (empty($noout)) { - $alt++; - if (empty($this->menu->liste[$i]['level'])) + $alt=0; + $num=count($this->menu->liste); + for ($i = 0; $i < $num; $i++) { - if (($alt%2==0)) + $alt++; + if (empty($this->menu->liste[$i]['level'])) { - print '
    '."\n"; + if (($alt%2==0)) + { + print '
    '."\n"; + } + else + { + print '
    '."\n"; + } } - else + + // Place tabulation + $tabstring=''; + $tabul=($this->menu->liste[$i]['level'] - 1); + if ($tabul > 0) { - print '
    '."\n"; + for ($j=0; $j < $tabul; $j++) + { + $tabstring.='   '; + } } - } - // Place tabulation - $tabstring=''; - $tabul=($this->menu->liste[$i]['level'] - 1); - if ($tabul > 0) - { - for ($j=0; $j < $tabul; $j++) + if ($this->menu->liste[$i]['level'] == 0) { + if ($this->menu->liste[$i]['enabled']) + { + print ''."\n"; + } + else + { + print ''."\n"; + } + print ''."\n"; + } + + if ($this->menu->liste[$i]['level'] > 0) { + print ''."\n"; + } + + // If next is a new block or end + if (empty($this->menu->liste[$i+1]['level'])) { - $tabstring.='   '; + print ''."\n"; + print "
    \n"; } } - - if ($this->menu->liste[$i]['level'] == 0) { - if ($this->menu->liste[$i]['enabled']) - { - print ''."\n"; - } - else - { - print ''."\n"; - } - print ''."\n"; - } - - if ($this->menu->liste[$i]['level'] > 0) { - print ''."\n"; - } - - // If next is a new block or end - if (empty($this->menu->liste[$i+1]['level'])) - { - print ''."\n"; - print "
    \n"; - } } + + if ($mode == 'jmobile') + { + $this->leftmenu=dol_clone($this->menu); + unset($this->menu->liste); + } } + + if ($mode == 'jmobile') + { + foreach($this->topmenu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + print '
      '; + print '
    • '; + if ($val['enabled'] == 1) + { + $relurl=dol_buildpath($val['url'],1); + $relurl=preg_replace('/__LOGIN__/',$user->login,$relurl); + $relurl=preg_replace('/__USERID__/',$user->id,$relurl); + + print ''.$val['titre'].''."\n"; + // Search submenu fot this entry + $tmpmainmenu=$val['mainmenu']; + $tmpleftmenu='all'; + //$submenu=new Menu(); + //$res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$submenu,1,$tmpmainmenu,$tmpleftmenu); + //$nexturl=dol_buildpath($submenu->liste[0]['url'],1); + $submenu=$this->leftmenu; + + $canonrelurl=preg_replace('/\?.*$/','',$relurl); + $canonnexturl=preg_replace('/\?.*$/','',$nexturl); + //var_dump($canonrelurl); + //var_dump($canonnexturl); + print '
        '; + if ($canonrelurl != $canonnexturl && ! in_array($val['mainmenu'],array('home','tools'))) + { + // We add sub entry + print '
      • '.$langs->trans("MainArea").'-'.$val['titre'].'
      • '."\n"; + } + foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + $relurl2=dol_buildpath($val2['url'],1); + $relurl2=preg_replace('/__LOGIN__/',$user->login,$relurl2); + $relurl2=preg_replace('/__USERID__/',$user->id,$relurl2); + //var_dump($val2); + print ''.$val2['titre'].''."\n"; + } + //var_dump($submenu); + print '
      '; + } + if ($val['enabled'] == 2) + { + print ''.$val['titre'].''; + } + print '
    • '; + print '
    '."\n"; + + break; // Only first menu entry (so home) + } + } + + unset($this->menu); + + return $res; } } diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php index efed9579d1f..a78b037d68b 100644 --- a/htdocs/cron/list.php +++ b/htdocs/cron/list.php @@ -105,34 +105,31 @@ if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->ex /* * View */ -if (!empty($status)) { - $pagetitle=$langs->trans("CronListActive"); -}else { - $pagetitle=$langs->trans("CronListInactive"); -} -llxHeader('',$pagetitle); - - -// Form object for popup $form = new Form($db); -if ($action == 'delete') -{ - $ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronDelete"),$langs->trans("CronConfirmDelete"),"confirm_delete",'','',1); - if ($ret == 'html') print '
    '; -} - -if ($action == 'execute'){ - $ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronExecute"),$langs->trans("CronConfirmExecute"),"confirm_execute",'','',1); - if ($ret == 'html') print '
    '; -} +if (!empty($status)) $pagetitle=$langs->trans("CronListActive"); +else $pagetitle=$langs->trans("CronListInactive"); +llxHeader('',$pagetitle); print_fiche_titre($pagetitle,'','setup'); print $langs->trans('CronInfo'); + +if ($action == 'delete') +{ + $ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronDelete"),$langs->trans("CronConfirmDelete"),"confirm_delete",'','',1); + if ($ret == 'html') print '
    '; +} + +if ($action == 'execute'){ + $ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronExecute"),$langs->trans("CronConfirmExecute"),"confirm_execute",'','',1); + if ($ret == 'html') print '
    '; +} + + // liste des jobs creer $object = new Cronjob($db); $result=$object->fetch_all($sortorder, $sortfield, $limit, $offset, $status, $filter); @@ -141,13 +138,11 @@ if ($result < 0) { } -print "

    "; -print $langs->trans('CronWaitingJobs'); -print "

    "; +print "

    "; if (count($object->lines)>0) { - print ''; + print '
    '; print ''; $arg_url='&page='.$page.'&status='.$status.'&search_label='.$search_label; print_liste_field_titre($langs->trans("CronLabel"),$_SERVEUR['PHP_SELF'],"t.label","",$arg_url,'',$sortfield,$sortorder); diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 3f3695c7d27..c254f4a74db 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1294,7 +1294,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '
    '."\n"; - if (empty($_SESSION['dol_hide_topmenu'])) + if (empty($_SESSION['dol_hide_topmenu']) && ! GETPOST('dol_hide_topmenu')) { print '
    '."\n"; @@ -1425,7 +1425,7 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me // Instantiate hooks of thirdparty module $hookmanager->initHooks(array('searchform','leftblock')); - if (empty($_SESSION['dol_hide_leftmenu'])) + if (empty($_SESSION['dol_hide_leftmenu']) && ! GETPOST('dol_hide_leftmenu')) { if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print "\n".'
    '."\n"; else print '
    '; diff --git a/htdocs/theme/auguria/style.css.php b/htdocs/theme/auguria/style.css.php index 206bf49e442..52bf676fca6 100644 --- a/htdocs/theme/auguria/style.css.php +++ b/htdocs/theme/auguria/style.css.php @@ -594,9 +594,10 @@ a.vmenu:link, a.vmenu:visited, a.vmenu:hover, a.vmenu:active { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #D0D0D0; margin: 1px 1px 1px 5px; } a.vmenu:hover { color: #CCDDEE; } -a.vsmenu:link, a.vsmenu:visited, a.vsmenu:hover, a.vsmenu:active { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #202020; margin: 1px 1px 1px 5px; } -font.vsmenudisabled { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #93a5aa; margin: 1px 1px 1px 5px; } +a.vsmenu:link, a.vsmenu:visited, a.vsmenu:hover, a.vsmenu:active { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #202020; } +font.vsmenudisabled { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #93a5aa; } a.vsmenu:hover { color: #556677; } +font.vsmenudisabledmargin { margin: 1px 1px 1px 5px; } a.help:link, a.help:visited, a.help:hover, a.help:active { font-size:px; font-family: ; text-align: ; font-weight: normal; } diff --git a/htdocs/theme/bureau2crea/style.css.php b/htdocs/theme/bureau2crea/style.css.php index 45e2285d44a..9927b0d757a 100644 --- a/htdocs/theme/bureau2crea/style.css.php +++ b/htdocs/theme/bureau2crea/style.css.php @@ -645,7 +645,8 @@ a.vsmenu:link { font-size:11px; text-align:left; font-weight: normal; colo a.vsmenu:visited { font-size:11px; text-align:left; font-weight: normal; color: #202020; margin: 1px 1px 1px 4px; } a.vsmenu:active { font-size:11px; text-align:left; font-weight: normal; color: RGB(94,148,181); margin: 1px 1px 1px 4px; } a.vsmenu:hover { font-size:11px; text-align:left; font-weight: normal; color: #7F0A29; margin: 1px 1px 1px 4px; } -font.vsmenudisabled { font-size:11px; text-align:left; font-weight: normal; color: #202020; margin: 1px 1px 1px 4px; } +font.vsmenudisabled { font-size:11px; text-align:left; font-weight: normal; color: #202020; } +font.vsmenudisabledmargin { margin: 1px 1px 1px 4px; } a.help:link { font-size: 10px; font-weight: bold; background: #FFFFFF; border: 1px solid #8CACBB; color: #68ACCF; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; } a.help:visited { font-size: 10px; font-weight: bold; background: #FFFFFF; border: 1px solid #8CACBB; color: #68ACCF; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; } diff --git a/htdocs/theme/cameleo/style.css.php b/htdocs/theme/cameleo/style.css.php index c546b606e94..876debfb9f2 100644 --- a/htdocs/theme/cameleo/style.css.php +++ b/htdocs/theme/cameleo/style.css.php @@ -657,7 +657,8 @@ a.vsmenu:link { font-size:11px; text-align:left; font-weight: normal; colo a.vsmenu:visited { font-size:11px; text-align:left; font-weight: normal; color: #202020; margin: 1px 1px 1px 4px; } a.vsmenu:active { font-size:11px; text-align:left; font-weight: normal; color: RGB(94,148,181); margin: 1px 1px 1px 4px; } a.vsmenu:hover { font-size:11px; text-align:left; font-weight: normal; color: #7F0A29; margin: 1px 1px 1px 4px; } -font.vsmenudisabled { font-size:11px; text-align:left; font-weight: normal; color: #202020; margin: 1px 1px 1px 4px; } +font.vsmenudisabled { font-size:11px; text-align:left; font-weight: normal; color: #202020; } +font.vsmenudisabledmargin { margin: 1px 1px 1px 4px; } a.help:link { font-size: 10px; font-weight: bold; background: #FFFFFF; border: 1px solid #8CACBB; color: #68ACCF; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; } a.help:visited { font-size: 10px; font-weight: bold; background: #FFFFFF; border: 1px solid #8CACBB; color: #68ACCF; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; } diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index eb5d6b058f6..f2f4a219783 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -356,7 +356,7 @@ td.showDragHandle { /* ============================================================================== */ div.fiche { - margin-: browser->phone) || empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT))?'20':'24')); ?>px; + margin-: global->MAIN_MENU_USE_JQUERY_LAYOUT))?(empty($conf->browser->phone)?'20':'4'):'24')); ?>px; margin-: browser->phone)?'12':'6')); ?>px; } @@ -839,9 +839,10 @@ a.vmenu:link, a.vmenu:visited, a.vmenu:hover, a.vmenu:active { font-size:px; font-family: ; text-align: ; font-weight: bold; color: #93a5aa; } a.vmenu:link, a.vmenu:visited { color: #; } -a.vsmenu:link, a.vsmenu:visited, a.vsmenu:hover, a.vsmenu:active { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #202020; padding: 1px 1px 1px 8px; } -font.vsmenudisabled { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #93a5aa; margin: 1px 1px 1px 8px; } +a.vsmenu:link, a.vsmenu:visited, a.vsmenu:hover, a.vsmenu:active { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #202020; margin: 1px 1px 1px 8px; } +font.vsmenudisabled { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #93a5aa; } a.vsmenu:link, a.vsmenu:visited { color: #; } +font.vsmenudisabledmargin { margin: 1px 1px 1px 8px; } a.help:link, a.help:visited, a.help:hover, a.help:active { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #666666; } @@ -2522,8 +2523,9 @@ div.dolEventError h1, div.dolEventError h2 { /* ============================================================================== */ .ui-body-c .ui-link { - color: #111 !important; + color: #FFF !important; } +/* .ui-li-divider { background: #eee !important; } @@ -2546,7 +2548,7 @@ div.dolEventError h1, div.dolEventError h2 { color: #444 !important; text-shadow: 0 1px 1px #fff !important; } - +*/ close(); From 7d32db73c6a3b06877eb212e4fb52cbb35cc6e63 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 20:59:51 +0200 Subject: [PATCH 12/22] Fix: Restore lost commit. --- htdocs/compta/index.php | 2 +- htdocs/fourn/index.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index 7600e05d0d8..aad8dbbc19f 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -1033,7 +1033,7 @@ if ($resql) } //print '
    '; -print '
    '; +print '
    '; llxFooter(); diff --git a/htdocs/fourn/index.php b/htdocs/fourn/index.php index 49ab7bdaeae..70aacc894ad 100644 --- a/htdocs/fourn/index.php +++ b/htdocs/fourn/index.php @@ -321,7 +321,7 @@ if (count($companystatic->SupplierCategories)) //print "\n"; -print '
    '; +print ''; llxFooter(); From ef6e06bcaaa190cbd419017a2c6ca3cf9fdaba57 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 21:55:59 +0200 Subject: [PATCH 13/22] Fix: Default background if css3 not used --- htdocs/theme/eldy/style.css.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index f2f4a219783..db31a7f917f 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -1594,6 +1594,7 @@ table.liste td { div.liste_titre, tr.liste_titre, tr.liste_titre_sel { height: 20px !important; + background: #7699A9; background-repeat: repeat-x; @@ -1603,7 +1604,6 @@ div.liste_titre, tr.liste_titre, tr.liste_titre_sel background-image: -ms-linear-gradient(bottom, rgb() 15%, rgb() 100%); background-image: linear-gradient(bottom, rgb() 15%, rgb() 100%); - background: #7699A9; background-image: url(); color: #; From 80e34c8e1c84b54bfb09ba061a38fd955bdf8a5e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 22:16:55 +0200 Subject: [PATCH 14/22] New: Add option INVOICE_CAN_NEVER_BE_REMOVED --- htdocs/compta/facture/class/facture.class.php | 5 +++-- htdocs/theme/eldy/style.css.php | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 3b38ccb3fd0..5c78415d686 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2590,7 +2590,7 @@ class Facture extends CommonInvoice /** * Return if an invoice can be deleted * Rule is: - * If hidden option FACTURE_CAN_BE_REMOVED is on, we can + * If hidden option INVOICE_CAN_ALWAYS_BE_REMOVED is on, we can * If invoice has a definitive ref, is last, without payment and not dipatched into accountancy -> yes end of rule * If invoice is draft and ha a temporary ref -> yes * @@ -2600,7 +2600,8 @@ class Facture extends CommonInvoice { global $conf; - if (! empty($conf->global->FACTURE_CAN_BE_REMOVED)) return 1; + if (! empty($conf->global->INVOICE_CAN_ALWAYS_BE_REMOVED)) return 1; + if (! empty($conf->global->INVOICE_CAN_NEVER_BE_REMOVED)) return 1; // on verifie si la facture est en numerotation provisoire $facref = substr($this->ref, 1, 4); diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index db31a7f917f..bf87c6cb0e0 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -356,7 +356,7 @@ td.showDragHandle { /* ============================================================================== */ div.fiche { - margin-: global->MAIN_MENU_USE_JQUERY_LAYOUT))?(empty($conf->browser->phone)?'20':'4'):'24')); ?>px; + margin-: global->MAIN_MENU_USE_JQUERY_LAYOUT))?((empty($_SESSION['dol_hide_leftmenu']) && ! GETPOST('dol_hide_leftmenu')) ?'20':'4'):'24')); ?>px; margin-: browser->phone)?'12':'6')); ?>px; } From 954af0f6c7482b9f4c717bf1b4b380239df3a2b7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 22:17:51 +0200 Subject: [PATCH 15/22] New: Add option INVOICE_CAN_NEVER_BE_REMOVED --- ChangeLog | 1 + htdocs/compta/facture/class/facture.class.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ab1fe32aa8f..4618529b009 100644 --- a/ChangeLog +++ b/ChangeLog @@ -28,6 +28,7 @@ For users: - New: Script email_unpaid_invoices_to_representative accepts now a parameter test and a delay. - New: Can define a different clicktodial setup per user. +- New: Add option INVOICE_CAN_NEVER_BE_REMOVED. - First change to prepare feature click to print for PDF. For translators: diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 5c78415d686..a24b21c51a8 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2601,7 +2601,7 @@ class Facture extends CommonInvoice global $conf; if (! empty($conf->global->INVOICE_CAN_ALWAYS_BE_REMOVED)) return 1; - if (! empty($conf->global->INVOICE_CAN_NEVER_BE_REMOVED)) return 1; + if (! empty($conf->global->INVOICE_CAN_NEVER_BE_REMOVED)) return 0; // on verifie si la facture est en numerotation provisoire $facref = substr($this->ref, 1, 4); From 110d0f1d3b34eaf3475bfecbb3b40e02a9dc51fa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 22:35:54 +0200 Subject: [PATCH 16/22] Fix: Better error management --- htdocs/fourn/facture/fiche.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 1e92ced62ab..470dec637d6 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -1253,14 +1253,16 @@ else $productstatic = new Product($db); $object->fetch($id); - $object->fetch_thirdparty(); + $result=$object->fetch_thirdparty(); + if ($result < 0) dol_print_error($db); $societe = new Fournisseur($db); - $societe->fetch($object->socid); + $result=$societe->fetch($object->socid); + if ($result < 0) dol_print_error($db); /* * View card - */ + */ $head = facturefourn_prepare_head($object); $titre=$langs->trans('SupplierInvoice'); dol_fiche_head($head, 'card', $titre, 0, 'bill'); From 29a1640b4c5c5db983a36bf19cf0d653f9b0b472 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 22:39:27 +0200 Subject: [PATCH 17/22] Qual: Normalize field ref_supplier into supplier invoices (replace facnumber). --- htdocs/core/boxes/box_factures_fourn.php | 4 ++-- htdocs/core/boxes/box_factures_fourn_imp.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/boxes/box_factures_fourn.php b/htdocs/core/boxes/box_factures_fourn.php index 777491c08a6..5fbb2f62a87 100644 --- a/htdocs/core/boxes/box_factures_fourn.php +++ b/htdocs/core/boxes/box_factures_fourn.php @@ -64,7 +64,7 @@ class box_factures_fourn extends ModeleBoxes if ($user->rights->fournisseur->facture->lire) { $sql = "SELECT s.nom, s.rowid as socid,"; - $sql.= " f.rowid as facid, f.facnumber, f.amount,"; + $sql.= " f.rowid as facid, f.ref_supplier, f.amount,"; $sql.= " f.paye, f.fk_statut,"; $sql.= ' f.datef as df,'; $sql.= ' f.datec as datec,'; @@ -102,7 +102,7 @@ class box_factures_fourn extends ModeleBoxes 'url' => DOL_URL_ROOT."/fourn/facture/fiche.php?facid=".$objp->facid); $this->info_box_contents[$i][1] = array('td' => 'align="left"', - 'text' => $objp->facnumber, + 'text' => $objp->ref_supplier, 'text2'=> $late, 'url' => DOL_URL_ROOT."/fourn/facture/fiche.php?facid=".$objp->facid); diff --git a/htdocs/core/boxes/box_factures_fourn_imp.php b/htdocs/core/boxes/box_factures_fourn_imp.php index 1b37cf034af..7a5684eebf7 100644 --- a/htdocs/core/boxes/box_factures_fourn_imp.php +++ b/htdocs/core/boxes/box_factures_fourn_imp.php @@ -61,7 +61,7 @@ class box_factures_fourn_imp extends ModeleBoxes if ($user->rights->fournisseur->facture->lire) { $sql = "SELECT s.nom, s.rowid as socid,"; - $sql.= " f.rowid as facid, f.facnumber, f.date_lim_reglement as datelimite,"; + $sql.= " f.rowid as facid, f.ref_supplier, f.date_lim_reglement as datelimite,"; $sql.= " f.amount, f.datef as df,"; $sql.= " f.paye, f.fk_statut, f.type"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; @@ -98,7 +98,7 @@ class box_factures_fourn_imp extends ModeleBoxes 'url' => DOL_URL_ROOT."/fourn/facture/fiche.php?facid=".$objp->facid); $this->info_box_contents[$i][1] = array('td' => 'align="left"', - 'text' => $objp->facnumber, + 'text' => $objp->ref_supplier, 'text2'=> $late, 'url' => DOL_URL_ROOT."/fourn/facture/fiche.php?facid=".$objp->facid); From aba9fd8fc502757ec86d0893a2e6eb7c7198a0d7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 23:01:38 +0200 Subject: [PATCH 18/22] Fix: Nowrap --- htdocs/core/boxes/box_actions.php | 2 +- htdocs/core/lib/functions.lib.php | 2 +- htdocs/index.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/boxes/box_actions.php b/htdocs/core/boxes/box_actions.php index 20462fa80d5..6c6a6d8d036 100644 --- a/htdocs/core/boxes/box_actions.php +++ b/htdocs/core/boxes/box_actions.php @@ -101,7 +101,7 @@ class box_actions extends ModeleBoxes 'logo' => ("action"), 'url' => DOL_URL_ROOT."/comm/action/fiche.php?id=".$objp->id); - $this->info_box_contents[$i][1] = array('td' => 'align="left" nowrap="1"', + $this->info_box_contents[$i][1] = array('td' => 'align="left"', 'text' => dol_trunc($label,32), 'text2'=> $late, 'url' => DOL_URL_ROOT."/comm/action/fiche.php?id=".$objp->id); diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 656841297ad..33b694f5ed5 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1581,7 +1581,7 @@ function dol_print_graph($htmlid,$width,$height,$data,$showlegend=0,$type='pie', * MAIN_DISABLE_TRUNC=1 can disable all truncings * * @param string $string String to truncate - * @param int $size Max string size visible. 0 for no limit. finale string size can be 1 more (if size was max+1) or 3 more (if we added ...) + * @param int $size Max string size visible. 0 for no limit. Final string size can be 1 more (if size was max+1) or 3 more (if we added ...) * @param string $trunc Where to trunc: right, left, middle (size must be a 2 power), wrap * @param string $stringencoding Tell what is source string encoding * @param int $nodot Truncation do not add ... after truncation. So it's an exact truncation. diff --git a/htdocs/index.php b/htdocs/index.php index adb3c8e6f49..294443adff1 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -260,7 +260,7 @@ print ''.$langs->trans("Number").''; print ''.$langs->trans("Late").''; print ' '; print ' '; -if ($showweather) print ' '; +if ($showweather) print ' '; print ''; @@ -483,7 +483,7 @@ foreach($dashboardlines as $key => $board) print ''; if ($showweather) { - print ''; + print ''; $text=''; if ($totallate > 0) $text=$langs->transnoentitiesnoconv("WarningYouHaveAtLeastOneTaskLate").' ('.$langs->transnoentitiesnoconv("NActionsLate",$totallate).')'; $options='height="64px"'; From c8bc0a1ec94fb616988822231d343232ab6e5d40 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 23:38:39 +0200 Subject: [PATCH 19/22] New: Prepare to code to support jmobile. --- build/debian/rules | 1 - htdocs/core/getmenu_jmobile.php | 2 +- htdocs/main.inc.php | 46 +++++++++++++++++++-------------- htdocs/theme/eldy/style.css.php | 2 +- 4 files changed, 29 insertions(+), 22 deletions(-) diff --git a/build/debian/rules b/build/debian/rules index 6b75c68b85d..5a1cfdc8ecb 100755 --- a/build/debian/rules +++ b/build/debian/rules @@ -104,7 +104,6 @@ clean: rm -fr htdocs/includes/jquery/plugins/flot rm -fr htdocs/includes/jquery/plugins/jstree rm -fr htdocs/includes/jquery/plugins/lightbox - rm -fr htdocs/includes/jquery/plugins/mobile rm -fr htdocs/includes/jquery/plugins/multiselect rm -fr htdocs/includes/phpexcel/PHPExcel/Shared/PDF rm -fr htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip diff --git a/htdocs/core/getmenu_jmobile.php b/htdocs/core/getmenu_jmobile.php index 78c46c60fbb..988dec4339a 100644 --- a/htdocs/core/getmenu_jmobile.php +++ b/htdocs/core/getmenu_jmobile.php @@ -50,7 +50,7 @@ $left=($langs->trans("DIRECTION")=='rtl'?'right':'left'); * View */ -// URL http://mydolibarr/core/getmenu_jmobime?mainmenu=mainmenu&leftmenu=leftmenu can be used for tests +// URL http://mydolibarr/core/getmenu_jmobile?mainmenu=mainmenu&leftmenu=leftmenu can be used for tests $arrayofjs=array('/includes/jquery/plugins/mobile/jquery.mobile-latest.min.js'); $arrayofcss=array('/includes/jquery/plugins/mobile/jquery.mobile-latest.min.css'); top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index c254f4a74db..bae7f0de7f2 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -647,9 +647,6 @@ if (! defined('NOLOGIN')) $conf->css = "/theme/".$conf->theme."/style.css.php"; } - // If theme support option like flip-hide left menu and we use a smartphone, we force it - if (! empty($conf->global->MAIN_SMARTPHONE_OPTIM) && $conf->browser->phone && $conf->theme == 'eldy') $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT='forced'; - // Set javascript option if (! GETPOST('nojs')) // If javascript was not disabled on URL { @@ -949,6 +946,11 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs { print ''."\n"; } + // jQuery jMobile + if (! empty($conf->global->MAIN_USE_JQUERY_JMOBILE) || defined('REQUIRE_JQUERY_JMOBILE') || GETPOST('jmobile')) + { + print ''."\n"; + } } print ''."\n"; @@ -969,7 +971,9 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs } $themeparam='?lang='.$langs->defaultlang.'&theme='.$conf->theme.(GETPOST('optioncss')?'&optioncss='.GETPOST('optioncss','alpha',1):'').'&userid='.$user->id.'&entity='.$conf->entity; if (! empty($_SESSION['dol_resetcache'])) $themeparam.='&dol_resetcache='.$_SESSION['dol_resetcache']; - //print 'themepath='.$themepath.' themeparam='.$themeparam;exit; + if (GETPOST('dol_hide_topmenu')) $themeparam.='&dol_hide_topmenu=1'; + if (GETPOST('dol_hide_leftmenu')) $themeparam.='&dol_hide_leftmenu=1'; + //print 'themepath='.$themepath.' themeparam='.$themeparam;exit; print ''."\n"; // CSS forced by modules (relative url starting with /) @@ -1005,11 +1009,11 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; - // Output standard javascript links - if (! $disablejs && ! empty($conf->use_javascript_ajax)) - { - $ext='.js'; + $ext='.js'; + // Output standard javascript links + if (! defined('DISABLE_JQUERY') && ! $disablejs && ! empty($conf->use_javascript_ajax)) + { // JQuery. Must be before other includes print ''."\n"; if (constant('JS_JQUERY')) print ''."\n"; @@ -1101,6 +1105,21 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs { print ''."\n"; } + // jQuery Timepicker + if (! empty($conf->global->MAIN_USE_JQUERY_TIMEPICKER) || defined('REQUIRE_JQUERY_TIMEPICKER')) + { + print ''."\n"; + print ''."\n"; + } + // jQuery jMobile + if (! empty($conf->global->MAIN_USE_JQUERY_JMOBILE) || defined('REQUIRE_JQUERY_JMOBILE') || GETPOST('jmobile')) + { + print ''."\n"; + } + } + + if (! $disablejs && ! empty($conf->use_javascript_ajax)) + { // CKEditor if (! empty($conf->fckeditor->enabled) && (empty($conf->global->FCKEDITOR_EDITORNAME) || $conf->global->FCKEDITOR_EDITORNAME == 'ckeditor')) { @@ -1115,11 +1134,6 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs print ''."\n"; print ''."\n"; } - // jQuery Timepicker - if (! empty($conf->global->MAIN_USE_JQUERY_TIMEPICKER) || defined('REQUIRE_JQUERY_TIMEPICKER')) - { - print ''."\n"; - } // Global js function print ''."\n"; @@ -1128,12 +1142,6 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs // Add datepicker default options print ''."\n"; - // add timepicker default options - if (! empty($conf->global->MAIN_USE_JQUERY_TIMEPICKER) || defined('REQUIRE_JQUERY_TIMEPICKER')) - { - print ''."\n"; - } - // JS forced by modules (relative url starting with /) if (! empty($conf->modules_parts['js'])) // $conf->modules_parts['js'] is array('module'=>array('file1','file2')) { diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index bf87c6cb0e0..19398105406 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -356,7 +356,7 @@ td.showDragHandle { /* ============================================================================== */ div.fiche { - margin-: global->MAIN_MENU_USE_JQUERY_LAYOUT))?((empty($_SESSION['dol_hide_leftmenu']) && ! GETPOST('dol_hide_leftmenu')) ?'20':'4'):'24')); ?>px; + margin-: global->MAIN_MENU_USE_JQUERY_LAYOUT))?((empty($_SESSION['dol_hide_leftmenu']) && ! GETPOST('dol_hide_leftmenu'))?'20':'4'):'24')); ?>px; margin-: browser->phone)?'12':'6')); ?>px; } From 147032edcb647f2aac9ab4901612d482643fb9ef Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 23:42:32 +0200 Subject: [PATCH 20/22] Qual: Removed deprecated theme. --- htdocs/theme/phones/index.php | 1 - htdocs/theme/phones/smartphone/AUTHOR | 1 - htdocs/theme/phones/smartphone/index.php | 1 - .../smartphone/theme/default/default.css.php | 531 ------------------ .../theme/default/img/accessibility.png | Bin 1282 -> 0 bytes .../smartphone/theme/default/img/appstore.png | Bin 1660 -> 0 bytes .../smartphone/theme/default/img/basics.png | Bin 1332 -> 0 bytes .../theme/default/img/calculator.png | Bin 1239 -> 0 bytes .../smartphone/theme/default/img/calendar.png | Bin 1103 -> 0 bytes .../theme/default/img/calendar2.png | Bin 536 -> 0 bytes .../smartphone/theme/default/img/camera.png | Bin 1507 -> 0 bytes .../smartphone/theme/default/img/clock.png | Bin 1014 -> 0 bytes .../smartphone/theme/default/img/close.png | Bin 343 -> 0 bytes .../smartphone/theme/default/img/compass.png | Bin 2035 -> 0 bytes .../smartphone/theme/default/img/contacts.png | Bin 1505 -> 0 bytes .../smartphone/theme/default/img/dolibarr.png | Bin 4826 -> 0 bytes .../smartphone/theme/default/img/favicon.ico | Bin 3638 -> 0 bytes .../smartphone/theme/default/img/help.png | Bin 1426 -> 0 bytes .../theme/default/img/homescreen.png | Bin 742 -> 0 bytes .../smartphone/theme/default/img/ipod.png | Bin 1030 -> 0 bytes .../smartphone/theme/default/img/itunes.png | Bin 1638 -> 0 bytes .../smartphone/theme/default/img/mail.png | Bin 1491 -> 0 bytes .../smartphone/theme/default/img/maps.png | Bin 1662 -> 0 bytes .../smartphone/theme/default/img/messages.png | Bin 1412 -> 0 bytes .../smartphone/theme/default/img/music.png | Bin 1424 -> 0 bytes .../smartphone/theme/default/img/nike+.png | Bin 1106 -> 0 bytes .../smartphone/theme/default/img/notepad.png | Bin 1266 -> 0 bytes .../smartphone/theme/default/img/other.png | Bin 1566 -> 0 bytes .../theme/default/img/otherapps.png | Bin 1661 -> 0 bytes .../smartphone/theme/default/img/photos.png | Bin 1639 -> 0 bytes .../smartphone/theme/default/img/plugin.png | Bin 1690 -> 0 bytes .../smartphone/theme/default/img/safari.png | Bin 1636 -> 0 bytes .../smartphone/theme/default/img/settings.png | Bin 1340 -> 0 bytes .../smartphone/theme/default/img/sketches.png | Bin 1601 -> 0 bytes .../smartphone/theme/default/img/sms.png | Bin 1264 -> 0 bytes .../smartphone/theme/default/img/start.png | Bin 1162 -> 0 bytes .../smartphone/theme/default/img/stocks.png | Bin 1523 -> 0 bytes .../smartphone/theme/default/img/support.png | Bin 2238 -> 0 bytes .../theme/default/img/telephone.png | Bin 1087 -> 0 bytes .../smartphone/theme/default/img/tools.png | Bin 2342 -> 0 bytes .../smartphone/theme/default/img/video.png | Bin 1649 -> 0 bytes .../smartphone/theme/default/img/voice.png | Bin 1932 -> 0 bytes .../smartphone/theme/default/img/weather.png | Bin 1523 -> 0 bytes .../theme/default/img/wordpress.png | Bin 1388 -> 0 bytes .../smartphone/theme/default/img/youtube.png | Bin 1418 -> 0 bytes .../phones/smartphone/theme/default/index.php | 1 - .../phones/smartphone/tpl/header.tpl.php | 28 - htdocs/theme/phones/smartphone/tpl/index.php | 1 - .../theme/phones/smartphone/tpl/login.tpl.php | 104 ---- .../theme/phones/smartphone/tpl/menu.tpl.php | 80 --- .../smartphone/tpl/passwordforgotten.tpl.php | 82 --- 51 files changed, 830 deletions(-) delete mode 100644 htdocs/theme/phones/index.php delete mode 100644 htdocs/theme/phones/smartphone/AUTHOR delete mode 100644 htdocs/theme/phones/smartphone/index.php delete mode 100644 htdocs/theme/phones/smartphone/theme/default/default.css.php delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/accessibility.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/appstore.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/basics.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/calculator.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/calendar.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/calendar2.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/camera.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/clock.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/close.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/compass.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/contacts.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/dolibarr.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/favicon.ico delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/help.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/homescreen.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/ipod.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/itunes.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/mail.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/maps.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/messages.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/music.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/nike+.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/notepad.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/other.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/otherapps.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/photos.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/plugin.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/safari.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/settings.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/sketches.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/sms.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/start.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/stocks.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/support.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/telephone.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/tools.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/video.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/img/voice.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/weather.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/wordpress.png delete mode 100755 htdocs/theme/phones/smartphone/theme/default/img/youtube.png delete mode 100644 htdocs/theme/phones/smartphone/theme/default/index.php delete mode 100644 htdocs/theme/phones/smartphone/tpl/header.tpl.php delete mode 100644 htdocs/theme/phones/smartphone/tpl/index.php delete mode 100644 htdocs/theme/phones/smartphone/tpl/login.tpl.php delete mode 100644 htdocs/theme/phones/smartphone/tpl/menu.tpl.php delete mode 100644 htdocs/theme/phones/smartphone/tpl/passwordforgotten.tpl.php diff --git a/htdocs/theme/phones/index.php b/htdocs/theme/phones/index.php deleted file mode 100644 index 7db0dd9ebf9..00000000000 --- a/htdocs/theme/phones/index.php +++ /dev/null @@ -1 +0,0 @@ -Url not available \ No newline at end of file diff --git a/htdocs/theme/phones/smartphone/AUTHOR b/htdocs/theme/phones/smartphone/AUTHOR deleted file mode 100644 index 03de906bb12..00000000000 --- a/htdocs/theme/phones/smartphone/AUTHOR +++ /dev/null @@ -1 +0,0 @@ -2009-2010 Regis Houssin diff --git a/htdocs/theme/phones/smartphone/index.php b/htdocs/theme/phones/smartphone/index.php deleted file mode 100644 index 7db0dd9ebf9..00000000000 --- a/htdocs/theme/phones/smartphone/index.php +++ /dev/null @@ -1 +0,0 @@ -Url not available \ No newline at end of file diff --git a/htdocs/theme/phones/smartphone/theme/default/default.css.php b/htdocs/theme/phones/smartphone/theme/default/default.css.php deleted file mode 100644 index d13d69e7c20..00000000000 --- a/htdocs/theme/phones/smartphone/theme/default/default.css.php +++ /dev/null @@ -1,531 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file htdocs/theme/phones/smartphone/theme/default/default.css.php - * \brief Fichier de style CSS du theme Smartphone default - */ - -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled to increase speed. Language code is found on url. -if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled cause need to do translations -if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK',1); -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1); -if (! defined('NOLOGIN')) define('NOLOGIN',1); -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU',1); -if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML',1); -if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); - -session_cache_limiter(FALSE); - -require_once '../../../../../main.inc.php'; - -// Define css type -header('Content-type: text/css'); -// Important: Avoid page request by browser and dynamic build at -// each Dolibarr page access. -if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate'); -else header('Cache-Control: no-cache'); - -// On the fly GZIP compression for all pages (if browser support it). Must set the bit 3 of constant to 1. -if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x04)) { ob_start("ob_gzhandler"); } - -if (GETPOST('lang')) $langs->setDefaultLang(GETPOST('lang')); // If language was forced on URL -if (GETPOST('theme')) $conf->theme=GETPOST('theme'); // If theme was forced on URL -$langs->load("main",0,1); -$right=($langs->trans("DIRECTION")=='rtl'?'left':'right'); -$left=($langs->trans("DIRECTION")=='rtl'?'right':'left'); - -?> -.ui-mobile-viewport { -/*width:600px; -height:600px; -min-height: 200px; -min-width: 600px; -overflow:scroll; */ -} - -.landscape, .landscape .ui-page { -} - -#dol-homeheader { height: 40px; font-size: 16px; } - -.ui-mobile-viewport { - margin: 0; -} - -.ui-header { height: 40px; font-size: 16px; } - -.ui-content { -padding-top: 1px; -padding-right: 0; -padding-bottom: 0px; -padding-left: 1px; -} - -.ui-content .ui-listview { - margin-top: 0px; /* Use here negative value of ui-content top padding */ - margin-right: 0px; - margin-bottom: 0px; - margin-left: 0px; - /* overflow: scroll; */ -} - -.ui-mobile #dol-homeheader { padding: 10px 5px 0; text-align: center } -.ui-mobile #dol-homeheader h1 { margin: 0 0 10px; } -.ui-mobile #dol-homeheader p { margin: 0; } - -.ui-li-icon { - left:5px; - top:0.3em; -} - -.ui-li .ui-btn-inner { - padding: 0.4em 5px 0.4em 5px; -} - -input.ui-input-text, textarea.ui-input-text { - padding: 0.2em; -} - -.ui-body-b { - background: #FFFFFF; -} - -.ui-body-c { - background: #FFFFFF; - text-shadow: none; -} - -.loginform { - margin-left: 10px; - margin-right: 10px; - padding: 5px; -} - - - - -/* ============================================================================== */ -/* Styles de positionnement des zones */ -/* ============================================================================== */ - -div.fiche { - margin-: browser->phone)?'10':'2'); ?>px; - margin-: browser->phone)?'6':''); ?>px; -} - -div.fichecenter { - width: 100%; - clear: both; /* This is to have div fichecenter that are true rectangles */ -} -div.fichethirdleft { - browser->phone)) { print "float: ".$left.";\n"; } ?> - browser->phone)) { print "width: 35%;\n"; } ?> -} -div.fichetwothirdright { - browser->phone)) { print "float: ".$left.";\n"; } ?> - browser->phone)) { print "width: 65%;\n"; } ?> -} -div.fichehalfleft { - browser->phone)) { print "float: ".$left.";\n"; } ?> - browser->phone)) { print "width: 50%;\n"; } ?> -} -div.fichehalfright { - browser->phone)) { print "float: ".$left.";\n"; } ?> - browser->phone)) { print "width: 50%;\n"; } ?> -} -div.ficheaddleft { - browser->phone)) { print "padding-left: 6px;\n"; } ?> -} - - -/* ============================================================================== */ -/* Boutons actions */ -/* ============================================================================== */ - -.butAction, .butAction:link, .butAction:visited, .butAction:hover, .butAction:active, .butActionDelete, .butActionDelete:link, .butActionDelete:visited, .butActionDelete:hover, .butActionDelete:active { - overflow: hidden; - padding: 0.6em 25px; - position: relative; - white-space: nowrap; - - font-family: ; - background: white; - border: 1px solid #8CACBB; - color: #436976; - padding: 0em 0.7em; - margin: 0em 0.5em; - text-decoration: none; - white-space: nowrap; -} - -.butAction:hover { - background: #dee7ec; -} - -.butActionDelete, .butActionDelete:link, .butActionDelete:visited, .butActionDelete:hover, .butActionDelete:active { - border: 1px solid #997777; -} - -.butActionDelete:hover { - background: #FFe7ec; -} - -.butActionRefused { - font-family: !important; - font-weight: bold !important; - background: white !important; - border: 1px solid #AAAAAA !important; - color: #AAAAAA !important; - padding: 0em 0.7em !important; - margin: 0em 0.5em !important; - text-decoration: none !important; - white-space: nowrap !important; - cursor: not-allowed; -} - -span.butAction, span.butActionDelete { - cursor: pointer; -} - - -/* ============================================================================== */ -/* Tables */ -/* ============================================================================== */ - -/* -#undertopmenu { -background-image: url(""); -background-repeat: repeat-x; -} -*/ - - -.nocellnopadd { -list-style-type:none; -margin: 0px; -padding: 0px; -} - -.notopnoleft { -border-collapse: collapse; -border: 0px; -padding-top: 0px; -padding-: 0px; -padding-: 4px; -padding-bottom: 4px; -margin: 0px 0px; -} -.notopnoleftnoright { -border-collapse: collapse; -border: 0px; -padding-top: 0px; -padding-left: 0px; -padding-right: 0px; -padding-bottom: 4px; -margin: 0px 0px 0px 0px; -} - - -table.border { -border: 1px solid #9CACBB; -border-collapse: collapse; -} - -table.border td { -padding: 1px 2px; -border: 1px solid #9CACBB; -border-collapse: collapse; -} - -td.border { -border-top: 1px solid #000000; -border-right: 1px solid #000000; -border-bottom: 1px solid #000000; -border-left: 1px solid #000000; -} - - -/* Main boxes */ - -table.noborder { -border-collapse: collapse; -border-top-color: #FEFEFE; - -border-right-width: 1px; -border-right-color: #BBBBBB; -border-right-style: solid; - -border-left-width: 1px; -border-left-color: #BBBBBB; -border-left-style: solid; - -border-bottom-width: 1px; -border-bottom-color: #BBBBBB; -border-bottom-style: solid; - -margin: 0px 0px 2px 0px; -} - -table.noborder tr { -border-top-color: #FEFEFE; - -border-right-width: 1px; -border-right-color: #BBBBBB; -border-right-style: solid; - -border-left-width: 1px; -border-left-color: #BBBBBB; -border-left-style: solid; -height: 16px; -} - -table.noborder td { -padding: 1px 2px 0px 1px; /* t r b l */ -} - -table.nobordernopadding { -border-collapse: collapse; -border: 0px; -} -table.nobordernopadding tr { -border: 0px; -padding: 0px 0px; -} -table.nobordernopadding td { -border: 0px; -padding: 0px 0px; -} - - - -tr.liste_titre -{ - height: 24px; - background: -moz-linear-gradient(center top , #81A8CE, #5E87B0) repeat scroll 0 0 #5E87B0; - border: 1px solid #456F9A; - color: #FFFFFF; - font-family: ; - /* border-bottom: 1px solid #FDFFFF; */ - white-space: nowrap; -} -th.liste_titre, td.liste_titre -{ - background: -moz-linear-gradient(center top , #81A8CE, #5E87B0) repeat scroll 0 0 #5E87B0; - border: 1px solid #456F9A; - color: #FFFFFF; - font-family: ; - font-weight: normal; - /* border-bottom: 1px solid #FDFFFF; */ - white-space: nowrap; - text-align: ; -} -th.liste_titre_sel, td.liste_titre_sel -{ - background: -moz-linear-gradient(center top , #81A8CE, #5E87B0) repeat scroll 0 0 #5E87B0; - color: #FFFFFF; - font-family: ; - font-weight: normal; - /* text-decoration: underline; */ - /* border-bottom: 1px solid #FDFFFF; */ - white-space: nowrap; - text-align: ; -} -input.liste_titre { -background: transparent; -background-repeat: repeat-x; -border: 0px; -} - -tr.liste_total td { -border-top: 1px solid #DDDDDD; -background: #F0F0F0; -background-repeat: repeat-x; -color: #332266; -font-weight: normal; -white-space: nowrap; -} - - -.impair { -/* background: #d0d4d7; */ -background: #eaeaea; -font-family: ; -border: 0px; -} -/* -.impair:hover { -background: #c0c4c7; -border: 0px; -} -*/ - -.pair { -/* background: #e6ebed; */ -background: #f4f4f4; -font-family: ; -border: 0px; -} -/* -.pair:hover { -background: #c0c4c7; -border: 0px; -} -*/ - - - -div.titre { - padding-top: 10px; - font-family: ; - font-weight: normal; - color: #336666; - text-decoration: none; -} - - - -/* ============================================================================== */ -/* Onglets */ -/* ============================================================================== */ - -div.tabs { - top: 20px; - margin: 1px 0px 0px 0px; - padding: 0px 6px 0px 0px; - text-align: ; -} - -div.tabBar { - color: #234046; - padding-top: 10px; - padding-left: 8px; - padding-right: 8px; - padding-bottom: 8px; - margin: 0px 0px 10px 0px; - -moz-border-radius-topleft:6px; - -moz-border-radius-topright:6px; - -moz-border-radius-bottomleft:6px; - -moz-border-radius-bottomright:6px; - border-right: 1px solid #555555; - border-bottom: 1px solid #555555; - border-left: 1px solid #D0D0D0; - border-top: 1px solid #D8D8D8; - background: #dee7ec url() repeat-x; -} - -div.tabsAction { - margin: 20px 0em 1px 0em; - padding: 0em 0em; - text-align: right; -} - - -a.tabTitle { - display: none; -} - -a.tab:link { - background: #dee7ec; - color: #436976; - font-family: ; - padding: 0px 6px; - margin: 0em 0.2em; - text-decoration: none; - white-space: nowrap; - -moz-border-radius-topleft:6px; - -moz-border-radius-topright:6px; - - border-: 1px solid #555555; - border-: 1px solid #D8D8D8; - border-top: 1px solid #D8D8D8; -} -a.tab:visited { - background: #dee7ec; - color: #436976; - font-family: ; - padding: 0px 6px; - margin: 0em 0.2em; - text-decoration: none; - white-space: nowrap; - -moz-border-radius-topleft:6px; - -moz-border-radius-topright:6px; - - border-: 1px solid #555555; - border-: 1px solid #D8D8D8; - border-top: 1px solid #D8D8D8; -} -a.tab#active { - background: white; - border-bottom: #dee7ec 1px solid; - font-family: ; - color: #436976; - padding: 0px 6px; - margin: 0em 0.2em; - text-decoration: none; - -moz-border-radius-topleft:6px; - -moz-border-radius-topright:6px; - - border-: 1px solid #555555; - border-: 1px solid #D8D8D8; - border-top: 1px solid #D8D8D8; - border-bottom: 1px solid white; -} -a.tab:hover { - background: white; - color: #436976; - font-family: ; - padding: 0px 6px; - margin: 0em 0.2em; - text-decoration: none; - -moz-border-radius-topleft:6px; - -moz-border-radius-topright:6px; - - border-: 1px solid #555555; - border-: 1px solid #D8D8D8; - border-top: 1px solid #D8D8D8; -} - -a.tabimage { - color: #436976; - font-family: ; - text-decoration: none; - white-space: nowrap; -} - -td.tab { - background: #dee7ec; -} - -span.tabspan { - background: #dee7ec; - color: #436976; - font-family: ; - padding: 0px 6px; - margin: 0em 0.2em; - text-decoration: none; - white-space: nowrap; - -moz-border-radius-topleft:6px; - -moz-border-radius-topright:6px; - - border-: 1px solid #555555; - border-: 1px solid #D8D8D8; - border-top: 1px solid #D8D8D8; -} - diff --git a/htdocs/theme/phones/smartphone/theme/default/img/accessibility.png b/htdocs/theme/phones/smartphone/theme/default/img/accessibility.png deleted file mode 100644 index 6478c8b9a25cb8af8a0693981690b4973ad42936..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1282 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 diff --git a/htdocs/theme/phones/smartphone/theme/default/img/basics.png b/htdocs/theme/phones/smartphone/theme/default/img/basics.png deleted file mode 100755 index 5305ea3352e452bf1b62cffef13b47a60a0bb5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmZvcdr;C@6vuz$x|LbGH7?s`nOobtR+}E%;=44{%1A+N({yz;%Q3di($dsyGes0r zQ&JIAQ}G4(21Gyv1t9?yL3|)Sl1$xAG0lYiHO(~rv1dN_+;hKk&di-T=iVf^oAY|3 zEk*zUtamx%=nn4YAJ-ZK&^s2Rc>u7A2tS8#5@o&tmCptqKk-TVGPc-#?Dzre&pH@< zs@=Y22PbWK*Y>@jcXL1>oqaGj^5SnMKf0BQ3B!Xq)i^3Sm)?XCm&GvYX;M+PMugMw zabtYkXjwEX0Y*-=p(LNGNpY%8b*@Wut?Dx-Lmcs@N>#4ZuH;Jez0-D2usqE$_jRc(@WEgDvjwywk2G^W^4Q|ud4 zPcTw#sj0R!tW^uvu_?{2Iqfv{i5=sKGd10gnQqU_aA0MgWM!UWWuB*JIkB^x+1bvm z*=JgDXE`_zM$Y-R9JjXI3n1KFI5*dunFr_QUF723d3X1l}VX?)Pz^ibA>me3yc(Gp~| zgg*M?K6+ALbCSFnEoWd9Eh!2nR>4Z`XJPwUY5nZX{?-g7=ji|^OUcPrwq*~t<@IxM zgWP;2FK4JDf4GA%EO@RG6so{3zpNPPsu&f6RE|oj#wFEbQu4U8UM-~#OKHR1bX6}! z)7$V$MtLoxPRL2Ka{8o#JgaEd^w-S}u%`w&QzQIob?1y)I5W|@IMMU(j7YDYSz3I% zyg0Y4*XvIxHa-Mr&N1BG%>&qE^4<4lKmK(1my3ui{!#G{9~BnAC@CRU)KXjeJa)Vbm5xu-zL!0b!+!-l-;%qp2h$AZYyCA z1iayEpG{19r9S9&)FvuNKVhY64z{4;xlsFAzLFES_ z3G0Zy(73g7A+Vcx!GN^}^PnUoD6{{D)ZpBnKypM6-5y&hT^K&L&HK>MTk|MGww56M zFu9aF*hSOMt)#}GBa z$k*i|$-iIZ=S;c}7y}%-MdbTYV{;lp1`*F#w6N)y_${JO&>%_-q#u*4t zhHH}(g~1OTee6ISl*s_*v0&h=(^9yP22R#s>$Bv+osa{CYjD3FPS`p}B@ VdsD)?s~^8J7biEz>XZKQ{{cYL)6xI{ diff --git a/htdocs/theme/phones/smartphone/theme/default/img/calculator.png b/htdocs/theme/phones/smartphone/theme/default/img/calculator.png deleted file mode 100755 index 4d61678cb89001b97146c1d692df11193a830740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1239 zcmeAS@N?(olHy`uVBq!ia0vp^@<6P>!3-qt#sn7wDdu7)&kzm{j@u9YA22X5J`V5+ zasB`QzoDKEP!K4emX;P36$NKlTUkOxW`e=qy<34&KoY3_$dMxuQcYPA$nf{~_ww?3 zaQD`dB}=AEnF2KP-J4gRpWS)!>?u(2^VPlo&&<4j`QqQBQ{Nt6apCmwQ%4W{-&F-P zO84&FduaEz|LfAftuOh%D(Um8oL?(b_iSFbWy_YI%ab>3 z*zjd>+}5?Lwya+IeSXOQIqo0kM*N)RxqjKgx3famE}09o{l_Gme-q8t&Y5z0YUa{e zQ}#?P0lIzhjEUbnb^f=>FPzr@zeV~-i_+Z5JwSJ!Y4`tLCpo*f?R%Bb}t!Zg#>2I#?X(_&1Bwt@&-&R|3vQWLVy6AMSTys@PYkA(uEa{qx zvYPVJhP=3%?8Msam<@^Y#o19gSs7XBsld=HNsi1*j-DSWR~qk|A0Ltx7oHg%oE6~% z4Cj=HfZhPv#1Nk*AGzoNuV61{U>F9wS^K)!J2^SI*;%<+83Log!%W@FSi#j;*~rww z*x1;^K*roiU(3h>80;GQCi>c%>e_mmnwr3fkW*GyR8*9bQbnWCmEXYeY$Kep*R+Vo@rCV@iHfs)Ac)QEGX9QFgI{bFc~9rppT$7?`X* zT^vIsBv}tSX3K;!Fg$p_x6*j?*}Q2gyJuxAQi`%!;rhn)g{uJT%ZtC%ZM7a<>=t)5 z(3&dZDAdb#Yr-yNl zq=vv3`+t2js(f8HJ73SpgnQ?wCG6dv#s5#{ue>+g`sX{DE8p#S>V77&n%Ui-`(Ad5 zMgP-@vH^9q)sJiHjhkk>uRoGH)x^o_d^$k~?lD3p4K0aS>zfbC#)Y)&PSp~V= zlk8@^SyN{(Syz?M{_OMS+GXXhIvppGv<0Odv2|-v1X5o%i{C@Dt@GzYb=$R z7XKhEL`#Tk*V|Ncf#ehk24&8T(~2*bY?-?1Ekmh`Q`|1c#rJwt-`U2lESjo*TE;Vh zGvP`eGn0ywhhbBY+bS0c$;}Q)GOLd-SN4ftU9{DzO6=j&@bI0}17zzqGu`{Y$9~k?hNfOlzPp%b9LH;gx5wgak_qX9ofBA z7vp7u-mn0s(`!rus zGxfj;jw(<7!{6R**dcl1(S}0t+CU}Em^F`F&du%nIwe1MZd!u-J7=zR{aI&kG;dI> z_+H3vHvQ+b{gZYr{#(5>w=vPf`37qs2Y>&rkT{ty<AI-q9 y>v{e6bjyIVw=9?#1iZ?pvaZl#U^pT9pLuWgi+{ds(~kp_8-u5-pUXO@geCw+^e68C diff --git a/htdocs/theme/phones/smartphone/theme/default/img/calendar.png b/htdocs/theme/phones/smartphone/theme/default/img/calendar.png deleted file mode 100755 index e6e5591f1419a04b4858b124f6bd52fd8fd55b4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1103 zcmeAS@N?(olHy`uVBq!ia0vp^@<6P>!3-qt#sn7wDdu7)&kzm{j@u9YA22X5P7Ux0 zasB`Qzow=pD=RBdJ|!q9*32BpsIIOqE-nUgfxyelE5Y0%TTeezSv6fkDuiDEA`6s4 z7Mz)z2SnTYCIF2Bl1@%e#}_VwkjBQwKt@_x+O=!fz8*gEe&2z;d-nqE{rTt5_wV07 zef#$Q{rhLno_&4%)w=UFDFjE*EjK5Pv7gV-aB1A&)Pa?&Ybz8x$RzC=he3MyG^ZArc8NU-}tPm_C{^P z)AFkK#pTzlYI=Hl9u}28&M&%BT-w^&`Y^ZPNp{|cWl%!otEIrhA?PMuSF4kY6x^pr9a70;mECTp%Dct-QRW zW9H1=yU*Nx2Lum<>Q(^ta29w(0^^$N0|+xZtudJa6qG4(jVKAuPb(=;EJ|f?Ovz75 zRdCBJN-fVX$}U!L4mM%iba??VMSS&iaSYKo-#WQB`jUgpasBJvsq1g;-kZ5hI#*O+ zvy)KBCKf^Vt&TS}93pn8csb3^zB~8t-MeMcA5K*KvH5QE{qFnEcjn!{Ys=2SaQwZG z{fqQp_c9+86xY4<)k@{>GS@$Qf792mPjk$6Pn&i*yV6t3W6~b2i3$^w%6_taY)#tu zL-F&AyN|#2{4xCd?X%aHTDNIWZ8XKXk00pl&Dt6@d7e%iP)(A`td4Wb<{wMmSkrsO z{9IG<>|VFW*@{B5s;BiFH!j|M@_A=~k>E|Gr^lY97S#QgPFx+b>dI2Dy>TnoPV>4n zJ>}Kz*n9h!^xpj0a`X1rMMr|yr!za5y#WEw_@dM(HqZJ=0;w~Y2&ZF=+gGMnaxc=(fGz=*3j(=B{tU& z1ylyQu~+qr|CdX+-Yt;1L^3qE>biEfx+r#2UX|@wAGI9Z8Hqgxi>8}$x$Swa`}%3aw}e*NDJNufy=@k^kXqKpu;c9J<_GU5 zeLw7Trr=*yTGK{(1!KF)`~4>i+w2k!%=vP7<9~+tYd^G3y(11vaSWcWelF{r5}E*_ C6&^?c diff --git a/htdocs/theme/phones/smartphone/theme/default/img/calendar2.png b/htdocs/theme/phones/smartphone/theme/default/img/calendar2.png deleted file mode 100755 index 9c5542235036134015e3ce617c7318a463a00c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmeAS@N?(olHy`uVBq!ia0vp^@<6P>!3-qt#sn7wDdu7)&kzm{j@u9Y9{{-r0(?ST z|NsAQY;4TR$_f-n2?~leGY2xNs;Y{Li-FwGfB-KquLN_8Y(4!EsSthvh%8VF zS#V}<9uRHon*cNlNIE$=9bdQzLITYPGSbr0E?>U<_3)AR`wr~gyBBEhhc90~efso$ z?fQdTw|!l-^ykbun^&%UJ8SOC?%vm3y^ot(A2qf-tFC)rT>d0G??ZC>gP8a?{=s*= zd|#Mb-!w7bucWd`LFusrM;Fk=8YMw~!3=_ef=WtCK>MJ;1p-3T%F8=CX3ku-`^?>U zKoG#}FALPeS>O=~3>K~rAk65r#$*OiP^QE+q9iy!t)x7$D3!r6B|j-u!7Z~WwLHHl zyI8?F*o1A<lRaG=Lp096y==&L$biS;;`k z6>etk`r2(zjxyc2VJUyIEZQN#hGl8MsebNb1xEUYYR5}VmpSOpO}o7^ME3n!Zr%4j zv-IMBmtEhrJi~I?v3;{2o3Jsx{r4|Zi^VW?Jy{zwZI*FC2z3nVYu61D(g<>FVdQ&MBb@0Be`pHUIzs diff --git a/htdocs/theme/phones/smartphone/theme/default/img/camera.png b/htdocs/theme/phones/smartphone/theme/default/img/camera.png deleted file mode 100755 index 9b808a58605e1eaa11ec5c956732ca9e9f3ef9c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1507 zcma))c{mhk9LERIM2d+RR71$Mj-64c%o;PpxMF4)_ibt%iJ46YQ!yB4nxqCfcicv< zl`|b1ts|oK*wztBuA%J4nwWii`e*mQeV_Mzf4}#AzR!F7KHn5)CmUI56=?_rB1^Ev z5N)vnT9~b>CO&hoJb@xHvDe4)07*nd z6v+JoX&8)^uC6Xv(rDq-vti#hfyUF*)0N^uCR2z+BEjCt#?B6lCjfClKJWi1fvlsm z8+1ttvHt#kb#-+x!{N#xK_ZdhNn2Z6VRQyaHie>%P0{LxXl;E{u(q+Z{AphB=fd)* z_w$0;*~O`u4`VY+6O-@8-b{^+O%0E}85$XXIrv-0;8btl(6gR_ww{st-ii92@y@3` z9bLbG8y|Lb^E!uHTAwui+?m%p+SvGz*F0ET-@wY-{NQPIGu zdCKNL=atp4Yx+ul;@vN)C@8K@DDS>sR9ReD3Vsn++%)^0 z+dv~5AHdEC=dOthLRp{Dvi8MTSeToetDmMIEzmj^b_V8HgoTTynH`{W$kY)SM%4%d zjG?J-qNHb`t*r&X$*UX79o7dB55N!aRn?JEIw~h82ZgEb-7hb@R~EPqcnshM?!w4< zD1v}u5S>U6d3kva4GnNE5{dm!bNzRt#<1C3ZdH5#gg_wJcWLgcwf9`G^#HDxUi&)4 zFg2)qU{j5Ob7znusf?I_=n#liaAaTz0#Az$iHVF3qa&x7Su16@sMF+Mg)evh=GS6Tk`DlsZRl2TJR#|(}iFkuV zEOn!`)n6p}p5@T%TA*pLs6C{w<~?8Q>ygotyz{CA8Y*X{owfFUdjPhp>(rMWiuXn7 z=GXz3-kSYgZ7IDt=)#?wDnbw2?+2PEk(}uSp{^o}uA=m?v%#LzKdWDW-gz<>d|bxa z?UE{V&r#Z zA9Fo6PU@1bBLekGV+pqON_f$I=&pz?wZEJEdgPo2EozcwV39ZbdV3;<)J94~)sd%l z$n)V$zEy5=m#>qrrCPcVH2O-wAbeMq8|x^!@}#Bdf?2sLPUWpKuZoB$^HkepoL?24 zzE`^aIoT^Zbv#X_pY?m2Px)=6SKfoyF~|kx1^YAjFtnO!=!G4l1Vy?@OD8ihflOktptm=y~`1etUm9XuQHr95#Ll&j#6DLyCjwhEDa&xoUnY1 GfBZiSHK9oW diff --git a/htdocs/theme/phones/smartphone/theme/default/img/clock.png b/htdocs/theme/phones/smartphone/theme/default/img/clock.png deleted file mode 100755 index 801c6cb9d83c9130060c65f6e8e7c8f7a0cbc818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1014 zcmeAS@N?(olHy`uVBq!ia0vp^@<6P>!3-qt#sn7wDdu7)&kzm{j@u9YA22X5Dg^k1 zxc>kDA1DHpw6d}?Ha3=&l!P!86cm7L0RaJ^pt`ymgze?!1yl(nqoSgKQfX;v$Rtn= z5CAo{w6s)JRTUN%0@*c-@kwU_U--q_s`zE{{QIdvuDq4J%9f09tga+ zbLa8Ro7b*gyM6icnKNe&oj!H!*s+hBH=o|UXYby<4>xanylL~BHEUk3TD^7a*7e)A zJzBo<#`0Bb)~wmGdiAnp%hoJhbZyGyL(^x?nKNg~lquca-Fs{5>btvu&e&F540OrD zf&!pps&cZQdi!N(XXmD+16>aE!UI#wpr9b2cbuG@Aif6rR8bn zWCl=Bro=U(Bsf2CcLhe_Fa}|D^QA(x&lek8#`jO}6lB@8+y5>)rcs z&hq8QLchyDaNk^6}3D?3_P->}0O_#$NeaI%)CO86uV)@9*z(Q<>y9$GmRk z*TOXl96E>dZ5{Pz3%R(Hc$3mW$j3}xBKMG;IPI#GwrD8#>gm%s`fJ}YW`TA^DWF+cIfPtL|Z(+6G$ems~{5*N8rIsa;7l5+0O51I?R z7fj>gh+3Vw^@G;LJ;~=!{MygFpjIv==bV9Y3wtus!S?v92OCLeqBArMI6Q z6uqKDR>w`{WZwSmr<#W5%T>{j?(E4jUK^eIdE@1EX7@$1+pj8Z4$SH8b>Ba2>S0sG zvaVP4nq@!!M&7s8c(#10#f{kfxC?Lh{=NM_tv-ME(_eDSmrlID`})~{t?ApQ0TUC0 Mr>mdKI;Vst0DSb-=Kufz diff --git a/htdocs/theme/phones/smartphone/theme/default/img/close.png b/htdocs/theme/phones/smartphone/theme/default/img/close.png deleted file mode 100644 index aacac9fc4237261adb5bb78013b618a4cce24a7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPavmmcF^TQtIIH1sVPZ!4!jq_6{ z1!f&F;BlERv|QvrE0^uFn4?x4y1DMRvcB4q-ESKKCp@fDsc?_P1QEX`Td ze5Gtc`r_M$Df17l{WH5-JujR=duhqE-Ahh)GrxE^dumXc=Y3}*``+c<@6Ge%>=*podPGTFyiGGxh?I66jl60(!R&>6z9 z97j`*V;3V^lgN^gBYxkn^Ig|>egDGuT-S3y_xrxrbzkrM+|PU8ihzR)ND2S|0LPnR zZJ;XmBl%zuV#`zep#lrR;O+SM_}<`u$b8q;?=-Bw!=+L*7o89X2;whoyla*473dO zbu4sO5A?KsYiXKoFPrG7>U_mu(`j9==smwSPSXoI+FF?O{HB-f1I;DPt#qhML)Em6 zqJq}ivfnFc)wPuswXGGk_4LZ@`Miv}r$yxzRTbqW&5yGxigTI@lNt(An{%iQIY~u% z*?D<+<=Lq-iBZK_51&1xv_J4IeGr|RLCZ~xf!at*j89KW%1NN)#|EUuP-)R*TJ-IE zF|iLKZb#j@lSv`o3!@~55TR~|QbMW0eq?{&L?2fw$vu=rj3l~5-?UG^iA?b@_4f8& z$DqSJed643L2eFyZjO*UWGC!@4GOk4bh5n;x!jFHL1y_7&iUhYoh-~C%SgsLALM21 zjSc+uRa^~KjW9;tGN*BdT2{K6rrIbkbqN>mfqV2TPT}KYwZNepZgTnmxS`H4$u^6;= z9ItXVEJ=Q4^hpZAT0#0}6>N`q(F1;oEc4?h`~tR9+mf_KhV$!4$T*pcqgKYMyE$vr zfycZ1^XgF>(LSM*KwR6tTtWV2u{&afbDEGSaW- zaD1ifjZA&bwbDQHI($*l^rO24{se*EcZ7mjmSOwaYTctCvJhG)ZDDY?5Ad1#Oq-R+ z4NjYOjYGCz?3mhLcX9-;Y8We=b`OPT{7ldWB5s8diMpF1O{JOzoTm@AS}o-S>|G*` zl3P~p^Rq>OjY#FfTH6bsY$Oquhs*1;a~Yx|15f{o+{+L73&q(*J@&S5^+LUux?rU| z91fq8BdIf)z6Lt29}7>z-oxf(%}y~0@{Z@PdGl;-dSG}|njY3%JN&d}AsE%xrhC_| zXvlN~g_F0i7jl8KWPLDu=@9-mZZ~_)5A`w6; z+Q)+zIL}aY5pz!vRIW^!bj<>6C0oH>d8Bi(e8PUoTb`n6k1R0rd>{73t+L{w>6sk& z8YN>36Orn*1F~+>^%CpSKYS%jd#OK3Zo-{hbxvfa$muci@yfKUOqP!V_rlgYr>D8t z3hQb`m1Nj2Rd$kawNWIP)^96!@;;o@%pD>22pezI$SL;eb~1f@k3-U!;T!51l#om; zrEDhjUUi%pRFVv@G*TC5-24S;kLwC0SnG0W5G_*QUUt5#waZtcBI&wv4Ns|25E$4} zvZu|wcp){zdu&T2mFK2t>uz29=h}<*W#8*uF0aqQ_Yb?<7Ln3#^MJ05E2Vc^O(r6) zuqM5Wo%oZDRRBC9*XpITa4A|#Jgs+p*!fbx%-_EHCpi{5Ql1$IUtB$FA}0zD3`p#8 zb{^(^CrocGE0|XwH&rwly77Ad*WS>WTWo{u^z;~*R5h8m`GbjCC0%N7DUK~96E)ul fvZpF#VaXszrhkX%Op4ND==TG769TpYb0hxWfT=m9 diff --git a/htdocs/theme/phones/smartphone/theme/default/img/contacts.png b/htdocs/theme/phones/smartphone/theme/default/img/contacts.png deleted file mode 100755 index 76ae042032c600cc036543019133cb3eab55c404..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1505 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 Ak^lez diff --git a/htdocs/theme/phones/smartphone/theme/default/img/favicon.ico b/htdocs/theme/phones/smartphone/theme/default/img/favicon.ico deleted file mode 100644 index 7d41c54d5bb98e9d5d6b1c8b359f0f2757b69230..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3638 zcmdtk+jmse9S87lNL&+!w#JpNG^7{~33m~#LXkpX%T3BnNVqvOz%c{_#0Uf-VGUuE z3ss9yfkF%;oXkuxl9_>C2x>t$IItj1D|XrTp?x?{eIc$zR{<83LC61N{x3 z`JH`!d+)Q)Z32*ie#psz6YCxUhI7j>+;&?wu#fvjvZ=f1-5KCchRATz17GWwEy9WY z4T$cpL9}iM+8TlgzP1MC+c&^^>k#VR-H*Z%hBKzNp$4(~iKwp3LvT|8cF>{C`H0ob zL^QM*Z98Y<%*W?2q-Z!~T{VK0V;}>7TnW@ta0R_YYX_rd{SbWoX*-4vdjfLPSV$A7 zD+k_OP0S5zIc}96n~C6(Of((a$77Dg*7?9w)AAsEqcC~l7*rGko4Buz<7!vtqiy$S z?BKCum7@_{S%il25%4bn0{#tndi+#u+_f6D^RhYjFdlO#RwLXv z8r91SdE6qrwBQl=eC7D+Y%{iO%tg>=Am}&nX4Nnh4gikrtVY+{qYI}4P8N~i`5!$~E$IE9PR1F%qd%>Vfy<|F!YS@6Mh7)T=IB{5+%qRQsr&e~nxwXduTtk-RCx7nPQ|?WK#BE%#2JF>}@nPP=T*+1HSX!?=c?DdF-*= z?{k`d{rY7xva+&t%j?Y=%scC$Oycij7I}8lg>T_LU3dEFzIqJD>fc#|1f_pxWfmLh z&|`W-LVx(1=6v;SD5aqOu5hFC1Zxs0=L0^2?Bj4Z^fP(m-zh{biw6~Ck|f<$WV;Iy z2D2cOBw3`$227Aag4i%6S)|D3;y?xoGD(s}ifn+JunZDpk|c{1*#HxiL4r(@WRW5p z;6K;~2{K8NMT%?)aG5Yje@v2Oks=$y02w66BuN%2vfa~WCm{rxB*`L0wtGoTgISPC zk}OhWyO&EE%z{jkWRW7f=rTRks=$C z=PzN9K68`w$09|xdut4XS&&JREK+2TmNs>j1Y$%?;f;A8dC(Ow0xqC}TESf@pZpLElU-6Aw zVD?J6pY95r3{;->u%AtoL`8>UP&7{NJwk*U^)nrQIKY zV0`wPK%kMP=t=L3JN4^2 zB6_ttvJ(L=!QJO)-QDb~!;^^j?&KMy>+Sc(^PWAdel$J5Q}6Db-;?;d_fYrMJ&E)& z{j7IiZ)ZgAugBee?GYbXZ;$Bk_08|;W`BlLk3XcYi%uLxBHrz8_KnZ(Ek+_?UZ382 zI9>O|ea-0(%_-Jnk+2S*zk(4cE%h}!?Ql2}j`04Z>&-qVn$y)Vr@wt)y?0PwiiD$l z5$=ueE4W)+gZ}IHKk9mgx%wS=Xgv~%#bO=KEAroUUF`0TC)_uP_qv;%`=a}6zK!v? zGr6AscIx(n5s$aFCOr4v;noKu5LlDQ?W;oOcv8s8(5JGCrqW<~l=K3$Oh*nfSRq9= f-O$+Ek#6_aWX8R5?)davdR{%hKF%(QjMRSsa3SqU diff --git a/htdocs/theme/phones/smartphone/theme/default/img/help.png b/htdocs/theme/phones/smartphone/theme/default/img/help.png deleted file mode 100755 index 0f53e2788a0087331e7e0b2c1862e9ba0c5d95dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1426 zcmV;D1#S9?P)963^WAuu1OwbaKD;K-FZjG6i0mY&YrfF_0)jSWPC<4z3FpwF{smuAT z`1mqoz%=!DZfa_X%`YqvCWo>AuB965qw4V0_W^{*7=V}}JyO()pz~aiImE$n8xO!V zEl9+ao$5-_)_`SMu>t~c%mrMz3BBg$r_wsE%Gm!ckGJA^0Y&Bj(9q`jyjJ0euwyMq zryJP3P$doIQUD z&i`@AIi#E(%M&E$oX5KWbaso1m-g|9rh>ZKMA_lgA`uzxyQdp;U5B&h{wm+g2ZUn) zG>~P*2B7PvM@gtVBY+G2LvZ(9U2yu$0OVHk4CAhyJrIpX*qR6L-v%d7{mI;}nlljq za&=jDOrRS&LtZYcasYF)OF*$Bmn$$^(zC&#ad@rwd2ij#=@eWY&z1?$rGUOG>PATe zI!+A31k1FldV=4D47~_~AlOzy0Dn(T2i7buEi*<*?S2iq`|<)0rr`rHH8qD1BWOp7 ztuieus2Zr?6!_9|MB3fm?!B6sS-{(016dNmbd|_(a7>x>sE{u}Haic=WYPwpt`uN& zbP{T6;*f|(84z|uX9LRzhQ^$aA6mQT(R;o54?mt^?=3fy(U@2>Y@w^mIZ)LVeC1<6 z5(T!9UZ`pgW43?-5wT17P6SaBKtNHEuo$Z@Fg)PN#~+6J`Wx6hb8!TIJ=M>?C6Vcd zoma>lw?!2Rets&rVA3ThQ znv6Z-%5*ekg9Zky6eG+M072yNqY{8>9^fj9DAi3PKs|W|DVyQ}0~qR0Bp%%d01uZX zX)P}dwC41U(3ncHaW*>#BdDQ7B5M2p8jUV$8deE_EZH{q;;j`P5{QkOM9iB{qw-@h z1th%0da@@0Fp8F6gvdYyO@Oi4s*p&6>BJ5`i%TjTJN`2pQ&?3LnTgl-fJ%FCf$(1R zYd}PwRU(m4llk`~IZ!10?Q}no&IAlBF$~2X{cF@TOly8OjG((ID4wze6w(?SlknWr zyV&@vuYZCp2D9}xrUBC@LWuxGBVjdVAf8jC-1p3GsI9GG^L@|mhL1k|#x@WaUYxi9 zblq1EkN~4fq`ZWI%4|^HP?Qp28k75xDFP>!*D!WHAYd}m3PBS@W07@JNC3`Z;X(PI z8jUF(y8$RfK3;{K&*cHPu>o+LsiBBumMqq&2VE0fxiSv3GxKb|u&AP2M#}> zj7b#8PBzR=PPDhT-9~==Zz@~e`RzbIVt9W2QH*MjscRDxsirm?z=;!mN4NL%yj7Ek zOT3%sL(qp+%GEsB{ZDnkd`{KB|L*vg`(J(C1~4?3IrPcLA3V_8d*GqEx}-z_1zaczXi g#{Mmy>D6%m09gWV35*=?G5`Po07*qoM6N<$f+#wua{vGU diff --git a/htdocs/theme/phones/smartphone/theme/default/img/homescreen.png b/htdocs/theme/phones/smartphone/theme/default/img/homescreen.png deleted file mode 100644 index 8fedbf05d5baf921ff98895e5e644be6639503f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 742 zcmVC^A zMo<)db>f3Gf{oZILToH-v^9;5g;q9#0YR`*u+~(;MiNDAd?G~9B5LIWjD?TR{R06( zqwL%n_I7t*6LN6m_S>1+e`c?sb}CXxL>*+No%qGav=~c<0toxWM+up0l|C}uEC36@ z0;M@rBF|+@P;5oc8+L$|H5_8@I($MFD=T1+~M3fO%HTs zejAwtvmj#O5!dpMCwBpa2OuCkjNS$p$AXR_cwPrMg`kBH0t9YO&_)TaP7Jbk2Wsp~cz%1QxX|`L+1KlUft4KU zY-IgUND_c@AplRAT#M1n<}OS3!-HgY1Z8u;hA4dIbA-%aCR3#TO}kX)OR?^*M(xT7&>5j#d}P5)!&Wxs#!6O^^ORx0;mk0KW1 Y0C*SZpBg9b9{>OV07*qoM6N<$f=CuWbN~PV diff --git a/htdocs/theme/phones/smartphone/theme/default/img/ipod.png b/htdocs/theme/phones/smartphone/theme/default/img/ipod.png deleted file mode 100755 index f03c7b0de4cd1d711243901ef67c1d9f52ab8ec9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1030 zcmZWneNYo*9Dc_b`!ofqAWVqUNRXNWMxnt5iw$%x1`7lU1l z0}M!zARt4~&(n{iGOG zsw$W!IY)!_M?|#LEBDckULn+nxaEYh^fGIWjHMSl=*8ChmzW`5>_<#W`yam#K1(j-A@jh}C?-5r}O=l7Rz>3gugf~8q3&e1-89L1a& z_szIBjH!Nna|3r8Fwu_53z&Ehx0>-~v1RN7jMn0_a~Lhe=XwlRVk80PGZ-jCZw^KT zxRH-81G>`DC%{KqToG6_KwdiP&<4mdW4?k zW=Nx`s=UR2oFQ)WuAF%r7+C z^?b#GGx0UNJeadRwN4ZzVP4Ggbh^_#+EWm=_9mmP$d0>guVHw~-rmv85>#ByuQqNJ z<{I6F%0`vw))6Pgm6&{!xFs&QOwiNGRN0n$nN+`Jlcsn(pQVx$^Gf-jS$pcIE0)GR z|IqSUy7$~HzMny!^N}L>ifih|XJEUw!fS`9tig26kjm4EnMR4@Y)-Ot3ss$RLmNbjoz>0Ye^^ zqs$Wa(NZPrq;KwQY`X w<8?xcYks;UoQ=ghgv9yH2!<@(_JlYv!OXB+duGv6ahs}6WD z^a%E65Om}i82fo*F$V%rdodn6QC?O)o@Qt_(?f_Ydt6LB?TuV)p$Jg+f6ZP?cTo0^ zhLm*+T+C_~SeaGB2Coxvn}4#+I$JRC-xc6%f7EB2FWS!g_2|2?p*LF9m_|8z`)F~# zcMRLzG``^l&E@vey!-`qZZ|}#^=v@uLgOea{iM}fuf7oGhC1ce{tn6`#qHsS@}{RGjWTbbfg z3)MG90J5wrzgLwxtjHde-{|G%wYFy~I3!_RKCdrTEx*z$ybee&ceh_rFthl*DJn)L zw==O@7O#}V%lOH_{Y#CVF^aD9$~&p-wzIP4v+eXGmNdLa5+M^sO8A5pY1rf1sCss! z7zpd4onh6VY$}Pats-)OP=JqbEj&$c4p9Jsat=<D@B@`6*;qKF!1kQnfh3osI{ zzle;lWCRE*g4hqd<+c7Cj(4*dDZA_4SmDcH9BJTsNa<)c4b3d|zQf-yxqFb`N|N^GrtK`E!P-bR56Uf@uh~`PSl8Tyv(l}pDR!h-yX@;0)mLF9>E_e~ z82Owwc(s1~gKQVQ;8PJ~H3H)^ir|HP z8v@x|GiN^VjB8zpg5#G&8{Zh|b$T&{|Do?z0GVr`W-PfKsb>Ut-p_RJh? z6H_Lmw~u4G41T>VU|*z|8B?6Oo<49Jr-glCwl4Wl^l6c+l(BeC*|;EBwY*V+pYp3% zh%jZCCBOZV;}`0fIZPL13hycBmc`RrW7b}+Qxh*Gx~|TQEZV&fXL~$7d`$Yn3-}^$ z8ypioU9tPe2!(7}OxCX*a1ZKZETie6t#!IkddL?wKxkhO|3P?;`|6y#sqn7c)k)H@ zrBwK)(@I|SUH=}Bnr4`BxLP%<>;5({wHQ!zLP8!bnTGG!ji|PRzE{0?&iVd_iP?oO zduGF3l43PmvuwK8!akplnXg>Ym+4ku(mt}`f_PFSPa-h~3+|T>MlWiKsf4eXv=*Hj zZzdiYdf`?U-6&h1~gd4qDQLzuU~z)Q`#HdChdx z>H7J$Ra=I?GO=oQ9@cm?6*!C)b26owzZl$i5#1r`Vcqmr_WJM1*_M@VAvKt`Pu90O<89St2VA|exJM| zsOl;{G-S|YVAr-!Mu|qW4S|!Qpc9LU%-1wqB(39-A&C?aK)vixzw`aATKDrwY0M0J z5z(*)L%@(9M5l^PmN0Jy+n_99u;qnDa7O(qeLZ)(1utkv`kS&0lRK2)a&TB6=tI6p Jo=5ogKLOMtH9P$v+haxBuv64)nPE$ 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 Nu*PBW7!Eq}%HO}WQ_cVY diff --git a/htdocs/theme/phones/smartphone/theme/default/img/messages.png b/htdocs/theme/phones/smartphone/theme/default/img/messages.png deleted file mode 100644 index 1a7879a2b5f566b8d82b1f39ba04945555bf3de9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1412 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 diff --git a/htdocs/theme/phones/smartphone/theme/default/img/nike+.png b/htdocs/theme/phones/smartphone/theme/default/img/nike+.png deleted file mode 100644 index 673d59dc84ed23c906db6b8e88698591556caecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1106 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy%*9TgAsieWw;%dHU|?Wu2=EDU z{r~^}CnJXcbDREep8J1k&;O~F|JzdjubKM4ui*dgW&bZ6{?`!w_t5(P#td^57=eoa zmIZ#)0-D9}MVsN16vGDvh99R7{GV0#H^=E;k>|hKs6Y80Kf^Wt-M#vM|Jolj8vj*= z{0vh1Vk+>(fb;*AqkpfS{d0W(-|dTkt(^8}LjI4Q(qD}+f77jhr&@js()wyG^yAUJ zpLehRJG%K-so(E-qyIV#AWMJ$GB!5W)zMZ_QTg%W$&ZtJuU|4Ai3Csq9K%KDz``!m+?TeRa>Z~d>XD&JfszF0_nH)97H1q2&6ZUmAm z*Q^N&3i9#s0UFN9$@%Zo$B!?c0nv}EXTP04`seE>pvd1>PhP%x{rACbpp))Dd<2pD zv~$(}^|OAjoBwOc6a)KY{XSr5Hk1VU1%teb3RVHR?@)!1 zc<;bcf`T)5?|uhiBT4@MuVifO;!@r*bJgy<*rZX^f;mRE7bXDR!dc)ESKxJHx&=ckpFCl;kLIHu$$r7E~(7NwTw7iAYKI0u`sZMwVwn5edTx;Tbd z^tN6O4}NSQ!unvfi302G6NjdGKl(C{!Slu5@@p0e{tJJHBpK6Ws$A{kKh?&uM#@dUTUZ;FTk6+m>31 zGFSR;xx#nDEX3>T8vm=3UMttFYHgA`u`4FBJ1CjWZE0w-q5V>^kYxdD!n${zpZw0d zTKnj$q$y_{x3?7DoFCIKtC?pWb;!%e#2lOwEUG z&c`J8|NN8Pdt)!h(XgPI&9m9Q=+E_OQ}&(_yKeH5{A!l_EK7dOe`=(7J$bqEJDqUG zmiK;dC;tli@58s7v6y+{ZzisuPt0*Y3hryqlfN2u-v5Mq!~67wVV^I&{Kx&G{_poi zVp*%o3T?I>{CBT>|9R`#zwON!wzd1SwYP8I^-fAks^-@WUVX+-eBQ>N_i^w7Bbvd} L)z4*}Q$iB}fv{(# diff --git a/htdocs/theme/phones/smartphone/theme/default/img/notepad.png b/htdocs/theme/phones/smartphone/theme/default/img/notepad.png deleted file mode 100755 index 3f38062986af8bf0390385bd7ae239fab9523cbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1266 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°z);r<$^aAr47@C0Lk*iGT?A;|cmpDEAfx(1i z(H;nvaX}%e5FDDu5E!gv$BYUcwfcrW{^{B~E@IF{zQ47##Xt$Es-~0G-Ix~|8vA)4 z;v!BDe{g6z1dI1TP>6y%c0vuu!d(bLCw`~555dESE3Eza$r^Oy)w)xmCp}x%&P32& zSYLm^j}fPbKkQ@{gdR^51ROh|;vyn**jhzIX(22;3+5M=VQl;c%W|GlV|T*DXdFu!tN38CScY`melAC^$03KPyz z^bI?yW}B9dEXAPu^qCw%KxA|_CqB1yd?c6`>Kl6D3BGnJbeYg@C;OW~$1N&W2aj>@ zP>IJgFHJNuP7gojgcylV5Fm-yaVnNZ5$-xA)rxDlfkbQ2hWmgfD$|NxK5s!1CYz4V z5hmc~tvSDWl!_DNM$u)IY~*~uVsrCc=bnyM3X00eF6YOxM1EfF99ON@R6v@#lwUqt z5;3-gkE==KQItSvCQ`WOuyZ{p{{BN?cRdXPE%XC3;hx>ze|B zAHa~IE)fK%vu#{4W-<6L;;dG-%)bH`>i+!9spvR}C7`1gBoBQ^C zqv8c%dH?$#_IEWkJ6~NG_!EXNPQu9O6pUWFj_}l;wzz+N8y|lV7jY7IOKace{vUtp z!{TpKWcJJPgs$=5hw`^x?R{HucZw(BNnMP00000NkvXX Hu0mjfQ-m3@ diff --git a/htdocs/theme/phones/smartphone/theme/default/img/photos.png b/htdocs/theme/phones/smartphone/theme/default/img/photos.png deleted file mode 100755 index 2c801e05df709789dac795618e9009dc339927e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1639 zcmXw24Ls9n9Dfiulgi~jaa=jMj#BrMgpOEVcWxLh+^%e~7Kb%sl0MPf>BWUiablNi zUZzb(UY4>`lx9PD$(X#AWs5?_@W02$=YF5(_wsyypWpBKJkRs}UGm3y8KS>L0{{$t zyxsB8Z-Huo(t&n>7#IhgP8`N32!%q)hWuUwpk3+j8{~l?i0v*reY6402b06S{Rl9? zM>1d>K%#pRPwXSmb_dcRzR%NdD>fFUR&nppnAH>n&s@!gtB_j*YoT>)d-?OkbxznOM`UHEi9`3LR41~#oy20t6L_K zkIKyDvDD?a(GL~K*l7Lo2)W_ST+J9VHdH)0N|C>=X?$0{Ja}+Xmh?}*f2raNi4|7=Y^!jpdz%7%J+|Gqn*Tz=_QBAajSmbLZr+Pj5FI|1pmS4)z({bFH< zg44ZF)t|HcoLt@2F)1P3m#PqnX>I4@YKfw_a};TD<%^YN(gAf-jHLBUrewaT^+R#X zc(!{qBo{>99Y%5tdkc4+ zFHcXea6ETM(8uy6mZ;haKw1egth}g{1H$=O{B6~zG@!TyFzh+eC3029kDmDxwCw!S zw9r6y41w*bhzE~PgPwRGOx#<_^t_fp894@esi2&p9eQ=mo{aCqn92UBUtgyFOpgkQ zr-ncH6;LBdj!EGB;h*5ATQObg0>IW&M)3D3!T!X9#4ukE$N~N127kH%d%_k-Do76y z3U)jDF>Ha8!;fFMtc9F`B*Bt&HsL3DJV^OHBQ=HfTOR-p{1dmdQ%EK={)`0S=ip?4GQCCr)X_YkN(lVy zte;k+O|z)#)~K!R%z!g!oX5Yquzrese45&tu})EochGgnP-D|`qS;P@4IuHxS>;%C zp*i-BMH8pbX>pU;hS}b2ryPGRw>9JK^f+hB9s9whiu~@S!RPnv_w_x@eBq)020f8o zP?5+r>Ik0Kphe1Kas18Gq1GMInOnTFX4;;q*1ycJK^E^>WuGbBI;-xW}n+kGjF(A-`lP~GQEy=;C41Ha`r0| z$0zvcPGf9>b<(2*THe4#ZYIw@MpHKV{Sv>707C(RWpHF`sruD`&XYVTDrSrkBd z?RY`Sar$k_xu`Vx&|h7o%G!p*T9+A^f?`(|fhR&49jeO0*)x37hx=G#tg&L9FE`yi z8N!Ol@C?*DO!(H_w4LC!O>KVN{_U`hB^fh8$157G@1atSBcHsBw?s#gr^2Q~@K;Xx zhx~ig#8JHB2J~quoqo-RjT9`a%V9YE^ zSe6}mvUF|#{7}>$+3A_GYn2xD)2fZ6*NM?l?>~Aa)-TDuCcgV5cSbP!5mL;$YCCX7 zE@~xuUVGK|iivYML}giBF#IM3h1**QK8|wx%w)y;bE~|ASPZl+$aY9_4Y*C=i-+bg z)V<}#n_2}sj;^706vu8aGSoiTKC)Rmyrp`rwrem)do5~fSu)!Q;I&s6Ni|$tpC%@b Tw=G=Rv9kB^z`64?p#qP4|!;DDw5ch6m7{0 zW!Y&9(Ii|CR+n=sNAi$|bj4j=?(5YbcdvWDUfXVo z*x2vbyyMF|{b(jJJkocc2VmBJw{Ptx8^8y9pbqX11Ehs}DB2DeXotjq=j*i{>1gTX zXY33rZ45j>rGY*|Ump%S^G_DD<5`q2Drg0^eEC-$N63gT1Z7~UZ|x46?>8QBGxmGe(1K!EsZ=hsJe`!joNRvl_UdnM>mL4o?Os<)r>d!cK|DAv9+2LY4%D|z zRSmtk*d~>8*RE^{TTiPdWD#C716ONdy9cw76y@HS%oYL(TrRhhArrIsIKEPn z`C~a#(!vlAQo4Y&_Qc1*C2}B8p43&5!N0=bpHC|a=E`N%^F47gAeqI?{v}G`$GHu( zV>vf*9Em(uRzWLlBR7DfXeD*Gki~WJ!pfvGJZd308E>ZaD*1x@sWw_FyMds1fRhx( z7YL#Ss!$LNR?UGzy za=5S=BL?m_qOZFoU5bv5&c|n6_7kNLO7_JG*tjea>YM~w7EVn0AuJtz^atP_@HgR5 zbl?#RaG7wBNyktT#GE|uYD&;C`v^|0GwWa|At;0pg(d_0${kPTJJFMz%YD#TuK+we zu*?n}>)?098HL;I$4RqGAns1}bc+jej02GXVZ$P5z;S<@bX&)RPL3`P4$;<#BM94Y zvN^`a8V3?3Ve3S*ClH;_S%f=RoG)9oAd zUVkkjxCfVQs2$te+LP_vA7ez`jzQ~$C~IVJpS-V=*nKL~>7LfxF%9!Y7Gko|%!Ax5 z`JO@g-w?M5w`fk4`wNU_Fh$b_XOP==>0GLf=_!ta4aFj(Cl3lHScYQn8nH z|3$}wXH8$RbWDvfY)Seadp(Qp?$ZnbBNqi*QXZOX(g`j3{;EkG-t0ap`IqMxZ)}T| zYdYVLt?VAn;OCyC$*Kr1EV_(eAh-+F61d+7)0a6Pst$ZO*)y$vVA_Riu5rI(be92Q zkN?D!=F}%5wkAe{9h&p(BTVgB%=>k-jj@ZB<07*Lqetjpt$GHmwyBqX^tHlNLlKo- ziKcHdd>{Lfk`-%TIc^_ z=(muO8RBi>z;ifyKePU2;-jrTDvhYtwD+H08?q3FTrqDLTQO)EBfry)^?3Iw?`&Gl zTiRpHdfepuPkIk8-{ixey_*Z@n|}nz(XDHEg25+OG$&Hsmih;aH@nXljSd_gf`t+1V<`2|w{FePQ#4dP7Q3WMkOUsJ`A*fLQ

    rP+I#io4zsNj9mI|lGDGJp8Wf(4-@ELl4CmzvDO&2_c0ed(fcG`eNajCGj|{f} diff --git a/htdocs/theme/phones/smartphone/theme/default/img/safari.png b/htdocs/theme/phones/smartphone/theme/default/img/safari.png deleted file mode 100755 index e7ca494a7d61c24c741cec20dc3b6e78a000aaa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1636 zcmYjQcT|&C6#o!VWGET8%dkL5ibx3}8&MzoL_jNH2$a}}6)|jO zc$5_dM2taX1cGddAd*#9WQ9Nm0mIj?_4J(H^X~87_kO>3-}~d*^}iQ0hL(}d1MU@;Gaj73 zH+!IR3aAx2<97i)Idk$&LF)2EiElWL#zK8{6F)#h{tDUlF3h~ zy{x5wZ9$bD2VLAAb20#GdDZ2ATme>XeIGj1i$nOwd0{Wc;X`B5fKwP2g*NyZ6N|=U zV%E#zfH-?&Q7iYvnh69(q^wT6qJ#*FxE2=R*8*j;ncJ8uIacrFo$N z6HeTJ4~{f7X}}WDo&=CU^9NWBu~%MFX$dd9IL!ZPy#TUjc&z+z)<9H?3*};l_8RnlzL$N#R9xf0X#GkaWx=cUy5L zFzu>z`P?^(#LdJQTw&fBL;y zRd1sW$3M{i>-gbkt6cs~bM9PP%Dx8)Qr=%((&H(cJ)5bYLfqTt@OWB*2dDneCVCt% zgguj7wKN)fatEhInAtKIv-shZiPZQp%l2)%N%U@wFi z{CmVn=6H5(iG`3oOO}pn$hj+@b1gW(R!oUuMp&Y~E)$5NPSS3;=`(LQ?I5%{ytT%8 zwsZjfOHJ$yyI^Xc%lQ`$TMJ1gHU`#DKq%==1T`AR+5cyn2J_t~DbSqtb!MD?r`Vo$PPIlUMYR3LVDA zX3@?{=Mz1t#k-mfir($(J~T$QtbU0G63R~OE^N|;>tKG*onbn9PZi%IYM<@Olnmxc z3@PoD!9Fl6`&qw7N;^`p}pFj?=9m W%HCtlyll(8fA+2jB)k?DlJYkZolThl diff --git a/htdocs/theme/phones/smartphone/theme/default/img/settings.png b/htdocs/theme/phones/smartphone/theme/default/img/settings.png deleted file mode 100755 index 4b94e87113bd05cd7c78020ebb0591c57e196ba1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1340 zcmeAS@N?(olHy`uVBq!ia0vp^@<6P>!3-qt#sn7wDdu7)&kzm{j@u9YA22X5t_tu8 zasB`QKR-V|P!K5Z>E&%>YY$}Pzpw;oCQzfKlyq zyLR!~9k?Nfj-Nex^yq=3rw$xGv3KuYpqbmZ?*tmVe$)2V>o%`hyB28v(xpr1FIqBd z?!uWfXHK3rYs!=<{S&7E-QUyG)85(B*529D(o)~pR9D|vU0q#KQC?P2QCwUC^ejB| z($do40SF1Jz@Q*Z&!PpImXf#K*-666=mASfuPq@)B4 zJ~(he0-bnWCl=Bro=U( zBsf234yQoD=iZbwK6Q0=2S0|D0UsY*3#{93`^Nm)7tJ5l9u5CL zSU=pIv*U%(WBU|$k$vH7*|itHiSHMFaAj@#d1YNGW@83{I|_L`MGOi3q35nO&WLo` zWtKfX(pLCo#Eh9Yvy%PSXmO>O`DV&rH(V_y6%sOKv0=}Y<|LtRlbb)69ITo3RDboH z=7J_G6R$I(-)plRbZ;_ceymt2)yl!O_{_Zd>)bAf+G!boe7X5u{2`0A{E;nJ7KX{3 zt9$q-C&r>@`A_lFnrgfMWp=o5DTFTmy!_E-J0)rJ-JhE`{Z9(cD?+_@w5YFgUe>Q>qLHYR`DPJdQsJJEPI zPr_9HQs#|GOu8%By)u|5GhJN!&ihoc{tVB~>szM?X-4wpY;R_q5SF#->k{=P8y0V9 z-WVvhv(w$QDA{a_kyZx3+R?@OOIceNr0#z^U8?JGVSP-po{QI>8PjHW-!>N&u_!EB zup;y2?7wErD%H8Sd7pXpPj@clXbc29y5!k zPdW9_vCH@J?6dn;P37DY&tE6>a;oBmJ0VpnC)i4#-u!#fBJ0D3drvIh?R=TGdHS~p zAqg7%N+lx9t!0Y6^S)VKf3~kmU+$h+-b%&(%+;CmYyS1jiNCY$`!56a6Vub<^H)vJ znE&L51~c=DXWKg&cD{Q$?~bEF!-tK1>-KpoFbEv{KS8KrKf|y6S=T&I`8@?DbOujX KKbLh*2~7ZodSH|Q diff --git a/htdocs/theme/phones/smartphone/theme/default/img/sketches.png b/htdocs/theme/phones/smartphone/theme/default/img/sketches.png deleted file mode 100755 index 8d7bd14e0df5b7c27be054ab9de9f6ae3c689f8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1601 zcmYjQ3pCSv9RCxJ>A}jqjmYw<)Fq8^BTSn{-W!G#(@N$Qv(e_!8Zjo1mRF0kc@Kqg zjnS!bV)VLk>3CM^l2#N-hx>Os=brmH-`DwmzK?T$=l9L@bU(RWO6; zVq$Fcui@cgnM~H(-!GL)Ur4$n63J{cv$eGqTrn(69~5$ig!G|WmQW~sSw$ZdTpkdl zb_xX5HFZ)xYw!-WuOjjBo%o^h1c5*xE2H+5Go?J*qg!#krO~qD^W7z}orN)NMU01B za@P&AG(WVsxL8tfL6jHOaXpO7dSr>0JFA7r#%?yubhMSP?&15pmlFqgy`16wpO$n}5iEh<24_;zGeY|fzomfQ) zsi$BW3`SL)OI;kMlGknG4OqgqLB`B9#{a8v>LRC$<9 zDake~%sC<=BKtfx`yBda$gyxs8)q!JK~`6TP}zYJ=fD||7_5IB0H}T1R0YR+iy|&c1DSVeu=a#y+o(aZ}6qc|P*^ zXMN3ULHSaupXDwu+9zJhOUqfD@@ttAS zexcN^`qtU;rrx0+7 zdd#B0*OhTy0XIW7oB)9SPBOZ;M5H{oFc?OPd`eRv1vCN4lX-22<9@Yn)C%pP9a*t( z05IFAR&aPATk~p~hOk$r8q#T)Ls%WMEGHWB2Ndph zA$Q)?MLfjJc-ku|8Jo(1Dp*-2dCyNjOF8JS0U6O9|1cs*Kr3aM;LdZY_U>zHnuKlX zkB`*chp6=rVG1WLM1g&U5McQ^>r?Zw?lUexo{v@|FTSz6gfZG~m-+?3I-s@{G#19~ lhm{UKQUq@V=<2p^Ur(_f3P161pR4O;#u?*|Zg31{{sY7}=Ar-q diff --git a/htdocs/theme/phones/smartphone/theme/default/img/sms.png b/htdocs/theme/phones/smartphone/theme/default/img/sms.png deleted file mode 100755 index 3c8af6cc23f216cf4adb14833694c9a122f07d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1264 zcmeAS@N?(olHy`uVBq!ia0vp^@<6P>!3-qt#sn7wDdu7)&kzm{j@u9YA22X5z7OyT zasB`Qzf76C@4MeK@A|BnSEf$CGNt!=*W}CnlP>o4UFd4OTGMr|t@cuN z>-om!bM<8x3TsbRRvs@YJ64!=IwkLTX3>$H)ZHvOhj)UyQ>E zYpHAeE=L?Ab_GdZ;P=?)V1Llc>abDZb}!$p9$s6Vt#+A69Ocv4rzn3&+-94Z%3ej$ z!`zM=tV9lR*{!#b+AAQqk3)11x5ZjRlhwN1dzi$w@rZ5Z<=@U~xJt`lr3T9`2KFrs z@~b5@mMKWC5foj+Be;%3b*UWVdIsgi(yVJ4fMF=JK$L$eJKGWl(YXS^@Z_G$$~KpQ zVKRf}Rku~ZI4~*+@(X4V6ckiaQZhybE=V9Wt-QRWW9H0NyU*Nx2Lzo#FDih#ISV`@ zf$53s0|+xZtudJa6qG4(jVKAuPb(=;EJ|f?Ovz75RdCBJN-fVX$}U!L4mM%iba?>- z1Cx=bi(`mJaOospf8jupw)xfXXP)!n77=7(VaYXUP~sNuVKbAOer*2Bdpi;q8tNTc zAssFtz^c07sWMM*=JV=x-C`5A*zK;KXa3&PZyi(0v8^QwFTFR^m@(5}X&$fVzu($z zx2C*bQ1!qfRhXmOc9->(cW*l;SN*Er*KsPTr}$%7#)1cXE-n!boE|40DYMx2ct8o0 z*OdDot!!<*gB*6&D%V**(7u?&Fvaqp=+9y5J-+u{AG`H7jsLYGd4 zO&`~@^=WVAamiFwdL(~seFW?8iTX-jB}W&$(KDY`SzYq~{I{*G{#iet{d)dp$*Toh zXJp<^*#Fe_f5o(EVNGv;F72Ip^13Pq+X^wa=&SaYlFnAC%=!iEzNa^TeBg2S(2p7Y zrcc#Z6_oLBKKrUmPwVUKEdPBh<vG^|&u7keuvTugDW`0KFlPWs0}mI;a~iUNAm>`nCFd^i+yjmbkG zi2K5dwdM<1Zb?hepWtRaQ)%w}1?BvKn>Sm|Q{U3{d6km_v&Obn&cfS`JSHtMW^yQb z!k{X)x9F1B4zCsoeb%5mUt09`oN(#QWIUl?7ALg!-vp&EvyQzk6L>mxN5G7omoD#^ wUVdL?_D-hY;!yqk$8%*^6MXdNKR*!vEzjycj58wVaZ+x3N=Sj<|JO2Lu zN(DD;n(iLD@L>7jmo810b87lIV$T=NxpMvbwUCJqvr8II-TC_I?UVTj-%Xh^rDyAN znT#{K6}Nu<`FH!$9^=xJ>rQ{{+4e>${Xq28hc_-AdGX>&=B!(RefN`6vnp3SzkBEA zgV#T$bFO#K+fmlL&a(baVEb9k;-kH5uRnNjZ}o|HAwAceTkrk&_;lLFE0SraXYYHb zn6fu^+GCHvxG7uTFI>1Vf9lDSrO(csIkV;J&ytdo%%;V;3!lDuen-9Ns!i4DHHRMk z`0-dh`?zBE*~KTmhD63!uX=Ii;#q~TJb(N8)zj$&l4XbXiJ@!mF^XS%d?-w6=|L*0r_wV1` zymm2r{?i{n-egTa9npWCJN|-K&o!&+YZ+zThGiEt3eKfWyZQY6&udSA0_}RD_~Q^T zUg}GN{DOhp0R#;HAKGvNox)k*5n0T@!1V!y8J*Uc%m50?l( zC#5R5WfrBD=NDxcD>w(6ux+}$0GOaYdb&70`-HE~~Y)jVl zYn%ylHBZbmihsb(YAw3bSIdAq>0=Zt4lv|N7| zI=mDAbBNpWo8R#(RkD`fq$~97^q07?)Xtr-bwj`U>K_F+_gkEcEKz)EUoH9|z4+_P yzc=50Dov}uBeCFeZ1rBdAOEbD_jg77;hr_`d8Z}MC3#>XVeoYIb6Mw<&;$VBj*8j< diff --git a/htdocs/theme/phones/smartphone/theme/default/img/stocks.png b/htdocs/theme/phones/smartphone/theme/default/img/stocks.png deleted file mode 100755 index 041648b09bb4a66058207d1389881fb37205171b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1523 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 L`njxgN@xNAjeXJI diff --git a/htdocs/theme/phones/smartphone/theme/default/img/tools.png b/htdocs/theme/phones/smartphone/theme/default/img/tools.png deleted file mode 100644 index acddd0ab44b2b0a999fbef69f984b4a669293db3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2342 zcmV+>3EB3EP)R~7#5%^M%` zxQ$zwG~vP;s+(A3Y8ENP$AR`@f0FRsTv_6Qc@vRKmZ{g ze?lcfh#DeFl(f#nPTa(9;>32mj_vjC&g0JToinqWxCDMxVy)wQckbPLzH`oZ&becf zB*Fjl<2|%dkijFEYQY)sN; zGLbEDoZ#qK^^fIh^aIb}hysv*HpY#;3v++!X)pAR)%l$OS_>|Uo`X`JBc+scP!#bz z+s3eF3i z1+Q=anHq`(4=qIxAvc$Z+~?sXiq8W}7N~m>0XWFJR=pws#Jo5WMHG$^l}1slU_^PG zfrFEezcrL>3E+E;cN0!GUu= zY6RlZOu7ppWA3EdkT?Xx5GW0@cn49Uo-oNJ_eb(9o69J_KUMbO`+P#(p16mI6IqNS zhi;8gu7+5%IEQ<#E#Z~7W--Y)h`WtZs!pITAGvK9x&CVWiSBMpb_32n*=@y^-l0Ow}{A&q*;Nf~OnDb`H^#n8&pT7>WH z8K;#Ap1z}lF>^6nx0&*6q*OzT1v!KDR~I18I6M*H@P&Xtq2X)enphoCs(d&wUQY>X zQ*mO(+(t>}g;--Iv80DFI86|LpHL8+Z*Omc5Q5gjl&BRR+EbFONMo_Kr+|Bx6*22u zT-D;@(>J%H$Tcx+aNNgaB}@T{N2uGe;v!Dedi4ZFp9zQrgBL@5Zy!CuA3eQ>Ac{^C zgm^&QFJt3Vpt6tkwcz2Et$6&V1-P!mLqIRR&A1Ow`Q$;2hSx>66H$4{!u^LX7>rBH~(=p1z zExI)X3L>*Q1!2`2zJ?>^#K1*{WA7L|9`MZj7GhDs=s{ngS8iFHzha#)&qdfq?@5h` zvY1GhQlcA-XMPH`?)hf#xUmx*#AQ5{ywyt*fplyKNs*bkzNK?$_l#dQaU zHNU4lkMDo92OpyKQuhnou#mC-*GL7g{Br_Z)-Aq5#ru!+8f8IwanC4*DvY7)!^H8t_4U^;z)v6T!{=T-$;ua?;Ft`6aLsBx2s1#A zpooGLp`=rdv3}sj4s3m7`4yE9U#Q`;I|s05WDczi%@AAbV>^!H=-JA=efOZkX!F1RFCtnOjI zL9OEBi#z)9(w_6!yz>YSotkbQ+SQgp>UL&d-)h3@G#@(3d_nizu0iZNGzqUYkAIw)#f!U#n+Fb_tDr`g zY8MStkt||+(8l%fONY@vGT&=`ojK%^tPJbTnYXLj3`Dn-JvRyiF2q{Fq#2!_3bhzT z^$>Tj?!=cralIaNu3W>*d(UdCwpsH^CFPN{-659Xhkkqz{ijo}O*53=-Zg;Pxj-9R zTGWK-f#j3R5Sju>VWdqaa^KVICa+wK*~+V#QlD9c)k{nG>)|nc?N@^sIA2G;lp_H1 zE_%w<7`((9oFa(FwjIP%>w56#Llf9@au$YHd)c7Zva~kH9j_oXCx9d;F9*!2to~bh z1HtHI6;Ez^gV(MY!@SAH#Ot!qNCi`cmt#n4w!W0OYybni6@B%WC)mrV*psz5dr3)O zL{ukrORK9#waQqo*x4udLA~lGsYP;yIzADlm4`1RhSo{Jl17CqIN;LT5%;5DPG(K`+%r5!aom*OHBs~?(StN{k!tYH98xp4b z!fda0zJ_SGgXgn7GwbTde!VrBI=0)@7oeHpv(}WBdM(RVyGc$PqDxEvn>bod-z9pz zO8)2XJo&9(OM+8>`Az)x@3)f-bK=MnWjSRPI##YXi*CJ(jFe}&_xMFPOpH@a%KdL( z`s7}IKOu!x07zCzmuaU+N0IwgOE$h&A7O~(T{Ro|3JfV0bN?1#04RXJWYq-uXaE2J M07*qoM6N<$g4rH#%m4rY diff --git a/htdocs/theme/phones/smartphone/theme/default/img/video.png b/htdocs/theme/phones/smartphone/theme/default/img/video.png deleted file mode 100755 index 0aa924894b64caf7bf3cde11ba9744b719be51ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1649 zcmYk52UJsM6vv;5C_*cES}QmzLn^COMyWzk2`E!!BpwKefDj;vtOyudrXY$GN+LBP zt0K!V1Og~a189{%qCg@fAz=uJF$;Krm8PGEp0@vUzIVTO*E{dr-@WGU=J2`7ZWRcE zK6i4o_XKu7I9kd`@Z|e>#Q}qiLph<9m6f@Zr-cxNV7a@ZPbd@$O-;=m+f{)dq}ZWQ z)>c;Ff{!5v#v}&D#^Wv~`dy4V6BO(0>h7Y^XmxdU!L_u|Dr(l1E1(1T7N}(?6x|91b4BrbSy87@-1}?&2@HeU9vR#x z5z{2{8>_1=@8CL-3^Z$}j%B5~c!%2nx7#hc|G{(7t6L+PA^{O*0ONXllj+r~e# zhgmtZ3wOCIH-+-n(e=!kg*!aB;ng~W!N}z;W^%<%kz=_@!U zKZ6cmdhsfzUzS8)2LBlNe8Gn?asCDS3}Zfk{@&&3TrzDHLmzSN=chEwFEy_mr%w_Z zq|QB@GY>^UEi&&`Nd$G-vsrweDzoUE!crv;G*(#Ek`-+PY;pe(W8QX)VuyD)1_vzg|#cTq!iHWPMw~*Tj$XnFg66T4UP&5(K;C(8{VUxq=R}!wUC~B zt}I{&&oI4RrsUWDWyj7hcRi}vS>8^<>$S8z4Oj@C9qLLD4;(p~hu}?fA6zr6aXmPX zMK_fYh-O=rPJa~MG!`@*IJ#JvQxVm$D|-1SSH4REOO)J6xqp}_J89(bjQO^r)S~Uj zW8%F2PT8Q};&SGnYmWLQJug4>{IYV^ED0_=eeA3O`SQAMq*~4xzf+yA+QVH;Nl5Y^ z>yk<;J06~M{NRa#nR8NX3Q7e)-~@8{maWg;C*Nh(=M1rx;w2CZO~O$x!W*5 zC!)zDJCggBp)U3h*tn(eCsTvSe3;ZhN)+>B(Doi)M0a>KBV9gRfMsLDdUk>#UgeKh^ zxUIh$V3K?0xGL%Q((`D0UC=tG*-&+)SvX%mFRFlqCTY{YTf|IOC=Q1k|2b#^fX(H>fuVlue+gPdz4p!0 z%F0T!T8&yXM3X4sa5$*_fS-?!9&m9nG&Dp*hyDAfr>B2k{;x)(8G1I1;tv3AM9Q&T#v4(<9->hJG=+})$gnuk?C7}Hx*_e&&DY!7(0f}|Dy6dVic;Cq z&~Wp{jk>zJs;a7r%Bu46@}i=myu7@t+1WCg>`VFSTdAosvG{9|C_O!0l#wBjNUHh# zlZlC9k*HW85G5zarlu29;VKejkS9p4gU^pNk;43;^0K=!eym&Ayrqk8V&ficd zDKuJ$uWuZk&SEkP$z&#z89}FCc6L5bB8AZDC&}b`2Zstr#{fEAOeQxG2(YJTBANUx z1W8GxTt~+iOUo}vq$o1E+|Eu!B9%Z;y`?3GOs0BzUbeE5Ly&?%@TO8@oSh>{q{C#g z%G8uYB2lT-PYxawLD1&}f*+bEkzyez8iI<=%}dS9(8(eYL?aUY?d={+{DCV z-@YI#D|FV^0Vu>^hy;SIt!)(mm=uJ*)9{2pR}6sB!iH{Qe&<$+CaooY z;SwZGD9MaXj|YsnG=9A8p``Tq%(Qfo*wzEU^qAPuh1v5fDisOgZV|HcW!NU2F zv6VDo{NsNY-xiKL^E(D5#k>1zj3azU9kxmoFEQJL9E}EN;pWrGBI(EOk=l#TMXrR|I~dvxslh%`DT)k9ov$coSanS zbkPa0@rpWue!5MgNt4)j2He<}b9=2rqiGu$r&({8QKaK@zmB!Y67+2@BI8Y(5`o*w za9_L2`18zp-S8y8@bts+Q|~6$=9N+U{4hqvBMPne*Mh;QD6M{n&3q<<{F~qX*`@He zfGx|^zGSo4;;Cw3wzz&w}aA9|7*|W#BiUoLF2cn*awTZmETT<=jvZSo(iQC?V3~e zmyw>%-d4vRTBr12MOgYI!ej;}?5wQ*^ru^^ElX!9~ Tx`JP!D+^eDM_?uMc+UR-d`ZAq diff --git a/htdocs/theme/phones/smartphone/theme/default/img/weather.png b/htdocs/theme/phones/smartphone/theme/default/img/weather.png deleted file mode 100755 index d22550b1e7492a60cf463b9abfbd064a97351d91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1523 zcmZWoeKgZ+9RHE>Qe<7ydbvjTq#{L*kV-=#Q+X@76*0BDYs0pd5`|mxl0w;RGNV?q zu~n=wBQIry>s>J$`k<~DHAClHJFIsZdA z1yEqU(~Gjko4DDHqV0K69ZlAEBqQwI)$B-c_5UR}Pfce3;7m>xybsK9e_?sk4~9>H z#m^_On|y;`%NC{YW_A>|*s#T5;vOvXq!i(Y0?yg^K<#^{k5$~$|Ui*l6 zo%<2T2Y(dHstRH)s}}_Yv^S3&tR*veu8f(_H?N#G6@#1X`sjlGz$f4(%igR^5&Ce> zvTXQFQ6r8m7iFIDh74p3r zw_LFHsS^2Eb>ntkV0O)k%z^xrBiOqQzp%z!GiH8bDLw8rT}w`*-}Hl@(ug^y!vt=r zgCRF7uO{5LybU&F$*t~m?n$0LomgR+*5-0c7!`M4`>rA(Cd4>(NbmNvPn?hxeO)~j z_+MsO$2aV|CfaC7%e2uF!ju9{Y z@H8u8T^Ke|i#)NKG>RnlZ~eXL2$qvuH&21hWKQ<>@_`TtQ&ZF3|H0*7`1yrVsYyw6 zdQnC5z`zuY4|We`;4$q8w*c7rI62P4UWP>2SbVHu&6`0 zC@hs2g(sn$eQZ_;I#}@kNO5;L=(`TNyat2ch=rh`^I?PZ#;ImPIVQ7r=gJ-23;ecg z=)cuh$7}Ap+;)Iv7MIz^&~eq@Zh(-mvcGUWp7+{vF(Gc$XBBn*&(53FH2oMlgCcyFcQX^qUl{o1@9q)s>z7w1&)V7uI4!yf0y zXHh0bS9~$`c8=30eS5c|k7OtM2S4nqkW5P(Q^q5`YBoLKs^xM5DpCZ8C z#joIMps*$--?F%O9t5~=nJ*^DpP1M+2nSRCw)pHBsK)mg>sVR7_qSbJB&Gi4A*ngg z@f>B7yKXaAmltZ%kmQsbY#>w3sx-E0nt2@+IAL~u=}ECsXc7m+*~?N?I4Z9F$)zpYrPwYWd^+F&swyut(~Rmq8NiE#27Rc}%Nq z(W7EzN1sJamA=&-Jg1;GEy1+VOz)<<1LM>&xz#$$H)}mJySw{E#IphWrzl39tCo)> zBBKb7#xb+C(#funChGYh3mZ)oZFZr?Xx!M7z|(vBxf!9C6O^TPDPp9nx6eW3p9Yp4 zLWiw-6FzAe*B{$jkY-m ziDKeHK&(8UwIFX!$7w*Q1^o9y#D%hswGd>nVQF=X)9M6KyJ!KnFXZm( K<-$V;#s34IA_A%a diff --git a/htdocs/theme/phones/smartphone/theme/default/img/wordpress.png b/htdocs/theme/phones/smartphone/theme/default/img/wordpress.png deleted file mode 100755 index 28f0f7ed308445faeb0c429b8bc4f290a4d6538a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1388 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 Y0?Y3EaxTgxWdHyG07*qoM6N<$f(vG#z5oCK diff --git a/htdocs/theme/phones/smartphone/theme/default/index.php b/htdocs/theme/phones/smartphone/theme/default/index.php deleted file mode 100644 index 7db0dd9ebf9..00000000000 --- a/htdocs/theme/phones/smartphone/theme/default/index.php +++ /dev/null @@ -1 +0,0 @@ -Url not available \ No newline at end of file diff --git a/htdocs/theme/phones/smartphone/tpl/header.tpl.php b/htdocs/theme/phones/smartphone/tpl/header.tpl.php deleted file mode 100644 index 23843681e08..00000000000 --- a/htdocs/theme/phones/smartphone/tpl/header.tpl.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -?> - -<?php echo $title; ?> - - - - - - - - \ No newline at end of file diff --git a/htdocs/theme/phones/smartphone/tpl/index.php b/htdocs/theme/phones/smartphone/tpl/index.php deleted file mode 100644 index 7db0dd9ebf9..00000000000 --- a/htdocs/theme/phones/smartphone/tpl/index.php +++ /dev/null @@ -1 +0,0 @@ -Url not available \ No newline at end of file diff --git a/htdocs/theme/phones/smartphone/tpl/login.tpl.php b/htdocs/theme/phones/smartphone/tpl/login.tpl.php deleted file mode 100644 index 2033fad209c..00000000000 --- a/htdocs/theme/phones/smartphone/tpl/login.tpl.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -top_httphead(); -?> - - - - - - - -

    - -
    -
    - global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; - print $appli; - ?> -
    -
    - -
    - -
    - - - -
    - - - -
    - - - -
    - - - - - - -
    - -
    - - - -
    - -
    - - - - -
    - - - - - - - - diff --git a/htdocs/theme/phones/smartphone/tpl/menu.tpl.php b/htdocs/theme/phones/smartphone/tpl/menu.tpl.php deleted file mode 100644 index d286345eada..00000000000 --- a/htdocs/theme/phones/smartphone/tpl/menu.tpl.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// Load the smartphone menu manager -$result=@include_once DOL_DOCUMENT_ROOT ."/core/menus/smartphone/".$conf->smart_menu; -if (! $result) // If failed to include, we try with standard -{ - $conf->smart_menu='smartphone_menu.php'; - include_once DOL_DOCUMENT_ROOT ."/core/menus/smartphone/".$conf->smart_menu; -} -$menusmart = new MenuSmart($db, $user->societe_id?1:0); - - -top_httphead(); -?> - - - - - - -
    - -
    -
    - global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; - print $appli; - ?> -
    -
    - -
    - - - showmenu(1); ?> - -
    - -
    - -
    - -
    - - - - diff --git a/htdocs/theme/phones/smartphone/tpl/passwordforgotten.tpl.php b/htdocs/theme/phones/smartphone/tpl/passwordforgotten.tpl.php deleted file mode 100644 index ecec5f676b0..00000000000 --- a/htdocs/theme/phones/smartphone/tpl/passwordforgotten.tpl.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -top_httphead(); -?> - - - - - - -
    - -
    -
    - trans('Identification'); ?> -
    -
    - -
    - -
    - - - -
    - - - - - - - - - - - -
    - -
    - - - -
    - -
    - -
    - trans('SendNewPasswordDesc'); - }else{ - echo $langs->trans('AuthenticationDoesNotAllowSendNewPassword', $mode); - } ?> -
    - -
    - - - - - - - - From 6b13e8242a320bf060eed5feee65d7a4db20d51d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Apr 2013 23:47:48 +0200 Subject: [PATCH 21/22] Fix: Restore backward compatibility --- htdocs/fourn/class/fournisseur.facture.class.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 3ca14f707e3..d879019a06c 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -41,7 +41,7 @@ class FactureFournisseur extends CommonInvoice public $fk_element='fk_facture_fourn'; protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe - var $ref; + var $ref; var $product_ref; var $ref_supplier; var $socid; @@ -298,7 +298,7 @@ class FactureFournisseur extends CommonInvoice $sql.= ' s.nom as socnom, s.rowid as socid'; $sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as t,'.MAIN_DB_PREFIX.'societe as s'; if ($id) $sql.= " WHERE t.rowid=".$id; - if ($ref) $sql.= " WHERE t.ref='".$this->db->escape($ref)."'"; + if ($ref) $sql.= " WHERE t.ref='".$this->db->escape($ref)."'"; $sql.= ' AND t.fk_soc = s.rowid'; dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG); @@ -310,9 +310,9 @@ class FactureFournisseur extends CommonInvoice $obj = $this->db->fetch_object($resql); $this->id = $obj->rowid; - $this->ref = $obj->ref; + $this->ref = $obj->ref?$obj->ref:$obj->rowid; // We take rowid if ref is empty for backward compatibility - $this->ref_supplier = $obj->ref_supplier; + $this->ref_supplier = $obj->ref_supplier; $this->entity = $obj->entity; $this->type = empty($obj->type)?0:$obj->type; $this->fk_soc = $obj->fk_soc; @@ -663,7 +663,7 @@ class FactureFournisseur extends CommonInvoice return -$error; } } - + /** * Tag invoice as a payed invoice @@ -1316,8 +1316,11 @@ class FactureFournisseur extends CommonInvoice $label=$langs->trans("ShowInvoice").': '.$this->ref; if ($this->ref_supplier) $label.=' / '.$this->ref_supplier; + $ref=$this->ref; + if (empty($ref)) $ref=$this->id; + if ($withpicto) $result.=($lien.img_object($label,'bill').$lienfin.' '); - $result.=$lien.($max?dol_trunc($this->ref,$max):$this->ref).$lienfin; + $result.=$lien.($max?dol_trunc($ref,$max):$ref).$lienfin; return $result; } From c6835e711af8e3d9e208a514af9f469c9fced684 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Apr 2013 09:56:54 +0200 Subject: [PATCH 22/22] New: Add tool to make screenshots easier. --- dev/resize_window.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 dev/resize_window.sh diff --git a/dev/resize_window.sh b/dev/resize_window.sh new file mode 100755 index 00000000000..a26acd796de --- /dev/null +++ b/dev/resize_window.sh @@ -0,0 +1,26 @@ +#!/bin/sh +#---------------------------------------------------- +# Script to resize browser window to 1280x1024 to +# be able to make size fixed screenshots using +# ALT+Print screen. +#---------------------------------------------------- + +# Syntax +if [ "x$1" = "x" ] +then + echo "resize_windows.sh (list|0x99999999)" +fi + +# To list all windows +if [ "x$1" = "xlist" ] +then + wmctrl -l +fi + +# To resize a specific window +if [ "x$1" != "xlist" -a "x$1" != "x" ] +then + wmctrl -i -r $1 -e 0,0,0,1280,1024 + echo Size of windows $1 modified +fi +