From 4709a51c8464a44efa79b6d7d354eeb4bb87c252 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Wed, 5 Aug 2015 15:19:00 +0200 Subject: [PATCH 001/205] Add number of collected tabs and hook/trigger Add number of collected tabs Add trigger based on tabs name add hook at end of tabs and at the footer of page --- htdocs/core/lib/functions.lib.php | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 6074f6fe841..8a2ac9d8dd0 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -702,8 +702,9 @@ function dol_fiche_head($links=array(), $active='0', $title='', $notab=0, $picto */ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $picto='', $pictoisfullpath=0) { - global $conf,$langs; - + global $conf,$langs, $hookmanager;; + + $tabsname=str_replace ("@","",$picto); $out="\n".'
'."\n"; // Show title @@ -731,7 +732,8 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p // if =0 we don't use the feature $limittoshow=(empty($conf->global->MAIN_MAXTABS_IN_CARD)?99:$conf->global->MAIN_MAXTABS_IN_CARD); $displaytab=0; - + $nbintab=0; + for ($i = 0 ; $i <= $maxkey ; $i++) { if ((is_numeric($active) && $i == $active) || (! empty($links[$i][2]) && ! is_numeric($active) && $active == $links[$i][2])) @@ -746,6 +748,8 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p if ($i <= $limittoshow || $isactive ) { + if ($isactive) $hookmanager->initHooks(array($tabsname."-".$links[$i][2]. '-tabs')); + $out.='
'; if (isset($links[$i][2]) && $links[$i][2] == 'image') { @@ -787,6 +791,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p $outmore.=''.$links[$i][1].''."\n"; $outmore.='
'; + $nbintab++; } $displaytab=$i; } @@ -795,7 +800,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p { $tabsname=str_replace("@", "", $picto); $out.='
'; - $out.=''.$langs->trans("More").'...'; + $out.=''.$langs->trans("More").' '.$nbintab.'.''; $out.='
'.$outmore.'
'; $out.="
\n"; @@ -809,6 +814,9 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p if (! $notab) $out.="\n".'
'."\n"; + $parameters=array(); + $reshook=$hookmanager->executeHooks('printTabsHead',$parameters); // Note that $action and $object may have been modified by some hooks + return $out; } @@ -4898,7 +4906,7 @@ function complete_head_from_modules($conf,$langs,$object,&$head,&$h,$type,$mode= */ function printCommonFooter($zone='private') { - global $conf; + global $conf, $hookmanager; global $micro_start_time; if ($zone == 'private') print "\n".''."\n"; @@ -4976,6 +4984,9 @@ function printCommonFooter($zone='private') print "End of log output -->\n"; } + $parameters=array(); + $reshook=$hookmanager->executeHooks('printCommonFooter',$parameters); // Note that $action and $object may have been modified by some hooks + } /** From f5d4cc5f898cfef7cb157261b4af082301faa931 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Thu, 6 Aug 2015 16:23:34 +0200 Subject: [PATCH 002/205] Update functions.lib.php --- htdocs/core/lib/functions.lib.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 8a2ac9d8dd0..da2a301fa59 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4986,7 +4986,6 @@ function printCommonFooter($zone='private') $parameters=array(); $reshook=$hookmanager->executeHooks('printCommonFooter',$parameters); // Note that $action and $object may have been modified by some hooks - } /** From 187c40aca9b77b1371a815251efa36bf6588f88b Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Thu, 6 Aug 2015 18:20:09 +0200 Subject: [PATCH 003/205] Update functions.lib.php --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index da2a301fa59..bf05f53f897 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -702,7 +702,7 @@ function dol_fiche_head($links=array(), $active='0', $title='', $notab=0, $picto */ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $picto='', $pictoisfullpath=0) { - global $conf,$langs, $hookmanager;; + global $conf,$langs, $hookmanager; $tabsname=str_replace ("@","",$picto); $out="\n".'
'."\n"; From 049805e926fae964631a6a9eb307a10a2c567742 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Mon, 10 Aug 2015 19:47:12 +0200 Subject: [PATCH 004/205] Update functions.lib.php Div enough on sub-menu case (project/task) --- htdocs/core/lib/functions.lib.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index bf05f53f897..28bf2e67e45 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -810,8 +810,6 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p $out.=""; } - $out.="
\n"; - if (! $notab) $out.="\n".'
'."\n"; $parameters=array(); From 1d85529eda86b03f206ea627ca917551041a6c18 Mon Sep 17 00:00:00 2001 From: Francis Appels Date: Wed, 1 Jul 2015 23:24:54 +0200 Subject: [PATCH 005/205] Fix delete not used empty stock record When removing all stock from warehouse are move all stock to other warehouse, there is still an 0 stock record in in the stock table for the source warehouse, not visible in Dolibarr. --- .../stock/class/mouvementstock.class.php | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/htdocs/product/stock/class/mouvementstock.class.php b/htdocs/product/stock/class/mouvementstock.class.php index b37384932cf..9c1e555ba3b 100644 --- a/htdocs/product/stock/class/mouvementstock.class.php +++ b/htdocs/product/stock/class/mouvementstock.class.php @@ -3,6 +3,7 @@ * Copyright (C) 2005-2013 Laurent Destailleur * Copyright (C) 2011 Jean Heimburger * Copyright (C) 2014 Cedric GROSS + * Copyright (C) 2015 Francis Appels * * 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 @@ -232,7 +233,37 @@ class MouvementStock extends CommonObject { $fk_product_stock = $this->db->last_insert_id(MAIN_DB_PREFIX."product_stock"); } - + + // delete empty stock record + $sql = "SELECT reel FROM ".MAIN_DB_PREFIX."product_stock"; + $sql.= " WHERE rowid = ".$fk_product_stock; + + $resql=$this->db->query($sql); + if ($resql) + { + $obj = $this->db->fetch_object($resql); + if ($obj) + { + if ($obj->reel == 0) + { + dol_syslog(get_class($this)."::_create delete 0 stock record", LOG_DEBUG); + $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_stock"; + $sql.= " WHERE rowid = ".$fk_product_stock; + $delsql=$this->db->query($sql); + if (! $delsql) + { + $this->errors[]=$this->db->lasterror(); + $error = -8; + } + } + } + $this->db->free($resql); + } + else + { + $this->errors[]=$this->db->lasterror(); + $error = -7; + } } // Update detail stock for sell-by date From 6801504755f691f23559e15ce5a11af6d9a339ec Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Tue, 11 Aug 2015 23:51:02 +0200 Subject: [PATCH 006/205] Update functions.lib.php some bugs sorry --- htdocs/core/lib/functions.lib.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 28bf2e67e45..9c071b80798 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -800,13 +800,13 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p { $tabsname=str_replace("@", "", $picto); $out.='
'; - $out.=''.$langs->trans("More").' '.$nbintab.'.''; + $out.=''.$langs->trans("More").' '.$nbintab.''; $out.='
'.$outmore.'
'; $out.="
\n"; $out.=""; } From a3db26adfd335a166d97bc4a7b2b85c0d694599c Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Fri, 14 Aug 2015 19:13:13 +0200 Subject: [PATCH 007/205] Update functions.lib.php change context init method --- htdocs/core/lib/functions.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 9c071b80798..48271de3717 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -748,7 +748,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p if ($i <= $limittoshow || $isactive ) { - if ($isactive) $hookmanager->initHooks(array($tabsname."-".$links[$i][2]. '-tabs')); + if ($isactive) $hookparameter = $tabsname."-".$links[$i][2]. '-tabs'; $out.='
'; if (isset($links[$i][2]) && $links[$i][2] == 'image') @@ -812,7 +812,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p if (! $notab) $out.="\n".'
'."\n"; - $parameters=array(); + $parameters=array('context'=>$hookparameter); $reshook=$hookmanager->executeHooks('printTabsHead',$parameters); // Note that $action and $object may have been modified by some hooks return $out; From daa68efdd3e7aa7e185713f29d37c8606d0d6c27 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Fri, 14 Aug 2015 23:23:44 +0200 Subject: [PATCH 008/205] Update functions.lib.php better context change --- htdocs/core/lib/functions.lib.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 48271de3717..65659a1dce4 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -812,7 +812,8 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p if (! $notab) $out.="\n".'
'."\n"; - $parameters=array('context'=>$hookparameter); + array_push($hookmanager->contextarray,$hookparameter); + $parameters=array(); $reshook=$hookmanager->executeHooks('printTabsHead',$parameters); // Note that $action and $object may have been modified by some hooks return $out; From 91c8057d513150cd70b41166912a2275fe130812 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Wed, 19 Aug 2015 16:59:43 +0200 Subject: [PATCH 009/205] NEW : import Third parties/Sales representatives --- htdocs/core/modules/modSociete.class.php | 15 +++++++++++++++ htdocs/langs/en_US/companies.lang | 1 + 2 files changed, 16 insertions(+) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index 29eb7d62447..68db9ea47f6 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -467,6 +467,21 @@ class modSociete extends DolibarrModules 'sr.code_banque'=>"0000", 'sr.code_guichet'=>"1111",'sr.number'=>"3333333333", 'sr.cle_rib'=>"22",'sr.bic'=>"USHINGMMXXX",'sr.iban_prefix'=>"US00 0000 1111 22 3333 3333" ); + + // Import Company Salesman + $r++; + $this->import_code[$r]=$this->rights_class.'_'.$r; + $this->import_label[$r]="ImportDataset_company_4"; // Translation key + $this->import_icon[$r]='company'; + $this->import_entities_array[$r]=array('sr.fk_user'=>'user'); // We define here only fields that use another icon that the one defined into import_icon + $this->import_tables_array[$r]=array('sr'=>MAIN_DB_PREFIX.'societe_commerciaux'); + $this->import_fields_array[$r]=array('sr.fk_soc'=>"ThirdPartyName*",'sr.fk_user'=>"User*"); + + $this->import_convertvalue_array[$r]=array( + 'sr.fk_soc'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty'), + 'sr.fk_user'=>array('rule'=>'fetchidfromref','classfile'=>'/user/class/user.class.php','class'=>'User','method'=>'fetch','element'=>'User') + ); + $this->import_examplevalues_array[$r]=array('sr.fk_soc'=>"MyBigCompany",'sr.fk_user'=>"login"); } diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 764ca969350..9f26c82960e 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -375,6 +375,7 @@ ExportDataset_company_2=Contacts and properties ImportDataset_company_1=Third parties (Companies/foundations/physical people) and properties ImportDataset_company_2=Contacts/Addresses (of thirdparties or not) and attributes ImportDataset_company_3=Bank details +ImportDataset_company_4=Third parties/Sales representatives (Affect sales representatives users to companies) PriceLevel=Price level DeliveriesAddress=Delivery addresses DeliveryAddress=Delivery address From 3ae951541610d5d91a888c378792baa6e491c42d Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Thu, 20 Aug 2015 10:43:27 +0200 Subject: [PATCH 010/205] add column for import --- .../install/mysql/migration/3.8.0-3.9.0.sql | 21 +++++++++++++++++++ .../mysql/tables/llx_societe_commerciaux.sql | 3 ++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100755 htdocs/install/mysql/migration/3.8.0-3.9.0.sql diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql new file mode 100755 index 00000000000..23e26ed7e48 --- /dev/null +++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql @@ -0,0 +1,21 @@ +-- +-- Be carefull to requests order. +-- This file must be loaded by calling /install/index.php page +-- when current version is 3.8.0 or higher. +-- +-- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new; +-- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol; +-- To rename a column: ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60); +-- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname; +-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60); +-- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name; +-- To restrict request to Mysql version x.y use -- VMYSQLx.y +-- To restrict request to Pgsql version x.y use -- VPGSQLx.y +-- To make pk to be auto increment (mysql): VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; +-- To make pk to be auto increment (postgres): VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE +-- To set a field as NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL; +-- To set a field as default NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL; +-- -- VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user); +-- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); + +ALTER TABLE llx_societe_commerciaux ADD COLUMN import_key varchar(14) AFTER fk_user; diff --git a/htdocs/install/mysql/tables/llx_societe_commerciaux.sql b/htdocs/install/mysql/tables/llx_societe_commerciaux.sql index f9305c71a09..20083645638 100644 --- a/htdocs/install/mysql/tables/llx_societe_commerciaux.sql +++ b/htdocs/install/mysql/tables/llx_societe_commerciaux.sql @@ -21,6 +21,7 @@ create table llx_societe_commerciaux ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_soc integer, - fk_user integer + fk_user integer, + import_key varchar(14) )ENGINE=innodb; From a6701aeb693286a32eb73c6418d409355879f56f Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 23 Aug 2015 15:39:55 +0200 Subject: [PATCH 011/205] New: CkEditor add possibility to choose skin --- htdocs/admin/fckeditor.php | 42 ++++++- htdocs/core/class/doleditor.class.php | 2 +- htdocs/core/lib/doleditor.lib.php | 133 +++++++++++++++++++++ htdocs/core/modules/modFckeditor.class.php | 1 + 4 files changed, 171 insertions(+), 7 deletions(-) create mode 100644 htdocs/core/lib/doleditor.lib.php diff --git a/htdocs/admin/fckeditor.php b/htdocs/admin/fckeditor.php index 7fbe4415b2b..6b608d238f3 100644 --- a/htdocs/admin/fckeditor.php +++ b/htdocs/admin/fckeditor.php @@ -25,6 +25,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/doleditor.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $langs->load("admin"); @@ -98,13 +99,36 @@ foreach($modules as $const => $desc) if (GETPOST('save','alpha')) { - $res=dolibarr_set_const($db, "FCKEDITOR_TEST", GETPOST('formtestfield'),'chaine',0,'',$conf->entity); + $error = 0; - if ($res > 0) setEventMessage($langs->trans("RecordModifiedSuccessfully")); + $fckeditor_skin = GETPOST('fckeditor_skin', 'alpha'); + if (! empty($fckeditor_skin)) { + if (! dolibarr_set_const($db, 'FCKEDITOR_SKIN', $fckeditor_skin, 'chaine', 0, '', $conf->entity)) { + $error ++; + } + } else { + $error ++; + } + + $fckeditor_test = GETPOST('formtestfield'); + if (! empty($fckeditor_test)) { + if (! dolibarr_set_const($db, 'FCKEDITOR_TEST', $fckeditor_test, 'chaine', 0, '', $conf->entity)) { + $error ++; + } + } else { + $error ++; + } + + if (! $error) + { + setEventMessage($langs->trans("SetupSaved")); + } + else + { + setEventMessage($langs->trans("Error"),'errors'); + } } - - /* * View */ @@ -157,9 +181,15 @@ else print ''."\n"; + print '
'."\n"; + + print '
'."\n"; + + // Skins + show_skin(null,1); print '
'."\n"; - print_fiche_titre($langs->trans("TestSubmitForm"),'(mode='.$mode.')',''); - print ''."\n"; + + print_fiche_titre($langs->trans("TestSubmitForm"),'(mode='.$mode.')',''); print ''; $uselocalbrowser=true; $readonly=($mode=='dolibarr_readonly'?1:0); diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index db303ee7d1b..27fd1b1ee80 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -169,7 +169,7 @@ class DolEditor if (! defined('REQUIRE_CKEDITOR')) define('REQUIRE_CKEDITOR','1'); //$skin='kama'; - $skin='moono'; // default with cdeditor 4 + $skin = $conf->global->FCKEDITOR_SKIN; // default with ckeditor 4 : moono $htmlencode_force=preg_match('/_encoded$/',$this->toolbarname)?'true':'false'; diff --git a/htdocs/core/lib/doleditor.lib.php b/htdocs/core/lib/doleditor.lib.php new file mode 100644 index 00000000000..63883ffd0f4 --- /dev/null +++ b/htdocs/core/lib/doleditor.lib.php @@ -0,0 +1,133 @@ + + * Copyright (C) 2010-2012 Regis Houssin + * Copyright (C) 2015 Alexandre Spangaro + * + * 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 . + * or see http://www.gnu.org/ + */ + + +/** + * \file htdocs/core/lib/doleditor.lib.php + * \brief Ensemble de fonctions de base pour la gestion des utilisaterus et groupes + */ + +/** + * Show list of ckeditor's themes. + * + * @param User|null $fuser User concerned or null for global theme + * @param int $edit 1 to add edit form + * @return void + */ +function show_skin($fuser,$edit=0) +{ + global $conf,$langs,$db; + global $bc; + + require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php'; + + $formother = new FormOther($db); + + $dirskins=array('/includes/ckeditor/skins'); + if (! empty($conf->modules_parts['theme'])) // Using this feature slow down application + { + foreach($conf->modules_parts['theme'] as $reldir) + { + $dirskins=array_merge($dirskins,(array) ($reldir.'theme')); + } + } + $dirskins=array_unique($dirskins); + // Now dir_themes=array('/themes') or dir_themes=array('/theme','/mymodule/theme') + + $selected_theme=''; + $selected_theme=$conf->global->FCKEDITOR_SKIN; + + $colspan=2; + + $thumbsbyrow=6; + print ''; + + $var=false; + + // Title + print ''; + print ''; + + print ''; + print ''; + print ''; + print ''; + + //$var=!$var; + print ''; + + print '
'.$langs->trans("DefaultSkin").''; + $url='http://ckeditor.com/addons/skins/all'; + print ''; + print $langs->trans('DownloadMoreSkins'); + print ''; + print '
'.$langs->trans("ThemeDir").''; + foreach($dirskins as $dirskin) + { + echo '"'.$dirskin.'" '; + } + print '
'; + + print '
'; + + $i=0; + foreach($dirskins as $dir) + { + //print $dirroot.$dir;exit; + $dirskin=dol_buildpath($dir,0); // This include loop on $conf->file->dol_document_root + $urltheme=dol_buildpath($dir,1); + + if (is_dir($dirskin)) + { + $handle=opendir($dirskin); + if (is_resource($handle)) + { + while (($subdir = readdir($handle))!==false) + { + if (is_dir($dirskin."/".$subdir) && substr($subdir, 0, 1) <> '.' + && substr($subdir, 0, 3) <> 'CVS' && ! preg_match('/common|phones/i',$subdir)) + { + // Disable not stable themes (dir ends with _exp or _dev) + if ($conf->global->MAIN_FEATURES_LEVEL < 2 && preg_match('/_dev$/i',$subdir)) continue; + if ($conf->global->MAIN_FEATURES_LEVEL < 1 && preg_match('/_exp$/i',$subdir)) continue; + + print '
'; + if ($subdir == $selected_theme) + { + print ' '.$subdir.''; + } + else + { + print ' '.$subdir; + } + print '
'; + + $i++; + } + } + } + } + } + + print '
'; + + print '
'; +} + diff --git a/htdocs/core/modules/modFckeditor.class.php b/htdocs/core/modules/modFckeditor.class.php index 6a5932cca5a..4edb557e850 100644 --- a/htdocs/core/modules/modFckeditor.class.php +++ b/htdocs/core/modules/modFckeditor.class.php @@ -74,6 +74,7 @@ class modFckeditor extends DolibarrModules $this->const[3] = array("FCKEDITOR_ENABLE_DETAILS","yesno","1","WYSIWIG for products details lines for all entities"); $this->const[4] = array("FCKEDITOR_ENABLE_USERSIGN","yesno","1","WYSIWIG for user signature"); $this->const[5] = array("FCKEDITOR_ENABLE_MAIL","yesno","1","WYSIWIG for products details lines for all entities"); + $this->const[6] = array("FCKEDITOR_SKIN","string","moono","Skin by default for fckeditor"); // Boites $this->boxes = array(); From 5ee00cf97bbec07b76f9f4e5f33f70355545b515 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Mon, 31 Aug 2015 05:09:21 +0200 Subject: [PATCH 012/205] change made --- htdocs/core/lib/functions.lib.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 65659a1dce4..37bdcfc419c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -812,8 +812,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p if (! $notab) $out.="\n".'
'."\n"; - array_push($hookmanager->contextarray,$hookparameter); - $parameters=array(); + $parameters=array( 'tabname' => $hookparameter); $reshook=$hookmanager->executeHooks('printTabsHead',$parameters); // Note that $action and $object may have been modified by some hooks return $out; From 50184babb95a19ff01efb76696b3e3b60441af8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Tue, 1 Sep 2015 16:38:53 +0200 Subject: [PATCH 013/205] FIX [ bug #2893 ] Dolibarr error when viewing an invoice after changing invoice mask Close #2893 --- htdocs/compta/facture/class/facture.class.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index f5a7c27ecd1..72103f6ac5a 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2558,15 +2558,16 @@ class Facture extends CommonInvoice $numref = ""; $numref = $obj->getNextValue($soc,$this,$mode); - if ($numref != "") - { - return $numref; - } - else - { + /** + * $numref can be empty in case we ask for the last value because if there is no invoice created with the + * set up mask. + */ + if ($mode != 'last' && !$numref) { dol_print_error($db,"Facture::getNextNumRef ".$obj->error); return ""; } + + return $numref; } else { From bd21cf5d68c764f989e1fbea8a5125d0ca6c8290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Thu, 3 Sep 2015 11:58:20 +0200 Subject: [PATCH 014/205] Updated changelog --- ChangeLog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index 0291eeb3a21..a612e867ecb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,9 @@ English Dolibarr ChangeLog -------------------------------------------------------------- +***** ChangeLog for 3.6.4 compared to 3.6.3 ***** +- Fix: [ bug #2893 ] Dolibarr error when viewing an invoice after changing invoice mask + ***** ChangeLog for 3.6.3 compared to 3.6.2 ***** - Fix: ref_ext was not saved when recording a customer order from web service - Fix: amarok is a bugged theme making dolidroid failed. We switch to eldy automatically with dolidroid. @@ -43,6 +46,7 @@ English Dolibarr ChangeLog - Fix: Not showing product supplier reference when page break - Fix: [ bug #3341 ] Missing translation in /compta/paiement_charge.php - Fix: [ bug #3342 ] Taxes dictionary page does not accept localized decimals for localtax2 rate +- Fix: [ bug ***** ChangeLog for 3.6.2 compared to 3.6.1 ***** - Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice. From 7a115c9366ea56e2239738e4cc023d17d96d6876 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Thu, 3 Sep 2015 11:59:46 +0200 Subject: [PATCH 015/205] Typo --- ChangeLog | 1 - 1 file changed, 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index a612e867ecb..f83979aa8e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -46,7 +46,6 @@ English Dolibarr ChangeLog - Fix: Not showing product supplier reference when page break - Fix: [ bug #3341 ] Missing translation in /compta/paiement_charge.php - Fix: [ bug #3342 ] Taxes dictionary page does not accept localized decimals for localtax2 rate -- Fix: [ bug ***** ChangeLog for 3.6.2 compared to 3.6.1 ***** - Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice. From 587a193a4dd3bfa338d0dfd1df53bacdac8de8aa Mon Sep 17 00:00:00 2001 From: AlainRnet Date: Thu, 3 Sep 2015 16:03:04 +0200 Subject: [PATCH 016/205] Update lines.php - pagination - prise en compte des filtres lors d'un changement de page --- htdocs/accountancy/customer/lines.php | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index ba7d35cee70..478a9f2d539 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -184,6 +184,14 @@ if (strlen(trim($search_vat))) if (! empty($conf->multicompany->enabled)) { $sql .= " AND f.entity IN (" . getEntity("facture", 1) . ")"; } +// Count total nb of records with no order and no limits +$nbtotalofrecords = 0; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) +{ + $resql = $db->query($sql); + if ($resql) $nbtotalofrecords = $db->num_rows($resql); + else dol_print_error($db); +} $sql.= $db->order($sortfield,$sortorder); $sql.= $db->plimit($limit + 1,$offset); @@ -192,9 +200,17 @@ $result = $db->query($sql); if ($result) { $num_lines = $db->num_rows($result); $i = 0; - - print_barre_liste($langs->trans("InvoiceLinesDone"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num_lines); - + + $param=""; + if ($search_login) $param.="&search_login=".$search_login; + if ($search_facture) $param.="&search_facture=".$search_facture; + if ($search_ref) $param.="&search_ref=".$search_ref; + if ($search_label) $param.="&search_label=".$search_label; + if ($search_desc) $param.="&search_desc=".$search_desc; + if ($search_account) $param.="&search_account=".$search_account; + if ($filter) $param.="&filter=".$filter; + + print_barre_liste($langs->trans("InvoiceLinesDone"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num_lines,$nbtotalofrecords); print '' . $langs->trans("DescVentilDoneCustomer") . ''; print ''; @@ -277,5 +293,10 @@ if ($result) { print ""; + if ($num_lines > $conf->liste_limit) + { + print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num_lines,$nbtotalofrecords,''); + } + llxFooter(); $db->close(); From f33cd85c0478d113da52c0af789f7c72dd4b955a Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sat, 5 Sep 2015 06:15:27 +0200 Subject: [PATCH 017/205] New: refund VAT --- htdocs/compta/tva/card.php | 59 ++++++++++++++++++++++--- htdocs/compta/tva/class/tva.class.php | 4 +- htdocs/core/menus/init_menu_auguria.sql | 4 +- htdocs/core/menus/standard/eldy.lib.php | 4 +- htdocs/langs/en_US/compta.lang | 2 + 5 files changed, 60 insertions(+), 13 deletions(-) diff --git a/htdocs/compta/tva/card.php b/htdocs/compta/tva/card.php index e5acabd4e19..33c795ed10b 100644 --- a/htdocs/compta/tva/card.php +++ b/htdocs/compta/tva/card.php @@ -33,7 +33,9 @@ $langs->load("banks"); $langs->load("bills"); $id=GETPOST("id",'int'); -$action=GETPOST('action'); +$action=GETPOST("action","alpha"); +$refund=GETPOST("refund","int"); +if (empty($refund)) $refund=0; // Security check $socid = isset($_GET["socid"])?$_GET["socid"]:''; @@ -46,7 +48,6 @@ $tva = new Tva($db); $hookmanager->initHooks(array('taxvatcard','globalcard')); - /** * Actions */ @@ -69,7 +70,12 @@ if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel")) $tva->num_payment=GETPOST("num_payment"); $tva->datev=$datev; $tva->datep=$datep; - $tva->amount=GETPOST("amount"); + + $amount = GETPOST("amount"); + if ($refund == 1) { + $amount= -$amount; + } + $tva->amount= $amount; $tva->label=GETPOST("label"); $tva->note=GETPOST("note"); @@ -182,12 +188,46 @@ if ($id) // Formulaire saisie tva if ($action == 'create') { - print "
\n"; + print_fiche_titre($langs->trans("VAT") . ' - ' . $langs->trans("New")); + + if (! empty($conf->use_javascript_ajax)) + { + print "\n".''."\n"; + } + + print ''; print ''; print ''; - print_fiche_titre($langs->trans("NewVATPayment")); - + print '
'; + print '
'; + print $langs->trans("Type").':   '; + print '
'; + print ''; + print '   '; + print ''; + print '
'; + print "
\n"; + dol_fiche_head(); print ''; @@ -202,7 +242,12 @@ if ($action == 'create') print ''; // Label - print ''; + if ($refund == 1) { + $label = $langs->trans("VATRefund"); + } else { + $label = $langs->trans("VATPayment"); + } + print ''; // Amount print ''; diff --git a/htdocs/compta/tva/class/tva.class.php b/htdocs/compta/tva/class/tva.class.php index a938087c689..74f77a9f8ea 100644 --- a/htdocs/compta/tva/class/tva.class.php +++ b/htdocs/compta/tva/class/tva.class.php @@ -1,7 +1,7 @@ * Copyright (C) 2004-2008 Laurent Destailleur - * Copyright (C) 2011-2014 Alexandre Spangaro + * Copyright (C) 2011-2015 Alexandre Spangaro * * 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 @@ -508,7 +508,7 @@ class Tva extends CommonObject $this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label")); return -3; } - if ($this->amount < 0 || $this->amount == '') + if ($this->amount == '') { $this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Amount")); return -4; diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index b75bc8b21f1..4dd1fd33d0f 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -200,8 +200,8 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2251__+MAX_llx_menu__, 'accountancy', '', 2250__+MAX_llx_menu__, '/compta/sociales/charges.php?leftmenu=tax_social&action=create', 'MenuNewSocialContribution', 2, '', '$user->rights->tax->charges->creer', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2252__+MAX_llx_menu__, 'accountancy', '', 2250__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly', 'Payments', 2, '', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)', __HANDLER__, 'left', 2300__+MAX_llx_menu__, 'accountancy', 'tax_vat', 2200__+MAX_llx_menu__, '/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy', 'VAT', 1, 'companies', '$user->rights->tax->charges->lire', '', 0, 7, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2301__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/card.php?leftmenu=tax_vat&action=create', 'NewPayment', 2, 'companies', '$user->rights->tax->charges->creer', '', 0, 0, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2302__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/reglement.php?leftmenu=tax_vat', 'Payments', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2301__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/card.php?leftmenu=tax_vat&action=create', 'New', 2, 'companies', '$user->rights->tax->charges->creer', '', 0, 0, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2302__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/reglement.php?leftmenu=tax_vat', 'List', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2303__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/clients.php?leftmenu=tax_vat', 'ReportByCustomers', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2304__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/quadri_detail.php?leftmenu=tax_vat', 'ReportByQuarter', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__); -- Ventilation (accounting) diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 33e9a745665..d47d3bdcc7c 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -866,8 +866,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if (empty($conf->global->TAX_DISABLE_VAT_MENUS)) { $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy",$langs->trans("VAT"),1,$user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat'); - if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create",$langs->trans("NewPayment"),2,$user->rights->tax->charges->creer); - if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/reglement.php?leftmenu=tax_vat",$langs->trans("Payments"),2,$user->rights->tax->charges->lire); + if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create",$langs->trans("New"),2,$user->rights->tax->charges->creer); + if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/reglement.php?leftmenu=tax_vat",$langs->trans("List"),2,$user->rights->tax->charges->lire); if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire); if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire); global $mysoc; diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 4d6703feeac..e1c1f6eca68 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -91,6 +91,8 @@ LT1PaymentES=RE Payment LT1PaymentsES=RE Payments VATPayment=VAT Payment VATPayments=VAT Payments +VATRefund=VAT Refund +Refund=Refund SocialContributionsPayments=Social/fiscal taxes payments ShowVatPayment=Show VAT payment TotalToPay=Total to pay From 3fbab48d812c9183cba0552773f2a764eeef9597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sat, 5 Sep 2015 10:42:54 +0200 Subject: [PATCH 018/205] Created Commande::hasDelay function --- htdocs/commande/class/commande.class.php | 31 +++++++++++++++++++----- htdocs/commande/list.php | 9 ++++--- htdocs/commande/orderstoinvoice.php | 7 +++++- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index c941dfc1ff8..e3db32d59b1 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -2846,7 +2846,7 @@ class Commande extends CommonOrder $clause = " WHERE"; - $sql = "SELECT c.rowid, c.date_creation as datec, c.date_livraison as delivery_date, c.fk_statut"; + $sql = "SELECT c.rowid, c.date_creation as datec, c.date_commande, c.date_livraison as delivery_date, c.fk_statut"; $sql.= " FROM ".MAIN_DB_PREFIX."commande as c"; if (!$user->rights->societe->client->voir && !$user->societe_id) { @@ -2862,21 +2862,22 @@ class Commande extends CommonOrder $resql=$this->db->query($sql); if ($resql) { - $now=dol_now(); - $response = new WorkboardResponse(); $response->warning_delay=$conf->commande->client->warning_delay/60/60/24; $response->label=$langs->trans("OrdersToProcess"); $response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3'; $response->img=img_object($langs->trans("Orders"),"order"); + $generic_commande = new Commande($this->db); + while ($obj=$this->db->fetch_object($resql)) { - $response->nbtodo++; + $response->nbtodo++; - $date_to_test = empty($obj->delivery_date) ? $obj->datec : $obj->delivery_date; + $generic_commande->statut = $obj->fk_statut; + $generic_commande->date_livraison = $obj->delivery_date; - if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->client->warning_delay)) { + if ($generic_commande->hasDelay()) { $response->nbtodolate++; } } @@ -3341,6 +3342,24 @@ class Commande extends CommonOrder return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + + /** + * Is the customer order delayed? + * + * @return bool + */ + public function hasDelay() + { + global $conf; + + if (!($this->statut > Commande::STATUS_DRAFT) && ($this->statut < Commande::STATUS_CLOSED)) { + return false; + } + + $now = dol_now(); + + return max($this->date_commande, $this->date_livraison) < ($now - $conf->commande->client->warning_delay); + } } diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index 6af44d4a7d6..1c2f34c0931 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -357,9 +357,11 @@ if ($resql) $var=!$var; print ''; print '
'.$langs->trans("Label").'trans("VATPayment")).'">
'.$langs->trans("Label").'
'.$langs->trans("Amount").'
'; - $generic_commande->id=$objp->rowid; $generic_commande->ref=$objp->ref; + $generic_commande->statut = $objp->fk_statut; + $generic_commande->date_commande = $db->jdate($objp->date_commande); + $generic_commande->date_livraison = $db->jdate($objp->date_delivery); $generic_commande->ref_client = $objp->ref_client; $generic_commande->total_ht = $objp->total_ht; $generic_commande->total_tva = $objp->total_tva; @@ -444,8 +446,9 @@ if ($resql) // warning late icon print ''; - if (($objp->fk_statut > 0) && ($objp->fk_statut < 3) && max($db->jdate($objp->date_commande),$db->jdate($objp->date_delivery)) < ($now - $conf->commande->client->warning_delay)) - print img_picto($langs->trans("Late"),"warning"); + if ($generic_commande->hasDelay()) { + print img_picto($langs->trans("Late"), "warning"); + } if(!empty($objp->note_private)) { print ' '; diff --git a/htdocs/commande/orderstoinvoice.php b/htdocs/commande/orderstoinvoice.php index e75a9dda73b..6003a41cfef 100644 --- a/htdocs/commande/orderstoinvoice.php +++ b/htdocs/commande/orderstoinvoice.php @@ -633,6 +633,9 @@ if (($action != 'create' && $action != 'add') && !$error) $generic_commande->id=$objp->rowid; $generic_commande->ref=$objp->ref; + $generic_commande->statut = $objp->fk_statut; + $generic_commande->date_commande = $db->jdate($objp->date_commande); + $generic_commande->date_livraison = $db->jdate($objp->date_livraison); print ''; print ''; print ''; print ' +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + $varprop.="print '';\n"; + } +} +$targetcontent=preg_replace('/'.preg_quote("print '';",'/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote("print '';",'/').'/', '', $targetcontent); + + // Build file $fp=fopen($outfile,"w"); diff --git a/dev/skeletons/skeleton_page.php b/dev/skeletons/skeleton_page.php index a74088b3702..2c4fde30ca5 100644 --- a/dev/skeletons/skeleton_page.php +++ b/dev/skeletons/skeleton_page.php @@ -44,7 +44,7 @@ if (! $res && file_exists("../../../../dolibarr/htdocs/main.inc.php")) $res=@inc if (! $res) die("Include of main fails"); // Change this following line to use the correct relative path from htdocs include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'); -dol_include_once('/module/class/skeleton_class.class.php'); +dol_include_once('/mymodule/class/skeleton_class.class.php'); // Load traductions files requiredby by page $langs->load("companies"); @@ -56,6 +56,9 @@ $action = GETPOST('action','alpha'); $backtopage = GETPOST('backtopage'); $myparam = GETPOST('myparam','alpha'); +$search_field1=GETPOST("search_field1"); +$search_field2=GETPOST("search_field2"); + // Protection if external user if ($user->societe_id > 0) { @@ -95,7 +98,7 @@ if (empty($reshook)) { if (GETPOST('cancel')) { - $urltogo=$backtopage?$backtopage:dol_buildpath('/buildingmanagement/list.php',1); + $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1); header("Location: ".$urltogo); exit; } @@ -227,7 +230,10 @@ jQuery(document).ready(function() { // Part to show a list if ($action == 'list' || (empty($id) && $action != 'create')) { - $sql = "SELECT"; + // Put here content of your page + print load_fiche_titre('PageTitle'); + + $sql = "SELECT"; $sql.= " t.rowid,"; $sql.= " t.field1,"; $sql.= " t.field2"; @@ -238,7 +244,10 @@ if ($action == 'list' || (empty($id) && $action != 'create')) $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."mytable as t"; - $sql.= " WHERE field3 = 'xxx'"; + $sql.= " WHERE 1 = 1"; + if ($search_field1) $sql.= natural_search("field1",$search_field1); + if ($search_field2) $sql.= natural_search("field2",$search_field2); + // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook @@ -270,12 +279,8 @@ if ($action == 'list' || (empty($id) && $action != 'create')) // Fields title search print ''; - print ''; - print ''; + print ''; + print ''; $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; @@ -295,11 +300,8 @@ if ($action == 'list' || (empty($id) && $action != 'create')) { // You can use here results print ''; - print ''; + print ''; + print ''; $parameters=array('obj' => $obj); $reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; From 355fcc78cf2fae81ebcc8aea7a86fadea9f803be Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Tue, 8 Sep 2015 20:48:31 +0200 Subject: [PATCH 040/205] Fix #3475 RemiseCheque: Undefined variable $date --- htdocs/compta/paiement/cheque/class/remisecheque.class.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/compta/paiement/cheque/class/remisecheque.class.php b/htdocs/compta/paiement/cheque/class/remisecheque.class.php index 917c88e0743..f469b48fdde 100644 --- a/htdocs/compta/paiement/cheque/class/remisecheque.class.php +++ b/htdocs/compta/paiement/cheque/class/remisecheque.class.php @@ -2,7 +2,7 @@ /* Copyright (C) 2006 Rodolphe Quiedeville * Copyright (C) 2007-2011 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin - * Copyright (C) 2011 Juanjo Menent + * Copyright (C) 2011-2015 Juanjo Menent * * 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 @@ -744,7 +744,6 @@ class RemiseCheque extends CommonObject $resql=$this->db->query($sql); if ($resql) { - $this->date_bordereau = $date; return 1; } else From 3c91b8c8900829ea1c0be6111c46be290d79d29c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Sep 2015 12:11:57 +0200 Subject: [PATCH 041/205] Force to select "use personalized value" to select a personalized screen option. --- htdocs/core/lib/usergroups.lib.php | 142 +++++++++++++++++++---------- htdocs/user/param_ihm.php | 68 +++++++++++--- 2 files changed, 150 insertions(+), 60 deletions(-) diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php index 5dc17962e14..f5f8df18ba1 100644 --- a/htdocs/core/lib/usergroups.lib.php +++ b/htdocs/core/lib/usergroups.lib.php @@ -277,6 +277,10 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) if (empty($foruserprofile)) $selected_theme=$conf->global->MAIN_THEME; else $selected_theme=((is_object($fuser) && ! empty($fuser->conf->MAIN_THEME))?$fuser->conf->MAIN_THEME:''); + $hoverdisabled=''; + if (empty($foruserprofile)) $hoverdisabled=(isset($conf->global->THEME_ELDY_USE_HOVER) && $conf->global->THEME_ELDY_USE_HOVER == '0'); + else $hoverdisabled=(is_object($fuser)?(empty($fuser->conf->THEME_ELDY_USE_HOVER) || $fuser->conf->THEME_ELDY_USE_HOVER == '0'):''); + $colspan=2; if ($foruserprofile) $colspan=4; @@ -295,7 +299,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; } @@ -359,11 +363,11 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) print '
'; if ($subdir == $selected_theme) { - print ''.$subdir.''; + print ''.$subdir.''; } else { - print ' '.$subdir; + print ' '.$subdir; } print ''; @@ -378,57 +382,101 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) print ''; - if (! $foruserprofile) + // Use Hover + $var=!$var; + if ($foruserprofile) + { + /* Must first change option to choose color of highlight insteado of yes or no. + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + */ + } + else + { + print ''; + print ''; + print ''; + print ''; + } + + // TopMenuBackgroundColor + if ($foruserprofile) + { + /*$var=!$var; + print ''; + print ''; + print ''; + print ''; + print '';*/ + } + else { $var=!$var; print ''; - print ''; - $hoverdisabled=(isset($conf->global->THEME_ELDY_USE_HOVER) && $conf->global->THEME_ELDY_USE_HOVER == '0'); - print ''; + print ''; + } + + // BackgroundTableTitleColor + if ($foruserprofile) + { + + + } + else + { + $var=!$var; + print ''; + print ''; + print ''; - print ''; - - //if ($conf->theme == 'eldy') - //{ - // TopMenuBackgroundColor - $var=!$var; - print ''; - print ''; - print ''; - - // BackgroundTableTitleColor - $var=!$var; - print ''; - print ''; - print ''; - //} print ''; } - + print '
'; @@ -640,7 +643,9 @@ if (($action != 'create' && $action != 'add') && !$error) print ''; - if (($objp->fk_statut > 0) && ($objp->fk_statut < 3) && $db->jdate($objp->date_valid) < ($now - $conf->commande->client->warning_delay)) print img_picto($langs->trans("Late"),"warning"); + if ($generic_commande->hasDelay()) { + print img_picto($langs->trans("Late"),"warning"); + } print ''; From 3c5159f497e2e470645ee69d7ddd5dc27e9e5144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sat, 5 Sep 2015 10:56:13 +0200 Subject: [PATCH 019/205] Created Facture::hasDelay function --- htdocs/compta/facture.php | 3 ++- htdocs/compta/facture/class/facture.class.php | 25 ++++++++++++++++++- htdocs/compta/facture/list.php | 4 ++- htdocs/compta/facture/mergepdftool.php | 6 ++++- htdocs/compta/facture/prelevement.php | 4 ++- htdocs/compta/index.php | 12 +++++++-- htdocs/core/boxes/box_factures.php | 8 +++++- htdocs/core/boxes/box_factures_imp.php | 6 ++++- 8 files changed, 59 insertions(+), 9 deletions(-) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 7f5b33ee73a..973b54470c0 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -3222,8 +3222,9 @@ else if ($id > 0 || ! empty($ref)) $form->form_date($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->date_lim_reglement, 'paymentterm'); } else { print dol_print_date($object->date_lim_reglement, 'daytext'); - if ($object->date_lim_reglement < ($now - $conf->facture->client->warning_delay) && ! $object->paye && $object->statut == 1 && ! isset($object->am)) + if ($object->hasDelay()) { print img_warning($langs->trans('Late')); + } } } else { print ' '; diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index dbbc1d88212..5533f70a919 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -3236,11 +3236,15 @@ class Facture extends CommonInvoice $response->url=DOL_URL_ROOT.'/compta/facture/list.php?search_status=1'; $response->img=img_object($langs->trans("Bills"),"bill"); + $generic_facture = new Facture($this->db); + while ($obj=$this->db->fetch_object($resql)) { + $generic_facture->date_lim_reglement = $this->db->jdate($obj->datefin); + $response->nbtodo++; - if ($this->db->jdate($obj->datefin) < ($now - $conf->facture->client->warning_delay)) { + if ($generic_facture->hasDelay()) { $response->nbtodolate++; } } @@ -3697,6 +3701,25 @@ class Facture extends CommonInvoice return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + + /** + * Is the customer invoice delayed? + * + * @return bool + */ + public function hasDelay() + { + global $conf; + + $now = dol_now(); + + //Paid invoices have status STATUS_CLOSED + if (!$this->statut != Facture::STATUS_VALIDATED) { + return false; + } + + return $this->date_lim_reglement < ($now - $conf->facture->client->warning_delay); + } } /** diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index faefe63d9af..3aefeeefd36 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -378,6 +378,8 @@ if ($resql) $facturestatic->id=$objp->facid; $facturestatic->ref=$objp->facnumber; $facturestatic->type=$objp->type; + $facturestatic->statut = $objp->fk_statut; + $facturestatic->date_lim_reglement = $db->jdate($objp->datelimite); $notetoshow=dol_string_nohtmltag(($user->societe_id>0?$objp->note_public:$objp->note),1); $paiement = $facturestatic->getSommePaiement(); @@ -417,7 +419,7 @@ if ($resql) // Date limit print ''.dol_print_date($datelimit,'day'); - if ($datelimit < ($now - $conf->facture->client->warning_delay) && ! $objp->paye && $objp->fk_statut == 1 && ! $paiement) + if ($facturestatic->hasDelay()) { print img_warning($langs->trans('Late')); } diff --git a/htdocs/compta/facture/mergepdftool.php b/htdocs/compta/facture/mergepdftool.php index d29f237c331..4c8d7c7eba8 100644 --- a/htdocs/compta/facture/mergepdftool.php +++ b/htdocs/compta/facture/mergepdftool.php @@ -734,6 +734,8 @@ if ($resql) $facturestatic->id=$objp->facid; $facturestatic->ref=$objp->facnumber; $facturestatic->type=$objp->type; + $facturestatic->statut=$objp->fk_statut; + $facturestatic->date_lim_reglement= $db->jdate($objp->datelimite); print ''; @@ -744,7 +746,9 @@ if ($resql) // Warning picto print ''; // PDF Picto diff --git a/htdocs/compta/facture/prelevement.php b/htdocs/compta/facture/prelevement.php index be78b422fe6..78a93d7da0d 100644 --- a/htdocs/compta/facture/prelevement.php +++ b/htdocs/compta/facture/prelevement.php @@ -356,7 +356,9 @@ if ($object->id > 0) else { print dol_print_date($object->date_lim_reglement,'daytext'); - if ($object->date_lim_reglement < ($now - $conf->facture->client->warning_delay) && ! $object->paye && $object->statut == Facture::STATUS_VALIDATED && ! isset($object->am)) print img_warning($langs->trans('Late')); + if ($object->hasDelay()) { + print img_warning($langs->trans('Late')); + } } } else diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index 11296bda93e..6a1f3b15028 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -358,11 +358,15 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) $facturestatic->total_ht=$obj->total_ht; $facturestatic->total_tva=$obj->total_tva; $facturestatic->total_ttc=$obj->total_ttc; + $facturestatic->statut = $obj->fk_statut; + $facturestatic->date_lim_reglement = $db->jdate($obj->datelimite); $facturestatic->type=$obj->type; print $facturestatic->getNomUrl(1,''); print ''; print ''; print ''; print ''; print ''; } else diff --git a/htdocs/societe/societecontact.php b/htdocs/societe/societecontact.php index 928424b1d8b..4d2382e6eee 100644 --- a/htdocs/societe/societecontact.php +++ b/htdocs/societe/societecontact.php @@ -246,6 +246,8 @@ if ($id > 0 || ! empty($ref)) $memberstatic->ref=$objp->rowid; $memberstatic->lastname=$objp->lastname; $memberstatic->firstname=$objp->firstname; + $memberstatic->statut=$objp->statut; + $memberstatic->datefin=$db->jdate($objp->datefin); $companyname=$objp->company; @@ -290,7 +292,9 @@ if ($id > 0 || ! empty($ref)) { print ''; } else From 97f91d0ef962ce82d035dcb2306f73546997c12a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Mon, 31 Aug 2015 17:42:08 +0200 Subject: [PATCH 021/205] Fix #3440 Only search core modules in main path Removed duplicated code and used common dolGetModulesDirs() function --- htdocs/admin/modules.php | 39 ++++----------- htdocs/core/lib/admin.lib.php | 79 +++--------------------------- htdocs/core/lib/functions2.lib.php | 11 +++-- htdocs/public/demo/index.php | 31 +++--------- 4 files changed, 31 insertions(+), 129 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 398dd8036fb..cf974990f01 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -1,11 +1,12 @@ - * Copyright (C) 2003 Jean-Louis Bergamo - * Copyright (C) 2004-2013 Laurent Destailleur - * Copyright (C) 2004 Eric Seigne - * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2011 Juanjo Menent - * Copyright (C) 2015 Jean-François Ferry +/* Copyright (C) 2003-2007 Rodolphe Quiedeville + * Copyright (C) 2003 Jean-Louis Bergamo + * Copyright (C) 2004-2013 Laurent Destailleur + * Copyright (C) 2004 Eric Seigne + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2011 Juanjo Menent + * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -28,6 +29,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php'; $langs->load("errors"); $langs->load("admin"); @@ -76,28 +78,7 @@ llxHeader('',$langs->trans("Setup"),$help_url); // Search modules dirs -$modulesdir = array(); -foreach ($conf->file->dol_document_root as $type => $dirroot) -{ - $modulesdir[$dirroot . '/core/modules/'] = $dirroot . '/core/modules/'; - - $handle=@opendir($dirroot); - if (is_resource($handle)) - { - while (($file = readdir($handle))!==false) - { - if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') - { - if (is_dir($dirroot . '/' . $file . '/core/modules/')) - { - $modulesdir[$dirroot . '/' . $file . '/core/modules/'] = $dirroot . '/' . $file . '/core/modules/'; - } - } - } - closedir($handle); - } -} -//var_dump($modulesdir); +$modulesdir = dolGetModulesDirs(); $filename = array(); diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index 7469777fa89..b24fce76582 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -1,7 +1,8 @@ - * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2012 J. Fernando Lagrange +/* Copyright (C) 2008-2011 Laurent Destailleur + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2012 J. Fernando Lagrange + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -23,6 +24,7 @@ * \brief Library of admin functions */ +require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php'; /** * Renvoi une version en chaine depuis une version en tableau @@ -676,29 +678,7 @@ function activateModule($value,$withdeps=1) $ret=''; $modName = $value; $modFile = $modName . ".class.php"; - - // Loop on each directory to fill $modulesdir - $modulesdir = array(); - foreach ($conf->file->dol_document_root as $type => $dirroot) - { - $modulesdir[] = $dirroot."/core/modules/"; - - $handle=@opendir(dol_osencode($dirroot)); - if (is_resource($handle)) - { - while (($file = readdir($handle))!==false) - { - if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') - { - if (is_dir($dirroot . '/' . $file . '/core/modules/')) - { - $modulesdir[] = $dirroot . '/' . $file . '/core/modules/'; - } - } - } - closedir($handle); - } - } + $modulesdir = dolGetModulesDirs(); // Loop on each directory $found=false; @@ -795,29 +775,7 @@ function unActivateModule($value, $requiredby=1) $ret=''; $modName = $value; $modFile = $modName . ".class.php"; - - // Loop on each directory to fill $modulesdir - $modulesdir = array(); - foreach ($conf->file->dol_document_root as $type => $dirroot) - { - $modulesdir[] = $dirroot."/core/modules/"; - - $handle=@opendir(dol_osencode($dirroot)); - if (is_resource($handle)) - { - while (($file = readdir($handle))!==false) - { - if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') - { - if (is_dir($dirroot . '/' . $file . '/core/modules/')) - { - $modulesdir[] = $dirroot . '/' . $file . '/core/modules/'; - } - } - } - closedir($handle); - } - } + $modulesdir = dolGetModulesDirs(); // Loop on each directory $found=false; @@ -889,31 +847,10 @@ function complete_dictionary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsql $orders = array(); $categ = array(); $dirmod = array(); - $modulesdir = array(); + $modulesdir = dolGetModulesDirs(); $i = 0; // is a sequencer of modules found $j = 0; // j is module number. Automatically affected if module number not defined. - foreach ($conf->file->dol_document_root as $type => $dirroot) - { - $modulesdir[$dirroot . '/core/modules/'] = $dirroot . '/core/modules/'; - - $handle=@opendir($dirroot); - if (is_resource($handle)) - { - while (($file = readdir($handle))!==false) - { - if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') - { - if (is_dir($dirroot . '/' . $file . '/core/modules/')) - { - $modulesdir[$dirroot . '/' . $file . '/core/modules/'] = $dirroot . '/' . $file . '/core/modules/'; - } - } - } - closedir($handle); - } - } - foreach ($modulesdir as $dir) { // Load modules attributes in arrays (name, numero, orders) from dir directory diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 9c77729ac5a..651e4ea54ac 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -1,9 +1,10 @@ - * Copyright (C) 2008-2012 Regis Houssin - * Copyright (C) 2008 Raphael Bertrand (Resultic) +/* Copyright (C) 2008-2011 Laurent Destailleur + * Copyright (C) 2008-2012 Regis Houssin + * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2014 Marcos García * Copyright (C) 2015 Ferran Marcet + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -104,7 +105,9 @@ function dolGetModulesDirs($subdir='') foreach ($conf->file->dol_document_root as $type => $dirroot) { // Default core/modules dir - $modulesdir[$dirroot . '/core/modules'.$subdir.'/'] = $dirroot . '/core/modules'.$subdir.'/'; + if ($type === 'main') { + $modulesdir[$dirroot . '/core/modules' . $subdir . '/'] = $dirroot . '/core/modules' . $subdir . '/'; + } // Scan dir from external modules $handle=@opendir($dirroot); diff --git a/htdocs/public/demo/index.php b/htdocs/public/demo/index.php index 4b0c0526174..8fc59b818ae 100644 --- a/htdocs/public/demo/index.php +++ b/htdocs/public/demo/index.php @@ -1,7 +1,8 @@ - * Copyright (C) 2006-2013 Laurent Destailleur - * Copyright (C) 2010 Regis Houssin +/* Copyright (C) 2001-2002 Rodolphe Quiedeville + * Copyright (C) 2006-2013 Laurent Destailleur + * Copyright (C) 2010 Regis Houssin + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -28,6 +29,7 @@ define("NOLOGIN",1); // This means this output page does not require to be logge define("NOCSRFCHECK",1); // We accept to go on this page from external web site. require '../../main.inc.php'; +require_once '../../core/lib/functions2.lib.php'; $langs->load("main"); $langs->load("install"); @@ -99,28 +101,7 @@ $dirlist=$conf->file->dol_document_root; // Search modules dirs -$modulesdir = array(); -foreach ($conf->file->dol_document_root as $type => $dirroot) -{ - $modulesdir[$dirroot . '/core/modules/'] = $dirroot . '/core/modules/'; - - $handle=@opendir($dirroot); - if (is_resource($handle)) - { - while (($file = readdir($handle))!==false) - { - if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') - { - if (is_dir($dirroot . '/' . $file . '/core/modules/')) - { - $modulesdir[$dirroot . '/' . $file . '/core/modules/'] = $dirroot . '/' . $file . '/core/modules/'; - } - } - } - closedir($handle); - } -} -//var_dump($modulesdir); +$modulesdir = dolGetModulesDirs(); $filename = array(); From 0a9f4a41f30e913811ae2a45379f73d1d5250ce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Sat, 5 Sep 2015 12:23:49 +0200 Subject: [PATCH 022/205] Qual: Removed dead code --- htdocs/core/lib/admin.lib.php | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index b24fce76582..4e49041e861 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -842,11 +842,6 @@ function complete_dictionary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsql global $db, $modules, $conf, $langs; // Search modules - $filename = array(); - $modules = array(); - $orders = array(); - $categ = array(); - $dirmod = array(); $modulesdir = dolGetModulesDirs(); $i = 0; // is a sequencer of modules found $j = 0; // j is module number. Automatically affected if module number not defined. @@ -900,14 +895,6 @@ function complete_dictionary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsql } } - $modules[$i] = $objMod; - $filename[$i]= $modName; - $orders[$i] = $objMod->family."_".$j; // Tri par famille puis numero module - //print "x".$modName." ".$orders[$i]."\n
"; - if (isset($categ[$objMod->special])) $categ[$objMod->special]++; // Array of all different modules categories - else $categ[$objMod->special]=1; - $dirmod[$i] = $dirroot; - // Complete arrays //&$tabname,&$tablib,&$tabsql,&$tabsqlsort,&$tabfield,&$tabfieldvalue,&$tabfieldinsert,&$tabrowid,&$tabcond if (empty($objMod->dictionaries) && ! empty($objMod->dictionnaries)) $objMod->dictionaries=$objMod->dictionnaries; // For backward compatibility From 8076ea85eab97f6c27859de0ed0b28f7ab8faf50 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Sep 2015 20:07:17 +0200 Subject: [PATCH 023/205] 3.6.4 was packaged --- htdocs/filefunc.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index 73f3ae3e77a..0e23287ac31 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -29,7 +29,7 @@ * \brief File that include conf.php file and commons lib like functions.lib.php */ -if (! defined('DOL_VERSION')) define('DOL_VERSION','3.6.4'); +if (! defined('DOL_VERSION')) define('DOL_VERSION','3.6.5'); if (! defined('EURO')) define('EURO',chr(128)); // Define syslog constants From b268ccf064b453974ea197a013e3b46f7ee2b809 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 6 Sep 2015 04:52:03 +0200 Subject: [PATCH 024/205] Fix #3455 In advanced accounting module, button transfer to general ledger don't work --- .../accountancy/class/bookkeeping.class.php | 58 +++++++++++++++---- htdocs/accountancy/journal/bankjournal.php | 2 + .../accountancy/journal/purchasesjournal.php | 3 + htdocs/accountancy/journal/sellsjournal.php | 3 + 4 files changed, 54 insertions(+), 12 deletions(-) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 9dcba514ae1..2e6c300d004 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2014 Olivier Geffroy - * Copyright (C) 2013-2014 Alexandre Spangaro + * Copyright (C) 2013-2015 Alexandre Spangaro * Copyright (C) 2013-2014 Florian Henry * * This program is free software; you can redistribute it and/or modify @@ -225,6 +225,8 @@ class BookKeeping */ function create($user='') { + global $conf; + $this->piece_num = 0; // first check if line not yet in bookkeeping @@ -278,13 +280,45 @@ class BookKeeping $this->date_create = $now; } - $sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_bookkeeping (doc_date, "; - $sql .= "doc_type, doc_ref,fk_doc,fk_docdet,code_tiers,numero_compte,label_compte,"; - $sql .= "debit,credit,montant,sens,fk_user_author,import_key,code_journal,piece_num)"; - $sql .= " VALUES ('" . $this->doc_date . "','" . $this->doc_type . "','" . $this->doc_ref . "'," . $this->fk_doc . ","; - $sql .= $this->fk_docdet . ",'" . $this->code_tiers . "','" . $this->numero_compte . "','" . $this->db->escape($this->label_compte) . "',"; - $sql .= $this->debit . "," . $this->credit . "," . $this->montant . ",'" . $this->sens . "'," . $user->id . ", '"; - $sql .= $this->date_create . "','" . $this->code_journal . "'," . $this->piece_num . ")"; + $sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_bookkeeping ("; + + $sql .= "doc_date"; + $sql .= ", doc_type"; + $sql .= ", doc_ref"; + $sql .= ", fk_doc"; + $sql .= ", fk_docdet"; + $sql .= ", code_tiers"; + $sql .= ", numero_compte"; + $sql .= ", label_compte"; + $sql .= ", debit"; + $sql .= ", credit"; + $sql .= ", montant"; + $sql .= ", sens"; + $sql .= ", fk_user_author"; + $sql .= ", import_key"; + $sql .= ", code_journal"; + $sql .= ", piece_num"; + + $sql .= ") VALUES ("; + + $sql .= "'" . $this->doc_date . "'"; + $sql .= ",'" . $this->doc_type . "'"; + $sql .= ",'" . $this->doc_ref . "'"; + $sql .= "," . $this->fk_doc; + $sql .= "," . $this->fk_docdet; + $sql .= ",'" . $this->code_tiers . "'"; + $sql .= ",'" . $this->numero_compte . "'"; + $sql .= ",'" . $this->db->escape($this->label_compte) . "'"; + $sql .= "," . $this->debit; + $sql .= "," . $this->credit; + $sql .= "," . $this->montant; + $sql .= ",'" . $this->sens . "'"; + $sql .= ",'" . $this->fk_user_author."'"; + $sql .= ",'" . $this->date_create . "'"; + $sql .= ",'" . $this->code_journal . "'"; + $sql .= "," . $this->piece_num; + + $sql .= ")"; dol_syslog(get_class($this) . ":: create sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); @@ -296,19 +330,19 @@ class BookKeeping $result = 0; } else { $result = - 2; - dol_syslog("BookKeeping::Create Erreur $result lecture ID"); + dol_syslog("BookKeeping::Create Error $result lecture ID"); } } else { $result = - 1; - dol_syslog("BookKeeping::Create Erreur $result INSERT Mysql"); + dol_syslog("BookKeeping::Create Error $result INSERT Mysql"); } } else { $result = - 3; - dol_syslog("BookKeeping::Create Erreur $result SELECT Mysql"); + dol_syslog("BookKeeping::Create Error $result SELECT Mysql"); } } else { $result = - 5; - dol_syslog("BookKeeping::Create Erreur $result SELECT Mysql"); + dol_syslog("BookKeeping::Create Error $result SELECT Mysql"); } return $result; diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 8125f6ef14d..ac6317d9d1f 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -286,6 +286,7 @@ if ($action == 'writeBookKeeping') $bookkeeping->debit = ($mt >= 0 ? $mt : 0); $bookkeeping->credit = ($mt < 0 ? - $mt : 0); $bookkeeping->code_journal = $conf->global->ACCOUNTING_BANK_JOURNAL; + $bookkeeping->fk_user_author = $user->id; if ($tabtype[$key] == 'payment') { @@ -336,6 +337,7 @@ if ($action == 'writeBookKeeping') $bookkeeping->debit = ($mt < 0 ? - $mt : 0); $bookkeeping->credit = ($mt >= 0) ? $mt : 0; $bookkeeping->code_journal = $conf->global->ACCOUNTING_BANK_JOURNAL; + $bookkeeping->fk_user_author = $user->id; if ($tabtype[$key] == 'sc') { $bookkeeping->code_tiers = ''; diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 8b9b7929db8..705434365fa 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -177,6 +177,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->debit = ($mt <= 0) ? $mt : 0; $bookkeeping->credit = ($mt > 0) ? $mt : 0; $bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL; + $bookkeeping->fk_user_author = $user->id; $bookkeeping->create(); } @@ -202,6 +203,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->debit = ($mt > 0) ? $mt : 0; $bookkeeping->credit = ($mt <= 0) ? $mt : 0; $bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL; + $bookkeeping->fk_user_author = $user->id; $bookkeeping->create(); } @@ -228,6 +230,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->debit = ($mt > 0) ? $mt : 0; $bookkeeping->credit = ($mt <= 0) ? $mt : 0; $bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL; + $bookkeeping->fk_user_author = $user->id; $bookkeeping->create(); } diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index d80e8f36562..1dd6975ea34 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -188,6 +188,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->debit = ($mt >= 0) ? $mt : 0; $bookkeeping->credit = ($mt < 0) ? $mt : 0; $bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL; + $bookkeeping->fk_user_author = $user->id; $bookkeeping->create(); } @@ -213,6 +214,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->debit = ($mt < 0) ? $mt : 0; $bookkeeping->credit = ($mt >= 0) ? $mt : 0; $bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL; + $bookkeeping->fk_user_author = $user->id; $bookkeeping->create(); } @@ -238,6 +240,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->debit = ($mt < 0) ? $mt : 0; $bookkeeping->credit = ($mt >= 0) ? $mt : 0; $bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL; + $bookkeeping->fk_user_author = $user->id; $bookkeeping->create(); } From a4a72d64c033a775d031628c500d503d0f436fe5 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 6 Sep 2015 06:43:40 +0200 Subject: [PATCH 025/205] New: Accountancy Add message when general ledger is witten --- htdocs/accountancy/journal/bankjournal.php | 2 +- .../accountancy/journal/purchasesjournal.php | 23 ++++++++++++++++--- htdocs/accountancy/journal/sellsjournal.php | 23 ++++++++++++++++--- htdocs/langs/en_US/accountancy.lang | 3 ++- 4 files changed, 43 insertions(+), 8 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index ac6317d9d1f..c97cde97b14 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -402,7 +402,7 @@ if ($action == 'writeBookKeeping') } if (empty($error)) { - setEventMessage($langs->trans('Success'), 'mesgs'); + setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs'); } } // Export diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 705434365fa..14e77e20f3f 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -157,6 +157,7 @@ if ($result) { // Bookkeeping Write if ($action == 'writebookkeeping') { $now = dol_now(); + $error = 0; foreach ( $tabfac as $key => $val ) { foreach ( $tabttc[$key] as $k => $mt ) { @@ -179,7 +180,11 @@ if ($action == 'writebookkeeping') { $bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL; $bookkeeping->fk_user_author = $user->id; - $bookkeeping->create(); + $result = $bookkeeping->create(); + if ($result < 0) { + $error ++; + setEventMessage($object->errors, 'errors'); + } } // Product / Service @@ -205,7 +210,11 @@ if ($action == 'writebookkeeping') { $bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL; $bookkeeping->fk_user_author = $user->id; - $bookkeeping->create(); + $result = $bookkeeping->create(); + if ($result < 0) { + $error ++; + setEventMessage($object->errors, 'errors'); + } } } } @@ -232,10 +241,18 @@ if ($action == 'writebookkeeping') { $bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL; $bookkeeping->fk_user_author = $user->id; - $bookkeeping->create(); + $result = $bookkeeping->create(); + if ($result < 0) { + $error ++; + setEventMessage($object->errors, 'errors'); + } } } } + + if (empty($error)) { + setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs'); + } } diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 1dd6975ea34..9eb6d67f56b 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -170,6 +170,7 @@ if ($result) { // Bookkeeping Write if ($action == 'writebookkeeping') { $now = dol_now(); + $error = 0; foreach ( $tabfac as $key => $val ) { foreach ( $tabttc[$key] as $k => $mt ) { @@ -190,7 +191,11 @@ if ($action == 'writebookkeeping') { $bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL; $bookkeeping->fk_user_author = $user->id; - $bookkeeping->create(); + $result = $bookkeeping->create(); + if ($result < 0) { + $error ++; + setEventMessage($object->errors, 'errors'); + } } // Product / Service @@ -216,7 +221,11 @@ if ($action == 'writebookkeeping') { $bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL; $bookkeeping->fk_user_author = $user->id; - $bookkeeping->create(); + $result = $bookkeeping->create(); + if ($result < 0) { + $error ++; + setEventMessage($object->errors, 'errors'); + } } } } @@ -242,10 +251,18 @@ if ($action == 'writebookkeeping') { $bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL; $bookkeeping->fk_user_author = $user->id; - $bookkeeping->create(); + $result = $bookkeeping->create(); + if ($result < 0) { + $error ++; + setEventMessage($object->errors, 'errors'); + } } } } + + if (empty($error)) { + setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs'); + } } // Export if ($action == 'export_csv') { diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index b09dab7f764..57ce6b09201 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -157,4 +157,5 @@ ValidateHistory=Validate Automatically ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -FicheVentilation=Breakdown card \ No newline at end of file +FicheVentilation=Breakdown card +GeneralLedgerIsWritten=Operations are written in the general ledger \ No newline at end of file From f1ea19e09b9e2dc9540ac2407ec1371efb485b63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 6 Sep 2015 18:26:48 +0200 Subject: [PATCH 026/205] Created ActionComm:hasDelay function --- htdocs/comm/action/class/actioncomm.class.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index bc5bf9da9e3..44ac0425de7 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -883,6 +883,7 @@ class ActionComm extends CommonObject if ($resql) { $now = dol_now(); + $agenda_static = new ActionComm($this->db); $response = new WorkboardResponse(); $response->warning_delay = $conf->actions->warning_delay/60/60/24; @@ -895,7 +896,9 @@ class ActionComm extends CommonObject { $response->nbtodo++; - if (isset($obj->dp) && $this->db->jdate($obj->dp) < ($now - $conf->actions->warning_delay)) { + $agenda_static->datep = $this->db->jdate($obj->dp); + + if ($agenda_static->hasDelay()) { $response->nbtodolate++; } } @@ -1360,5 +1363,19 @@ class ActionComm extends CommonObject return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + /** + * Is the action delayed? + * + * @return bool + */ + public function hasDelay() + { + global $conf; + + $now = dol_now(); + + return $this->datep && ($this->datep < ($now - $conf->actions->warning_delay)); + } + } From 47e62f22709faefab8a3862850081a63291b0aa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 6 Sep 2015 18:47:26 +0200 Subject: [PATCH 027/205] Created FactureFournisseur::hasDelay function --- htdocs/core/boxes/box_factures_fourn.php | 8 +++-- htdocs/core/boxes/box_factures_fourn_imp.php | 9 +++-- .../fourn/class/fournisseur.facture.class.php | 35 +++++++++++++++++-- htdocs/fourn/facture/card.php | 4 ++- htdocs/fourn/facture/impayees.php | 7 +++- htdocs/fourn/facture/list.php | 8 ++++- 6 files changed, 61 insertions(+), 10 deletions(-) diff --git a/htdocs/core/boxes/box_factures_fourn.php b/htdocs/core/boxes/box_factures_fourn.php index 2f31fa61f78..7c90bb69683 100644 --- a/htdocs/core/boxes/box_factures_fourn.php +++ b/htdocs/core/boxes/box_factures_fourn.php @@ -93,7 +93,6 @@ class box_factures_fourn extends ModeleBoxes if ($result) { $num = $db->num_rows($result); - $now=dol_now(); $line = 0; $l_due_date = $langs->trans('Late').' ('.$langs->trans('DateEcheance').': %s)'; @@ -108,6 +107,8 @@ class box_factures_fourn extends ModeleBoxes $facturestatic->total_ht = $objp->total_ht; $facturestatic->total_tva = $objp->total_tva; $facturestatic->total_ttc = $objp->total_ttc; + $facturestatic->date_echeance = $datelimite; + $facturestatic->statut = $objp->fk_statut; $thirdpartytmp->id = $objp->socid; $thirdpartytmp->name = $objp->name; $thirdpartytmp->fournisseur = 1; @@ -115,7 +116,10 @@ class box_factures_fourn extends ModeleBoxes $thirdpartytmp->logo = $objp->logo; $late = ''; - if ($objp->paye == 0 && $datelimite && $datelimite < ($now - $conf->facture->fournisseur->warning_delay)) $late=img_warning(sprintf($l_due_date, dol_print_date($datelimite,'day'))); + + if ($facturestatic->hasDelay()) { + $late=img_warning(sprintf($l_due_date, dol_print_date($datelimite,'day'))); + } $this->info_box_contents[$line][] = array( 'td' => 'align="left"', diff --git a/htdocs/core/boxes/box_factures_fourn_imp.php b/htdocs/core/boxes/box_factures_fourn_imp.php index ecea4a27fd1..9bf302b2e18 100644 --- a/htdocs/core/boxes/box_factures_fourn_imp.php +++ b/htdocs/core/boxes/box_factures_fourn_imp.php @@ -86,11 +86,12 @@ class box_factures_fourn_imp extends ModeleBoxes if ($result) { $num = $db->num_rows($result); - $now=dol_now(); $line = 0; $l_due_date = $langs->trans('Late').' ('.$langs->trans('DateEcheance').': %s)'; + $facturestatic = new FactureFournisseur($db); + while ($line < $num) { $objp = $db->fetch_object($result); @@ -99,9 +100,13 @@ class box_factures_fourn_imp extends ModeleBoxes $thirdpartytmp->name = $objp->name; $thirdpartytmp->code_client = $objp->code_client; $thirdpartytmp->logo = $objp->logo; + $facturestatic->date_echeance = $datelimite; + $facturestatic->statut = $objp->fk_statut; $late=''; - if ($datelimite && $datelimite < ($now - $conf->facture->fournisseur->warning_delay)) $late=img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + if ($facturestatic->hasDelay()) { + $late=img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + } $tooltip = $langs->trans('SupplierInvoice') . ': ' . ($objp->ref?$objp->ref:$objp->facid) . '
' . $langs->trans('RefSupplier') . ': ' . $objp->ref_supplier; $this->info_box_contents[$line][] = array( diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 1bf286ff5aa..b6b844a2f8c 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -63,7 +63,12 @@ class FactureFournisseur extends CommonInvoice * @see FactureFournisseur::STATUS_DRAFT, FactureFournisseur::STATUS_VALIDATED, FactureFournisseur::STATUS_PAID, FactureFournisseur::STATUS_ABANDONED */ var $statut; - //! 1 si facture payee COMPLETEMENT, 0 sinon (ce champ ne devrait plus servir car insuffisant) + + /** + * Set to 1 if the invoice is completely paid, otherwise is 0 + * @var int + * @deprecated Use statuses stored in self::statut + */ var $paye; var $author; @@ -1409,7 +1414,7 @@ class FactureFournisseur extends CommonInvoice { global $conf, $user, $langs; - $sql = 'SELECT ff.rowid, ff.date_lim_reglement as datefin'; + $sql = 'SELECT ff.rowid, ff.date_lim_reglement as datefin, ff.fk_statut'; $sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as ff'; if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= ' WHERE ff.paye=0'; @@ -1430,10 +1435,16 @@ class FactureFournisseur extends CommonInvoice $response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=paye:0'; $response->img=img_object($langs->trans("Bills"),"bill"); + $facturestatic = new FactureFournisseur($this->db); + while ($obj=$this->db->fetch_object($resql)) { $response->nbtodo++; - if (! empty($obj->datefin) && $this->db->jdate($obj->datefin) < ($now - $conf->facture->fournisseur->warning_delay)) { + + $facturestatic->date_echeance = $this->db->jdate($obj->datefin); + $facturestatic->statut = $obj->fk_statut; + + if ($facturestatic->hasDelay()) { $response->nbtodolate++; } } @@ -1822,6 +1833,24 @@ class FactureFournisseur extends CommonInvoice return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + + /** + * Is the payment of the supplier invoice having a delay? + * + * @return bool + */ + public function hasDelay() + { + global $conf; + + $now = dol_now(); + + if (!$this->date_echeance) { + return false; + } + + return ($this->statut == self::STATUS_VALIDATED) && ($this->date_echeance < ($now - $conf->facture->fournisseur->warning_delay)); + } } diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 38d11843714..17cbe08d1ee 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -1905,7 +1905,9 @@ else // Due date print '
'; // Conditions de reglement par defaut diff --git a/htdocs/fourn/facture/impayees.php b/htdocs/fourn/facture/impayees.php index 83d4b830c5f..dbe235cdebc 100644 --- a/htdocs/fourn/facture/impayees.php +++ b/htdocs/fourn/facture/impayees.php @@ -230,6 +230,9 @@ if ($user->rights->fournisseur->facture->lire) { $objp = $db->fetch_object($resql); + $facturestatic->statut = $objp->fk_statut; + $facturestatic->date_echeance = $db->jdate($objp->datelimite); + $var=!$var; print ""; @@ -245,7 +248,9 @@ if ($user->rights->fournisseur->facture->lire) print '\n"; print '\n"; print '"; @@ -342,7 +346,9 @@ if ($resql) print ''; print ''; print ''; print '
'; - if ($date_limit < ($now - $conf->facture->client->warning_delay) && ! $objp->paye && $objp->fk_statut == 1) print img_warning($langs->trans("Late")); + if ($facturestatic->hasDelay()) { + print img_warning($langs->trans("Late")); + } print ''; - if ($obj->fk_statut == 1 && ! $obj->paye && $db->jdate($obj->datelimite) < ($now - $conf->facture->client->warning_delay)) print img_warning($langs->trans("Late")); + if ($facturestatic->hasDelay()) { + print img_warning($langs->trans("Late")); + } print ''; $filename=dol_sanitizeFileName($obj->facnumber); @@ -800,10 +804,14 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) $facturestatic->total_tva=$obj->total_tva; $facturestatic->total_ttc=$obj->total_ttc; $facturestatic->type=$obj->type; + $facturestatic->statut = $obj->fk_statut; + $facturestatic->date_lim_reglement = $db->jdate($obj->datelimite); print $facturestatic->getNomUrl(1,''); print ''; - if ($db->jdate($obj->datelimite) < ($now - $conf->facture->client->warning_delay)) print img_warning($langs->trans("Late")); + if ($facturestatic->hasDelay()) { + print img_warning($langs->trans("Late")); + } print ''; $filename=dol_sanitizeFileName($obj->facnumber); diff --git a/htdocs/core/boxes/box_factures.php b/htdocs/core/boxes/box_factures.php index d04c3e48a3b..f50bff34a86 100644 --- a/htdocs/core/boxes/box_factures.php +++ b/htdocs/core/boxes/box_factures.php @@ -108,12 +108,18 @@ class box_factures extends ModeleBoxes $facturestatic->total_ht = $objp->total_ht; $facturestatic->total_tva = $objp->total_tva; $facturestatic->total_ttc = $objp->total_ttc; + $facturestatic->statut = $objp->fk_statut; + $facturestatic->date_lim_reglement = $db->jdate($objp->datelimite); + $societestatic->id = $objp->socid; $societestatic->name = $objp->name; $societestatic->code_client = $objp->code_client; + $late = ''; - if ($objp->paye == 0 && ($objp->fk_statut != 2 && $objp->fk_statut != 3) && $datelimite < ($now - $conf->facture->client->warning_delay)) { $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day')));} + if ($facturestatic->hasDelay()) { + $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + } $this->info_box_contents[$line][] = array( 'td' => 'align="left"', diff --git a/htdocs/core/boxes/box_factures_imp.php b/htdocs/core/boxes/box_factures_imp.php index 42e889138cc..63ce986e181 100644 --- a/htdocs/core/boxes/box_factures_imp.php +++ b/htdocs/core/boxes/box_factures_imp.php @@ -108,6 +108,8 @@ class box_factures_imp extends ModeleBoxes $facturestatic->total_ht = $objp->total_ht; $facturestatic->total_tva = $objp->total_tva; $facturestatic->total_ttc = $objp->total_ttc; + $facturestatic->statut = $objp->fk_statut; + $facturestatic->date_lim_reglement = $db->jdate($objp->datelimite); $societestatic->id = $objp->socid; $societestatic->name = $objp->name; $societestatic->client = 1; @@ -115,7 +117,9 @@ class box_factures_imp extends ModeleBoxes $societestatic->logo = $objp->logo; $late=''; - if ($datelimite < ($now - $conf->facture->client->warning_delay)) $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + if ($facturestatic->hasDelay()) { + $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + } $this->info_box_contents[$line][] = array( 'td' => 'align="left"', From 865489db75e24e6f4ced73869488dc65d7fc2889 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sat, 5 Sep 2015 11:03:37 +0200 Subject: [PATCH 020/205] Created Adherent::hasDelay function --- htdocs/adherents/card_subscriptions.php | 4 +++- htdocs/adherents/class/adherent.class.php | 23 +++++++++++++++++++++-- htdocs/adherents/list.php | 6 +++++- htdocs/societe/societecontact.php | 6 +++++- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/htdocs/adherents/card_subscriptions.php b/htdocs/adherents/card_subscriptions.php index 87f1b3f14d9..71fd6f3caa1 100644 --- a/htdocs/adherents/card_subscriptions.php +++ b/htdocs/adherents/card_subscriptions.php @@ -621,7 +621,9 @@ if ($rowid > 0) if ($object->datefin) { print dol_print_date($object->datefin,'day'); - if ($object->datefin < ($now - $conf->adherent->cotisation->warning_delay) && $object->statut > 0) print " ".img_warning($langs->trans("Late")); // Affiche picto retard uniquement si non brouillon et non resilie + if ($object->hasDelay()) { + print " ".img_warning($langs->trans("Late")); + } } else { diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 58bb8283029..d83664fd392 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -1741,7 +1741,7 @@ class Adherent extends CommonObject $now=dol_now(); - $sql = "SELECT a.rowid, a.datefin"; + $sql = "SELECT a.rowid, a.datefin, a.statut"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a"; $sql.= " WHERE a.statut = 1"; $sql.= " AND a.entity IN (".getEntity('adherent', 1).")"; @@ -1758,11 +1758,16 @@ class Adherent extends CommonObject $response->url=DOL_URL_ROOT.'/adherents/list.php?mainmenu=members&statut=1'; $response->img=img_object($langs->trans("Members"),"user"); + $adherentstatic = new Adherent($this->db); + while ($obj=$this->db->fetch_object($resql)) { $response->nbtodo++; - if ($this->db->jdate($obj->datefin) < ($now - $conf->adherent->cotisation->warning_delay)) { + $adherentstatic->datefin = $this->db->jdate($obj->datefin); + $adherentstatic->statut = $obj->statut; + + if ($adherentstatic->hasDelay()) { $response->nbtodolate++; } } @@ -1974,4 +1979,18 @@ class Adherent extends CommonObject return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + public function hasDelay() + { + global $conf; + + //Only valid members + if ($this->statut <= 0) { + return false; + } + + $now = dol_now(); + + return $this->datefin < ($now - $conf->adherent->cotisation->warning_delay); + } + } diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php index 1cf2a8e5e09..9799ea2ecef 100644 --- a/htdocs/adherents/list.php +++ b/htdocs/adherents/list.php @@ -271,6 +271,8 @@ if ($resql) $memberstatic->ref=$objp->rowid; $memberstatic->lastname=$objp->lastname; $memberstatic->firstname=$objp->firstname; + $memberstatic->statut=$objp->statut; + $memberstatic->datefin= $datefin; if (! empty($objp->fk_soc)) { $memberstatic->socid = $objp->fk_soc; @@ -325,7 +327,9 @@ if ($resql) { print ''; print dol_print_date($datefin,'day'); - if ($datefin < ($now - $conf->adherent->cotisation->warning_delay) && $objp->statut > 0) print " ".img_warning($langs->trans("SubscriptionLate")); + if ($memberstatic->hasDelay()) { + print " ".img_warning($langs->trans("SubscriptionLate")); + } print ''; print dol_print_date($datefin,'day'); - if ($datefin < ($now - $conf->adherent->cotisation->warning_delay) && $objp->statut > 0) print " ".img_warning($langs->trans("SubscriptionLate")); + if ($memberstatic->hasDelay()) { + print " ".img_warning($langs->trans("SubscriptionLate")); + } print '
'.$form->editfieldkey("DateMaxPayment",'date_lim_reglement',$object->date_echeance,$object,$form_permission,'datepicker').''; print $form->editfieldval("DateMaxPayment",'date_lim_reglement',$object->date_echeance,$object,$form_permission,'datepicker'); - if ($action != 'editdate_lim_reglement' && $object->statut < FactureFournisseur::STATUS_CLOSED && $object->date_echeance && $object->date_echeance < ($now - $conf->facture->fournisseur->warning_delay)) print img_warning($langs->trans('Late')); + if ($action != 'editdate_lim_reglement' && $object->hasDelay()) { + print img_warning($langs->trans('Late')); + } print '
'.dol_print_date($db->jdate($objp->df),'day')."'.dol_print_date($db->jdate($objp->datelimite),'day'); - if ($objp->datelimite && $db->jdate($objp->datelimite) < ($now - $conf->facture->fournisseur->warning_delay) && ! $objp->paye && $objp->fk_statut == 1) print img_warning($langs->trans("Late")); + if ($facturestatic->hasDelay()) { + print img_warning($langs->trans("Late")); + } print "'; diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index d93f1c4beea..7fe7b765c12 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -323,6 +323,10 @@ if ($resql) while ($i < min($num,$limit)) { $obj = $db->fetch_object($resql); + + $facturestatic->date_echeance = $db->jdate($obj->date_echeance); + $facturestatic->statut = $obj->fk_statut; + $var=!$var; print "
'.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) && $obj->date_echeance && $db->jdate($obj->date_echeance) < ($now - $conf->facture->fournisseur->warning_delay)) print img_picto($langs->trans("Late"),"warning"); + if ($facturestatic->hasDelay()) { + print img_picto($langs->trans("Late"),"warning"); + } print ''.dol_trunc($obj->libelle,36).''; From c58b5a51173745159694734f98fe55af311161b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 6 Sep 2015 19:23:46 +0200 Subject: [PATCH 028/205] Created CommandeFournisseur::hasDelay function --- .../class/fournisseur.commande.class.php | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 9bd341e357c..5e207f0b4b6 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -72,7 +72,11 @@ class CommandeFournisseur extends CommonOrder var $date_approve; var $date_approve2; // Used when SUPPLIER_ORDER_DOUBLE_APPROVAL is set var $date_commande; - var $date_livraison; // Date livraison souhaitee + + /** + * Delivery date + */ + var $date_livraison; var $total_ht; var $total_tva; var $total_localtax1; // Total Local tax 1 @@ -2292,7 +2296,7 @@ class CommandeFournisseur extends CommonOrder $resql=$this->db->query($sql); if ($resql) { - $now=dol_now(); + $commandestatic = new CommandeFournisseur($this->db); $response = new WorkboardResponse(); $response->warning_delay=$conf->commande->fournisseur->warning_delay/60/60/24; @@ -2304,8 +2308,11 @@ class CommandeFournisseur extends CommonOrder { $response->nbtodo++; - $date_to_test = empty($obj->delivery_date) ? $obj->datec : $obj->delivery_date; - if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->fournisseur->warning_delay)) { + $commandestatic->date_livraison = $this->db->jdate($obj->delivery_date); + $commandestatic->date_commande = $this->db->jdate($obj->datec); + $commandestatic->statut = $obj->fk_statut; + + if ($commandestatic->hasDelay()) { $response->nbtodolate++; } } @@ -2447,6 +2454,21 @@ class CommandeFournisseur extends CommonOrder return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + + /** + * Is the supplier order delayed? + * + * @return bool + */ + public function hasDelay() + { + global $conf; + + $now = dol_now(); + $date_to_test = empty($this->date_livraison) ? $this->date_commande : $this->date_livraison; + + return ($this->statut != 3) && $date_to_test < ($now - $conf->commande->fournisseur->warning_delay); + } } From 2f85d02911b2ec746af6296966b2506dc276dd4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 6 Sep 2015 19:24:17 +0200 Subject: [PATCH 029/205] Added missing RemiseCheque properties --- htdocs/compta/bank/class/account.class.php | 4 ++++ htdocs/compta/paiement/cheque/class/remisecheque.class.php | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index 72aa176b7b6..a4ba2f439a9 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -1146,6 +1146,10 @@ class AccountLine extends CommonObject var $ref; var $datec; var $dateo; + + /** + * Value date + */ var $datev; var $amount; var $label; diff --git a/htdocs/compta/paiement/cheque/class/remisecheque.class.php b/htdocs/compta/paiement/cheque/class/remisecheque.class.php index d526cb2f601..d58b76f5e9f 100644 --- a/htdocs/compta/paiement/cheque/class/remisecheque.class.php +++ b/htdocs/compta/paiement/cheque/class/remisecheque.class.php @@ -44,6 +44,13 @@ class RemiseCheque extends CommonObject var $errno; public $statut; + public $amount; + public $date_bordereau; + public $account_id; + public $account_label; + public $author_id; + public $nbcheque; + public $number; /** * Constructor From 3c8d02b865558b1da3f5a321a74e7197ee57040d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 6 Sep 2015 20:06:43 +0200 Subject: [PATCH 030/205] Removed unused variable --- htdocs/comm/action/class/actioncomm.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index a8ea9511087..9d793e16ba0 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -882,7 +882,6 @@ class ActionComm extends CommonObject $resql=$this->db->query($sql); if ($resql) { - $now = dol_now(); $agenda_static = new ActionComm($this->db); $response = new WorkboardResponse(); From 671018c5cccfc409f4d6015553c89c1d91cb45bd Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 6 Sep 2015 21:53:28 +0200 Subject: [PATCH 031/205] New Accountancy Uniformize code & rename a constant --- htdocs/accountancy/admin/export.php | 96 +++++++++++++++++-- htdocs/accountancy/journal/bankjournal.php | 11 ++- .../accountancy/journal/purchasesjournal.php | 18 ++-- htdocs/accountancy/journal/sellsjournal.php | 12 +-- htdocs/accountancy/tpl/export_journal.tpl.php | 28 ++++++ htdocs/accountancy/tpl/index.html | 0 .../install/mysql/migration/3.8.0-3.9.0.sql | 2 + 7 files changed, 134 insertions(+), 33 deletions(-) create mode 100644 htdocs/accountancy/tpl/export_journal.tpl.php create mode 100644 htdocs/accountancy/tpl/index.html diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index 856670e18e2..6ba6c05208a 100644 --- a/htdocs/accountancy/admin/export.php +++ b/htdocs/accountancy/admin/export.php @@ -4,7 +4,7 @@ * Copyright (C) 2014 Florian Henry * Copyright (C) 2014 Marcos García * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2015 Jean-François Ferry * * 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 @@ -43,8 +43,12 @@ if (!$user->admin) $action = GETPOST('action', 'alpha'); -// Other parameters ACCOUNTING_EXPORT_* -$list = array ( +// Parameters ACCOUNTING_EXPORT_* +$main_option = array ( + 'ACCOUNTING_EXPORT_PREFIX_SPEC' +); + +$model_option = array ( 'ACCOUNTING_EXPORT_SEPARATORCSV', 'ACCOUNTING_EXPORT_DATE', 'ACCOUNTING_EXPORT_PIECE', @@ -60,10 +64,18 @@ $list = array ( if ($action == 'update') { $error = 0; + $format = GETPOST('format', 'alpha'); $modelcsv = GETPOST('modelcsv', 'int'); + + if (! empty($format)) { + if (! dolibarr_set_const($db, 'ACCOUNTING_EXPORT_FORMAT', $format, 'chaine', 0, '', $conf->entity)) { + $error ++; + } + } else { + $error ++; + } if (! empty($modelcsv)) { - if (! dolibarr_set_const($db, 'ACCOUNTING_EXPORT_MODELCSV', $modelcsv, 'chaine', 0, '', $conf->entity)) { $error ++; } @@ -71,7 +83,15 @@ if ($action == 'update') { $error ++; } - foreach ( $list as $constname ) { + foreach ($main_option as $constname) { + $constvalue = GETPOST($constname, 'alpha'); + + if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) { + $error ++; + } + } + + foreach ($model_option as $constname) { $constvalue = GETPOST($constname, 'alpha'); if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) { @@ -106,9 +126,67 @@ print ''; dol_fiche_head($head, 'export', $langs->trans("Configuration"), 0, 'cron'); -print ''; $var = true; +/* + * Main Options + */ +print '
'; +print ''; +print ''; +print "\n"; + +$var = ! $var; + +print ''; +print ''; +if (! $conf->use_javascript_ajax) +{ + print '"; +} +else +{ + print ''; +} +print ""; + +$num = count($main_option); +if ($num) +{ + foreach ($main_option as $key) { + $var = ! $var; + + print ''; + + // Param + $label = $langs->trans($key); + print ''; + + // Value + print ''; + } +} + +print "
' . $langs->trans('MainOptions') . '
' . $langs->trans("Selectformat") . ''; + print $langs->trans("NotAvailableWhenAjaxDisabled"); + print "'; + $listformat=array( + 'csv'=>$langs->trans("csv"), + 'txt'=>$langs->trans("txt") + ); + print $form->selectarray("format",$listformat,$conf->global->ACCOUNTING_EXPORT_FORMAT,0); + + print '
' . $label . ''; + print ''; + print '
\n"; + +print "
\n"; + +/* + * Export model + */ +print ''; + print ''; print ''; print ''; @@ -143,8 +221,8 @@ print "
\n"; * Parameters */ -$num = count($list); -if ($num) +$num2 = count($model_option); +if ($num2) { print '
' . $langs->trans("Modelcsv") . '
'; print ''; @@ -152,7 +230,7 @@ if ($num) print "\n"; if ($conf->global->ACCOUNTING_EXPORT_MODELCSV > 1) print ''; - foreach ( $list as $key ) { + foreach ($model_option as $key) { $var = ! $var; print ''; diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 250d9001679..3034297de7b 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -16,7 +16,7 @@ * 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. + * GNU General Public License fr more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . @@ -25,7 +25,7 @@ /** * \file htdocs/accountancy/journal/bankjournal.php * \ingroup Accounting Expert - * \brief Page with sells journal + * \brief Page with bank journal */ require '../../main.inc.php'; @@ -66,6 +66,8 @@ $date_endday = GETPOST('date_endday'); $date_endyear = GETPOST('date_endyear'); $action = GETPOST('action'); +$now = dol_now(); + // Security check if ($user->societe_id > 0) accessforbidden(); @@ -421,10 +423,9 @@ if ($action == 'writeBookKeeping') if ($action == 'export_csv') { $sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV; - $bank_journal = $conf->global->ACCOUNTING_BANK_JOURNAL; + $journal = $conf->global->ACCOUNTING_BANK_JOURNAL; - header('Content-Type: text/csv'); - header('Content-Disposition: attachment;filename=journal_banque.csv'); + include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php'; $companystatic = new Client($db); diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 8d0502ad57c..a5ba24b871f 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -3,7 +3,7 @@ * Copyright (C) 2007-2010 Jean Heimburger * Copyright (C) 2011 Juanjo Menent * Copyright (C) 2012 Regis Houssin - * Copyright (C) 2013-2014 Alexandre Spangaro + * Copyright (C) 2013-2015 Alexandre Spangaro * Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2013-2014 Florian Henry * @@ -52,6 +52,8 @@ $date_endmonth = GETPOST('date_endmonth'); $date_endday = GETPOST('date_endday'); $date_endyear = GETPOST('date_endyear'); +$now = dol_now(); + // Security check if ($user->societe_id > 0) accessforbidden(); @@ -156,7 +158,6 @@ if ($result) { // Bookkeeping Write if ($action == 'writebookkeeping') { - $now = dol_now(); foreach ( $tabfac as $key => $val ) { foreach ( $tabttc[$key] as $k => $mt ) { @@ -246,15 +247,10 @@ $companystatic = new Fournisseur($db); if ($action == 'export_csv') { $sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV; - $purchase_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL; - - header('Content-Type: text/csv'); - if ($conf->global->EXPORT_PREFIX_SPEC) - $filename=$conf->global->EXPORT_PREFIX_SPEC."_"."journal_achats.csv"; - else - $filename="journal_achats.csv"; - header('Content-Disposition: attachment;filename='.$filename); - + $journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL; + + include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php'; + if ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 2) // Model Cegid Expert Export { $sep = ";"; diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 60fd2460067..c0fe6e84f96 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -54,6 +54,8 @@ $date_endmonth = GETPOST('date_endmonth'); $date_endday = GETPOST('date_endday'); $date_endyear = GETPOST('date_endyear'); +$now = dol_now(); + // Security check if ($user->societe_id > 0) accessforbidden(); @@ -191,7 +193,6 @@ if ($result) { // Bookkeeping Write if ($action == 'writebookkeeping') { - $now = dol_now(); foreach ($tabfac as $key => $val) { @@ -275,14 +276,9 @@ if ($action == 'writebookkeeping') if ($action == 'export_csv') { $sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV; - $sell_journal = $conf->global->ACCOUNTING_SELL_JOURNAL; + $journal = $conf->global->ACCOUNTING_SELL_JOURNAL; - header('Content-Type: text/csv'); - if ($conf->global->EXPORT_PREFIX_SPEC) - $filename=$conf->global->EXPORT_PREFIX_SPEC."_"."journal_ventes.csv"; - else - $filename="journal_ventes.csv"; - header('Content-Disposition: attachment;filename='.$filename); + include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php'; $companystatic = new Client($db); diff --git a/htdocs/accountancy/tpl/export_journal.tpl.php b/htdocs/accountancy/tpl/export_journal.tpl.php new file mode 100644 index 00000000000..c1ac19912ae --- /dev/null +++ b/htdocs/accountancy/tpl/export_journal.tpl.php @@ -0,0 +1,28 @@ + + * + * 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 . + */ + +$prefix = $conf->global->ACCOUNTING_EXPORT_PREFIX_SPEC; +$format = $conf->global->ACCOUNTING_EXPORT_FORMAT; + +$date_export = dol_print_date($now, '%Y%m%d%H%M%S'); + +header('Content-Type: text/csv'); +if ($prefix) + $filename = $prefix . "_" . "journal_" . $journal . $date_export . "." . $format; +else + $filename = "journal_" . $journal . $date_export . "." . $format; +header('Content-Disposition: attachment;filename='.$filename); \ No newline at end of file diff --git a/htdocs/accountancy/tpl/index.html b/htdocs/accountancy/tpl/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql index 8b64acf2ce8..53b0eb4a6b6 100644 --- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql +++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql @@ -23,3 +23,5 @@ INSERT INTO llx_const (name, value, type, note, visible) values ('MAIN_DELAY_EXP ALTER TABLE llx_accounting_system MODIFY COLUMN pcg_version varchar(32); ALTER TABLE llx_accountingaccount MODIFY COLUMN fk_pcg_version varchar(32); + +UPDATE llx_const SET name = __ENCRYPT('ACCOUNTING_EXPORT_PREFIX_SPEC')__ WHERE __DECRYPT('name')__ = 'EXPORT_PREFIX_SPEC'; From 168b5a1125fa8c0628556b8ea916d3bd2a721ce3 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 6 Sep 2015 21:56:23 +0200 Subject: [PATCH 032/205] Update language --- htdocs/langs/en_US/accountancy.lang | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index c63ce9f1ddf..fda1f472c8e 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -2,11 +2,13 @@ CHARSET=UTF-8 ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file ACCOUNTING_EXPORT_DATE=Date format for export file -ACCOUNTING_EXPORT_PIECE=Export the number of piece ? -ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account ? -ACCOUNTING_EXPORT_LABEL=Export the label ? -ACCOUNTING_EXPORT_AMOUNT=Export the amount ? -ACCOUNTING_EXPORT_DEVISE=Export the devise ? +ACCOUNTING_EXPORT_PIECE=Export the number of piece +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account +ACCOUNTING_EXPORT_LABEL=Export the label +ACCOUNTING_EXPORT_AMOUNT=Export the amount +ACCOUNTING_EXPORT_DEVISE=Export the devise +Selectformat=Select the format for the file +ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name Accounting=Accounting Globalparameters=Global parameters From 1168f0b6ae5adf5974078e2baba0400e7771d8d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Mon, 7 Sep 2015 16:20:17 +0200 Subject: [PATCH 033/205] Fix regression introduced by f3c71a9a5a77532af868ad69b85b27742d9cb0d9 --- htdocs/core/modules/syslog/mod_syslog_sentry.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/core/modules/syslog/mod_syslog_sentry.php b/htdocs/core/modules/syslog/mod_syslog_sentry.php index 5edcca9e03e..cc0bafa568b 100644 --- a/htdocs/core/modules/syslog/mod_syslog_sentry.php +++ b/htdocs/core/modules/syslog/mod_syslog_sentry.php @@ -18,6 +18,8 @@ */ require_once DOL_DOCUMENT_ROOT . '/core/modules/syslog/logHandler.php'; +require_once DOL_DOCUMENT_ROOT . '/includes/raven/raven/lib/Raven/Autoloader.php'; +Raven_Autoloader::register(); /** * Class to manage logging to Sentry From 92c08c77fdcc70cbca81852c33001e730e66e57b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Mon, 7 Sep 2015 16:43:17 +0200 Subject: [PATCH 034/205] Qual: Don't attempt HTTPS redirect if already using HTTPS --- htdocs/main.inc.php | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index ab1a16c9883..7c682756edd 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -225,7 +225,8 @@ if (isset($_SERVER["HTTP_USER_AGENT"])) // Force HTTPS if required ($conf->file->main_force_https is 0/1 or https dolibarr root url) -if (! empty($conf->file->main_force_https)) +// $_SERVER["HTTPS"] is 'on' when link is https, otherwise $_SERVER["HTTPS"] is empty or 'off' +if (! empty($conf->file->main_force_https) && (empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on')) { $newurl=''; if (is_numeric($conf->file->main_force_https)) @@ -239,21 +240,13 @@ if (! empty($conf->file->main_force_https)) } else // Check HTTPS environment variable (Apache/mod_ssl only) { - // $_SERVER["HTTPS"] is 'on' when link is https, otherwise $_SERVER["HTTPS"] is empty or 'off' - if (empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on') // If link is http - { - $newurl=preg_replace('/^http:/i','https:',DOL_MAIN_URL_ROOT).$_SERVER["REQUEST_URI"]; - } + $newurl=preg_replace('/^http:/i','https:',DOL_MAIN_URL_ROOT).$_SERVER["REQUEST_URI"]; } } else { // Check HTTPS environment variable (Apache/mod_ssl only) - // $_SERVER["HTTPS"] is 'on' when link is https, otherwise $_SERVER["HTTPS"] is empty or 'off' - if (empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on') // If link is http - { - $newurl=$conf->file->main_force_https.$_SERVER["REQUEST_URI"]; - } + $newurl=$conf->file->main_force_https.$_SERVER["REQUEST_URI"]; } // Start redirect if ($newurl) From 46b0e259b1f45da5827c9f50c3433c020be369b1 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Mon, 7 Sep 2015 21:51:48 +0200 Subject: [PATCH 035/205] Add constant in modAccounting.class.php --- htdocs/core/modules/modAccounting.class.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index d4db6b2e798..0fd9c265bfb 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -196,6 +196,11 @@ class modAccounting extends DolibarrModules "chaine", "ER" ); + $this->const[23] = array( + "ACCOUNTING_EXPORT_FORMAT", + "chaine", + "csv" + ); // Tabs $this->tabs = array(); From 52cb9581ff0446e36300849ccfbd2470cf0d69fb Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Tue, 8 Sep 2015 16:00:13 +0200 Subject: [PATCH 036/205] Fix multientity stock management --- htdocs/product/class/html.formproduct.class.php | 2 +- htdocs/product/stock/liste.php | 2 +- htdocs/product/stock/product.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/product/class/html.formproduct.class.php b/htdocs/product/class/html.formproduct.class.php index bd302c422d9..8becd6c38ba 100644 --- a/htdocs/product/class/html.formproduct.class.php +++ b/htdocs/product/class/html.formproduct.class.php @@ -72,7 +72,7 @@ class FormProduct $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as ps on ps.fk_entrepot = e.rowid"; $sql.= " AND ps.fk_product = '".$fk_product."'"; } - $sql.= " WHERE e.entity = ".$conf->entity; + $sql.= " WHERE e.entity IN (".getEntity('stock',1).")"; $sql.= " AND e.statut = 1"; $sql.= " ORDER BY e.label"; diff --git a/htdocs/product/stock/liste.php b/htdocs/product/stock/liste.php index a639bd86239..a4220be092d 100644 --- a/htdocs/product/stock/liste.php +++ b/htdocs/product/stock/liste.php @@ -47,7 +47,7 @@ $offset = $limit * $page; $sql = "SELECT e.rowid, e.label as ref, e.statut, e.lieu, e.address, e.zip, e.town, e.fk_pays"; $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e"; -$sql.= " WHERE e.entity = ".$conf->entity; +$sql.= " WHERE e.entity IN (".getEntity('stock',1).")"; if ($sref) { $sql.= " AND e.label like '%".$db->escape($sref)."%'"; diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 0241c0d4dcf..6b08dd16ecf 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -583,7 +583,7 @@ $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e,"; $sql.= " ".MAIN_DB_PREFIX."product_stock as ps"; $sql.= " WHERE ps.reel != 0"; $sql.= " AND ps.fk_entrepot = e.rowid"; -$sql.= " AND e.entity = ".$conf->entity; +$sql.= " AND e.entity IN (".getEntity('stock',1).")"; $sql.= " AND ps.fk_product = ".$product->id; $sql.= " ORDER BY e.label"; From 63a817c3a4d368beaff46e3bd72a456409446342 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Tue, 8 Sep 2015 16:13:15 +0200 Subject: [PATCH 037/205] Fix wahrehouse multientty management --- htdocs/product/stock/index.php | 4 ++-- htdocs/product/stock/mouvement.php | 2 +- htdocs/product/stock/valo.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/product/stock/index.php b/htdocs/product/stock/index.php index da52a5aac58..667c32346f5 100644 --- a/htdocs/product/stock/index.php +++ b/htdocs/product/stock/index.php @@ -64,7 +64,7 @@ print "
' . $langs->trans('OptionsDeactivatedForThisExportModel') . '

"; $sql = "SELECT e.label, e.rowid, e.statut"; $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e"; $sql.= " WHERE e.statut in (0,1)"; -$sql.= " AND e.entity = ".$conf->entity; +$sql.= " AND e.entity IN (".getEntity('stock',1).")"; $sql.= $db->order('e.statut','DESC'); $sql.= $db->plimit(15, 0); @@ -119,7 +119,7 @@ $sql.= ", ".MAIN_DB_PREFIX."stock_mouvement as m"; $sql.= ", ".MAIN_DB_PREFIX."product as p"; $sql.= " WHERE m.fk_product = p.rowid"; $sql.= " AND m.fk_entrepot = e.rowid"; -$sql.= " AND e.entity = ".$conf->entity; +$sql.= " AND e.entity IN (".getEntity('stock',1).")"; if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) $sql.= " AND p.fk_product_type = 0"; $sql.= $db->order("datem","DESC"); $sql.= $db->plimit($max,0); diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php index 8794b00137d..e94df443702 100644 --- a/htdocs/product/stock/mouvement.php +++ b/htdocs/product/stock/mouvement.php @@ -129,7 +129,7 @@ $sql.= " ".MAIN_DB_PREFIX."stock_mouvement as m)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON m.fk_user_author = u.rowid"; $sql.= " WHERE m.fk_product = p.rowid"; $sql.= " AND m.fk_entrepot = e.rowid"; -$sql.= " AND e.entity = ".$conf->entity; +$sql.= " AND e.entity IN (".getEntity('stock',1).")"; if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) $sql.= " AND p.fk_product_type = 0"; if ($id) { diff --git a/htdocs/product/stock/valo.php b/htdocs/product/stock/valo.php index 17e23fef009..75b85af00fa 100644 --- a/htdocs/product/stock/valo.php +++ b/htdocs/product/stock/valo.php @@ -57,7 +57,7 @@ $sql.= " SUM(ps.pmp * ps.reel) as estimatedvalue, SUM(p.price * ps.reel) as sell $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as ps ON e.rowid = ps.fk_entrepot"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON ps.fk_product = p.rowid"; -$sql.= " WHERE e.entity = ".$conf->entity; +$sql.= " WHERE e.entity IN (".getEntity('stock',1).")"; if ($sref) { $sql.= " AND e.ref LIKE '%".$sref."%'"; From 89b723b2a778e1ba4c8d910840fda2e304c92e7f Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Tue, 8 Sep 2015 16:23:00 +0200 Subject: [PATCH 038/205] FIX : multientity warehouse management --- htdocs/core/modules/modStock.class.php | 2 +- htdocs/product/class/html.formproduct.class.php | 2 +- htdocs/product/stock/index.php | 4 ++-- htdocs/product/stock/list.php | 2 +- htdocs/product/stock/mouvement.php | 2 +- htdocs/product/stock/product.php | 2 +- htdocs/product/stock/valo.php | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/core/modules/modStock.class.php b/htdocs/core/modules/modStock.class.php index 43c7cec6fb3..8f6840a21b0 100644 --- a/htdocs/core/modules/modStock.class.php +++ b/htdocs/core/modules/modStock.class.php @@ -131,7 +131,7 @@ class modStock extends DolibarrModules $this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p, '.MAIN_DB_PREFIX.'product_stock as ps, '.MAIN_DB_PREFIX.'entrepot as e'; $this->export_sql_end[$r] .=' WHERE p.rowid = ps.fk_product AND ps.fk_entrepot = e.rowid'; - $this->export_sql_end[$r] .=' AND e.entity = '.$conf->entity; + $this->export_sql_end[$r] .=' AND e.entity IN ('.getEntity('stock',1).')'; // Imports diff --git a/htdocs/product/class/html.formproduct.class.php b/htdocs/product/class/html.formproduct.class.php index 69e999b18ea..534e679814a 100644 --- a/htdocs/product/class/html.formproduct.class.php +++ b/htdocs/product/class/html.formproduct.class.php @@ -72,7 +72,7 @@ class FormProduct $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as ps on ps.fk_entrepot = e.rowid"; $sql.= " AND ps.fk_product = '".$fk_product."'"; } - $sql.= " WHERE e.entity = ".$conf->entity; + $sql.= " WHERE e.entity IN (".getEntity('stock',1).')'; $sql.= " AND e.statut = 1"; $sql.= " ORDER BY e.label"; diff --git a/htdocs/product/stock/index.php b/htdocs/product/stock/index.php index dc394f898dc..5c149988cfe 100644 --- a/htdocs/product/stock/index.php +++ b/htdocs/product/stock/index.php @@ -63,7 +63,7 @@ print "

"; $sql = "SELECT e.label, e.rowid, e.statut"; $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e"; $sql.= " WHERE e.statut in (0,1)"; -$sql.= " AND e.entity = ".$conf->entity; +$sql.= " AND e.entity IN (".getEntity('stock',1).')'; $sql.= $db->order('e.statut','DESC'); $sql.= $db->plimit(15, 0); @@ -118,7 +118,7 @@ $sql.= ", ".MAIN_DB_PREFIX."stock_mouvement as m"; $sql.= ", ".MAIN_DB_PREFIX."product as p"; $sql.= " WHERE m.fk_product = p.rowid"; $sql.= " AND m.fk_entrepot = e.rowid"; -$sql.= " AND e.entity = ".$conf->entity; +$sql.= " AND e.entity IN (".getEntity('stock',1).')'; if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) $sql.= " AND p.fk_product_type = 0"; $sql.= $db->order("datem","DESC"); $sql.= $db->plimit($max,0); diff --git a/htdocs/product/stock/list.php b/htdocs/product/stock/list.php index c85c501fa58..963974e1dd8 100644 --- a/htdocs/product/stock/list.php +++ b/htdocs/product/stock/list.php @@ -56,7 +56,7 @@ $sql.= " SUM(p.pmp * ps.reel) as estimatedvalue, SUM(p.price * ps.reel) as sellv $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as ps ON e.rowid = ps.fk_entrepot"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON ps.fk_product = p.rowid"; -$sql.= " WHERE e.entity = ".$conf->entity; +$sql.= " WHERE e.entity IN (".getEntity('stock',1).')'; if ($sref) { $sql.= " AND e.label LIKE '%".$db->escape($sref)."%'"; diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php index 5622899c052..39a6271d8cd 100644 --- a/htdocs/product/stock/mouvement.php +++ b/htdocs/product/stock/mouvement.php @@ -129,7 +129,7 @@ $sql.= " ".MAIN_DB_PREFIX."stock_mouvement as m)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON m.fk_user_author = u.rowid"; $sql.= " WHERE m.fk_product = p.rowid"; $sql.= " AND m.fk_entrepot = e.rowid"; -$sql.= " AND e.entity = ".$conf->entity; +$sql.= " AND e.entity IN (".getEntity('stock',1).')'; if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) $sql.= " AND p.fk_product_type = 0"; if ($id) { diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 6dad4256aef..73d38fa16a4 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -687,7 +687,7 @@ $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e,"; $sql.= " ".MAIN_DB_PREFIX."product_stock as ps"; $sql.= " WHERE ps.reel != 0"; $sql.= " AND ps.fk_entrepot = e.rowid"; -$sql.= " AND e.entity = ".$conf->entity; +$sql.= " AND e.entity IN (".getEntity('stock',1).')'; $sql.= " AND ps.fk_product = ".$product->id; $sql.= " ORDER BY e.label"; diff --git a/htdocs/product/stock/valo.php b/htdocs/product/stock/valo.php index 6f5cb7ae578..7c73da3794c 100644 --- a/htdocs/product/stock/valo.php +++ b/htdocs/product/stock/valo.php @@ -56,7 +56,7 @@ $sql.= " SUM(ps.pmp * ps.reel) as estimatedvalue, SUM(p.price * ps.reel) as sell $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as ps ON e.rowid = ps.fk_entrepot"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON ps.fk_product = p.rowid"; -$sql.= " WHERE e.entity = ".$conf->entity; +$sql.= " WHERE e.entity IN (".getEntity('stock',1).')'; if ($sref) { $sql.= " AND e.label LIKE '%".$db->escape($sref)."%'"; From 10aacb88111fce9ba58bf8aae98e08daa4c7978e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Sep 2015 13:39:28 +0200 Subject: [PATCH 039/205] Fix code generator --- dev/skeletons/build_class_from_table.php | 126 ++++++++++++++++++++--- dev/skeletons/skeleton_page.php | 32 +++--- 2 files changed, 127 insertions(+), 31 deletions(-) diff --git a/dev/skeletons/build_class_from_table.php b/dev/skeletons/build_class_from_table.php index 6dac857ac11..f4f25c84391 100755 --- a/dev/skeletons/build_class_from_table.php +++ b/dev/skeletons/build_class_from_table.php @@ -50,16 +50,16 @@ print "***** $script_file ($version) *****\n"; // -------------------- START OF BUILD_CLASS_FROM_TABLE SCRIPT -------------------- // Check parameters -if (! isset($argv[1]) || (isset($argv[2]) && ! isset($argv[6]))) +if (! isset($argv[1]) || ! isset($argv[2]) || (isset($argv[3]) && ! isset($argv[7]))) { - print "Usage: $script_file tablename [server port databasename user pass]\n"; + print "Usage: $script_file tablename modulename [server port databasename user pass]\n"; exit; } -if (isset($argv[2]) && isset($argv[3]) && isset($argv[4]) && isset($argv[5]) && isset($argv[6])) +if (isset($argv[3]) && isset($argv[4]) && isset($argv[5]) && isset($argv[6]) && isset($argv[7])) { print 'Use specific database ids'."\n"; - $db=getDoliDBInstance('mysqli',$argv[2],$argv[5],$argv[6],$argv[4],$argv[3]); + $db=getDoliDBInstance('mysqli',$argv[3],$argv[6],$argv[7],$argv[5],$argv[4]); } if ($db->type != 'mysql' && $db->type != 'mysqli') @@ -68,15 +68,18 @@ if ($db->type != 'mysql' && $db->type != 'mysqli') exit; } +$table=$argv[1]; +$module=$argv[2]; + // Show parameters -print 'Tablename: '.$argv[1]."\n"; +print 'Tablename: '.$table."\n"; +print 'Modulename: '.$module."\n"; print "Current dir: ".getcwd()."\n"; print "Database name: ".$db->database_name."\n"; // Define array with list of properties $property=array(); -$table=$argv[1]; $foundprimary=0; $resql=$db->DDLDescTable($table); if ($resql) @@ -160,7 +163,7 @@ foreach($property as $key => $prop) // Define working variables $table=strtolower($table); -$tablenoprefix=preg_replace('/'.preg_quote(MAIN_DB_PREFIX).'/i','',$table); +$tablenoprefix=preg_replace('/'.preg_quote(MAIN_DB_PREFIX,'/').'/i','',$table); $classname=preg_replace('/_/','',ucfirst($tablenoprefix)); $classmin=preg_replace('/_/','',strtolower($classname)); @@ -180,11 +183,18 @@ if (! $sourcecontent) $outfile='out.'.$classmin.'.class.php'; $targetcontent=$sourcecontent; +// Substitute module name +$targetcontent=preg_replace('/dev\/skeletons/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule othermodule1 othermodule2/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule/', $module, $targetcontent); + // Substitute class name $targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent); $targetcontent=preg_replace('/\$element = \'skeleton\'/', '\$element = \''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/\$table_element = \'skeleton\'/', '\$table_element = \''.$tablenoprefix.'\'', $targetcontent); $targetcontent=preg_replace('/Skeleton_Class/', $classname, $targetcontent); +$targetcontent=preg_replace('/skeletons/', $classmin, $targetcontent); +$targetcontent=preg_replace('/skeleton/', $classmin, $targetcontent); // Substitute comments $targetcontent=preg_replace('/This file is an example to create a new class file/', 'Put here description of this class', $targetcontent); @@ -208,8 +218,8 @@ foreach($property as $key => $prop) $varprop.="\n"; } } -$targetcontent=preg_replace('/public \$prop1;/', $varprop, $targetcontent); -$targetcontent=preg_replace('/public \$prop2;/', '', $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('public $prop1;','/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('public $prop2;','/').'/', '', $targetcontent); $targetcontent=preg_replace('/\*((\s|\n|\r|\t)*)\@var mixed Sample property 1((\s|\n|\r|\t)*)/', '', $targetcontent); $targetcontent=preg_replace('/\*((\s|\n|\r|\t)*)\@var mixed Sample property 2((\s|\n|\r|\t)*)/', '', $targetcontent); @@ -284,7 +294,7 @@ foreach($property as $key => $prop) elseif ($prop['istime']) { $varprop.='\'.(! isset($this->'.$prop['field'].') || dol_strlen($this->'.$prop['field'].')==0?\'NULL\':"\'".$this->db->idate('; - $varprop.="\$this->".$prop['field'].""; + $varprop.="\$this->".$prop['field']; $varprop.=").\"'\")"; } elseif ($prop['ischar']) @@ -300,14 +310,14 @@ foreach($property as $key => $prop) elseif ($prop['isint']) { $varprop.='\'.(! isset($this->'.$prop['field'].')?\'NULL\':'; - $varprop.="\$this->".$prop['field'].""; + $varprop.="\$this->".$prop['field']; $varprop.=')'; } else { $varprop.='\'.(! isset($this->'.$prop['field'].')?\'NULL\':"\'".'; - $varprop.="\$this->".$prop['field'].""; - $varprop.='"\'")'; + $varprop.="\$this->".$prop['field']; + $varprop.='."\'")'; } if ($i < (count($property)-$no_output_field)) $varprop.=".','"; @@ -439,6 +449,7 @@ if ($fp) else $error++; + //-------------------------------- // Build skeleton_script.php //-------------------------------- @@ -458,12 +469,19 @@ if (! $sourcecontent) $outfile='out.'.$classmin.'_script.php'; $targetcontent=$sourcecontent; +// Substitute module name +$targetcontent=preg_replace('/dev\/skeletons/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule othermodule1 othermodule2/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule/', $module, $targetcontent); + // Substitute class name $targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent); $targetcontent=preg_replace('/skeleton_script\.php/', $classmin.'_script.php', $targetcontent); $targetcontent=preg_replace('/\$element = \'skeleton\'/', '\$element=\''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/\$table_element = \'skeleton\'/', '\$table_element=\''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/Skeleton_Class/', $classname, $targetcontent); +$targetcontent=preg_replace('/skeletons/', $classmin, $targetcontent); +$targetcontent=preg_replace('/skeleton/', $classmin, $targetcontent); // Substitute comments $targetcontent=preg_replace('/This file is an example to create a new class file/', 'Put here description of this class', $targetcontent); @@ -504,13 +522,19 @@ if (! $sourcecontent) $outfile='out.'.$classmin.'_page.php'; $targetcontent=$sourcecontent; +// Substitute module name +$targetcontent=preg_replace('/dev\/skeletons/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule othermodule1 othermodule2/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule/', $module, $targetcontent); + // Substitute class name $targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent); $targetcontent=preg_replace('/skeleton_script\.php/', $classmin.'_script.php', $targetcontent); $targetcontent=preg_replace('/\$element = \'skeleton\'/', '\$element=\''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/\$table_element = \'skeleton\'/', '\$table_element=\''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/Skeleton_Class/', $classname, $targetcontent); -$targetcontent=preg_replace('/skeleton/', $classname, $targetcontent); +$targetcontent=preg_replace('/skeletons/', $classmin, $targetcontent); +$targetcontent=preg_replace('/skeleton/', $classmin, $targetcontent); // Substitute comments $targetcontent=preg_replace('/This file is an example to create a new class file/', 'Put here description of this class', $targetcontent); @@ -520,9 +544,79 @@ $targetcontent=preg_replace('/Put here some comments/','Initialy built by build_ // Substitute table name $targetcontent=preg_replace('/MAIN_DB_PREFIX."mytable/', 'MAIN_DB_PREFIX."'.$tablenoprefix, $targetcontent); +// Substitute GETPOST search_fieldx +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + if ($prop['isint']) $varprop.='$search_'.$prop['field']."=GETPOST('search_".$prop['field']."','int');\n"; + else $varprop.='$search_'.$prop['field']."=GETPOST('search_".$prop['field']."','alpha');\n"; + } +} +$targetcontent=preg_replace('/'.preg_quote('$search_field1=GETPOST("search_field1");','/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('$search_field2=GETPOST("search_field2");','/').'/', '', $targetcontent); + +// Substitute GETPOST fieldx +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + if ($prop['isint']) $varprop.="\t\$object->".$prop['field']."=GETPOST('".$prop['field']."','int');\n"; + else $varprop.="\t\$object->".$prop['field']."=GETPOST('".$prop['field']."','alpha');\n"; + } +} +$targetcontent=preg_replace('/'.preg_quote('$object->prop1=GETPOST("field1");','/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('$object->prop2=GETPOST("field2");','/').'/', '', $targetcontent); + // Substitute fetch/select parameters -$targetcontent=preg_replace('/\$sql \.= " t\.field1,";/', $varpropselect, $targetcontent); -$targetcontent=preg_replace('/\$sql \.= " t\.field2";/', '', $targetcontent); +$targetcontent=preg_replace('/\$sql\s*\.= " t\.field1,";/', $varpropselect, $targetcontent); +$targetcontent=preg_replace('/\$sql\s*\.= " t\.field2";/', '', $targetcontent); + +// Substitute where for search +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + $varprop.='if ($search_'.$prop['field'].') $sql.= natural_search("'.$prop['field'].'",$search_'.$prop['field'].');'."\n"; + } +} +$targetcontent=preg_replace('/'.preg_quote('if ($search_field1) $sql.= natural_search("field1",$search_field1);','/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('if ($search_field2) $sql.= natural_search("field2",$search_field2);','/').'/', '', $targetcontent); + +// Substitute print_liste_field_titre +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + $varprop.="print_liste_field_titre(\$langs->trans('".$prop['field']."'),\$_SERVER['PHP_SELF'],'t.".$prop['field']."','',\$param,'',\$sortfield,\$sortorder);\n"; + } +} + +$targetcontent=preg_replace('/'.preg_quote("print_liste_field_titre(\$langs->trans('field1'),\$_SERVER['PHP_SELF'],'t.field1','',\$param,'',\$sortfield,\$sortorder);",'/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote("print_liste_field_titre(\$langs->trans('field2'),\$_SERVER['PHP_SELF'],'t.field1','',\$param,'',\$sortfield,\$sortorder);",'/').'/', '', $targetcontent); + +// Substitute where for
.fieldx.'.\$obj->".$prop['field'].".''.\$obj->field1.''.\$obj->field2.'
'; - print ''; - print ''; - print ''; - print '
'; - print $obj->field1; - print ''; - print $obj->field2; - print ''.$obj->field1.''.$obj->field2.'
'.$langs->trans("DefaultSkin").''.$conf->global->MAIN_THEME.' '.$langs->trans("UsePersonalValue").' '.$langs->trans("UsePersonalValue").' 
'.$langs->trans("HighlightLinesOnMouseHover").'global->THEME_ELDY_USE_HOVER?" checked":"").'> '.$langs->trans("UsePersonalValue").''; + print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print '
'.$langs->trans("HighlightLinesOnMouseHover").''; + print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print '
'.$langs->trans("TopMenuBackgroundColor").''.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TOPMENU_BACK1:$langs->trans("Default")).'conf->THEME_ELDY_TOPMENU_BACK1)?" checked":""); + print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo + print '> '.$langs->trans("UsePersonalValue").''; + if ($edit) + { + print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','formcolor',1).' '; + } + else + { + $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); + if ($color) print ''; + else print ''; + } + if ($edit) print '
('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print '
'.$langs->trans("HighlightLinesOnMouseHover").''; - print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print ''.$langs->trans("TopMenuBackgroundColor").''; + if ($edit) + { + print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','formcolor',1).' '; + } + else + { + $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); + if ($color) print ''; + else print $langs->trans("Default"); + } + print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print '
'.$langs->trans("BackgroundTableTitleColor").''; + if ($edit) + { + print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BACKTITLE1,array()),''),'THEME_ELDY_BACKTITLE1','formcolor',1).' '; + } + else + { + print $formother->showColor($conf->global->THEME_ELDY_BACKTITLE1, $langs->trans("Default")); + } + print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; print '
'.$langs->trans("TopMenuBackgroundColor").''; - if ($edit) - { - print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','formcolor',1).' '; - } - else - { - $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); - if ($color) print ''; - else print $langs->trans("Default"); - } - print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; - print '
'.$langs->trans("BackgroundTableTitleColor").''; - if ($edit) - { - print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BACKTITLE1,array()),''),'THEME_ELDY_BACKTITLE1','formcolor',1).' '; - } - else - { - print $formother->showColor($conf->global->THEME_ELDY_BACKTITLE1, $langs->trans("Default")); - } - print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; - print '
'; } diff --git a/htdocs/user/param_ihm.php b/htdocs/user/param_ihm.php index 5355a0f74fc..9e67a1015c7 100644 --- a/htdocs/user/param_ihm.php +++ b/htdocs/user/param_ihm.php @@ -93,7 +93,18 @@ if ($action == 'update' && ($caneditfield || ! empty($user->admin))) if ($_POST["check_MAIN_THEME"]=="on") $tabparam["MAIN_THEME"]=$_POST["main_theme"]; else $tabparam["MAIN_THEME"]=''; - $tabparam["MAIN_SEARCHFORM_CONTACT"]=$_POST["main_searchform_contact"]; + $val=(join(',',(colorStringToArray(GETPOST('THEME_ELDY_TOPMENU_BACK1'),array())))); + if ($val == '') $tabparam['THEME_ELDY_TOPMENU_BACK1']=''; + else $tabparam['THEME_ELDY_TOPMENU_BACK1']=join(',',colorStringToArray(GETPOST('THEME_ELDY_TOPMENU_BACK1'),array())); + + $val=(join(',',(colorStringToArray(GETPOST('THEME_ELDY_BACKTITLE1'),array())))); + if ($val == '') $tabparam['THEME_ELDY_BACKTITLE1']=''; + else $tabparam['THEME_ELDY_BACKTITLE1']=join(',',colorStringToArray(GETPOST('THEME_ELDY_BACKTITLE1'),array())); + + if (GETPOST('check_THEME_ELDY_USE_HOVER') == 'on') $tabparam["THEME_ELDY_USE_HOVER"]=1; + else $tabparam["THEME_ELDY_USE_HOVER"]=0; + + $tabparam["MAIN_SEARCHFORM_CONTACT"]=$_POST["main_searchform_contact"]; $tabparam["MAIN_SEARCHFORM_SOCIETE"]=$_POST["main_searchform_societe"]; $tabparam["MAIN_SEARCHFORM_PRODUITSERVICE"]=$_POST["main_searchform_produitservice"]; @@ -152,17 +163,48 @@ print '

'; if ($action == 'edit') { - print ''; + if (! empty($conf->use_javascript_ajax)) + {/* + print '';*/ + } + if (! empty($conf->use_javascript_ajax)) + { + print ''; + } + clearstatcache(); $var=true; @@ -197,7 +239,7 @@ if ($action == 'edit') print '
'; // Theme - show_theme($object,(($user->admin || empty($dolibarr_main_demo))?1:0),true); + show_theme($object, (($user->admin || empty($dolibarr_main_demo))?1:0), true); dol_fiche_end(); From d3f1a7d5b8113b525e2c3e69462c88bfb0de0785 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Sep 2015 13:26:10 +0200 Subject: [PATCH 042/205] FIX Bad condition into invoice export request making reporting too many rows. --- htdocs/core/modules/modFacture.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/modFacture.class.php b/htdocs/core/modules/modFacture.class.php index 4942619b7fb..40f3b56f636 100644 --- a/htdocs/core/modules/modFacture.class.php +++ b/htdocs/core/modules/modFacture.class.php @@ -222,7 +222,7 @@ class modFacture extends DolibarrModules $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c on s.fk_pays = c.rowid,'; $this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'facture as f'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uc ON f.fk_user_author = uc.rowid'; - $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON f.fk_user_valid = uc.rowid'; + $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON f.fk_user_valid = uv.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_extrafields as extra ON f.rowid = extra.fk_object'; $this->export_sql_end[$r] .=' , '.MAIN_DB_PREFIX.'facturedet as fd'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)'; @@ -278,7 +278,7 @@ class modFacture extends DolibarrModules $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c on s.fk_pays = c.rowid,'; $this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'facture as f'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uc ON f.fk_user_author = uc.rowid'; - $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON f.fk_user_valid = uc.rowid'; + $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON f.fk_user_valid = uv.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_extrafields as extra ON f.rowid = extra.fk_object'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'paiement_facture as pf ON pf.fk_facture = f.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'paiement as p ON pf.fk_paiement = p.rowid'; From 15e50ecdb39fb389efc26f41c212cd702bb100fe Mon Sep 17 00:00:00 2001 From: aspangaro Date: Wed, 9 Sep 2015 21:35:41 +0200 Subject: [PATCH 043/205] Update work --- htdocs/compta/tva/card.php | 28 +++++++++++++-------------- htdocs/compta/tva/class/tva.class.php | 8 ++++++-- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/htdocs/compta/tva/card.php b/htdocs/compta/tva/card.php index 33c795ed10b..78883afbc30 100644 --- a/htdocs/compta/tva/card.php +++ b/htdocs/compta/tva/card.php @@ -167,8 +167,8 @@ if ($action == 'delete') /* -* View -*/ + * View + */ llxHeader(); @@ -194,16 +194,16 @@ if ($action == 'create') { print "\n".''."\n"; + $("#radiopayment").click(function() { + $("#label").val($(this).data("label")); + + }); + $("#radiorefund").click(function() { + $("#label").val($(this).data("label")); + + }); + });'; + print ''."\n"; } print '
'; @@ -215,13 +215,13 @@ if ($action == 'create') print $langs->trans("Type").':   '; print '
'; print ''; print '   '; print ''; diff --git a/htdocs/compta/tva/class/tva.class.php b/htdocs/compta/tva/class/tva.class.php index 74f77a9f8ea..68aeeebc2c8 100644 --- a/htdocs/compta/tva/class/tva.class.php +++ b/htdocs/compta/tva/class/tva.class.php @@ -577,8 +577,12 @@ class Tva extends CommonObject $result=$acc->fetch($this->accountid); if ($result <= 0) dol_print_error($this->db); - $bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, -abs($this->amount), '', '', $user); - + if ($this->amount > 0) { + $bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, -abs($this->amount), '', '', $user); + } else { + $bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, abs($this->amount), '', '', $user); + } + // Update fk_bank into llx_tva. So we know vat line used to generate bank transaction if ($bank_line_id > 0) { From 702edac00a493cb017b176c0d5685d816e3e7547 Mon Sep 17 00:00:00 2001 From: Guido Schratzer Date: Wed, 9 Sep 2015 22:16:03 +0200 Subject: [PATCH 044/205] FIX: issue #3425 missing Profid keys in companies.lang for Austria issue #3425 --- htdocs/langs/en_US/companies.lang | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 764ca969350..2a6391ad934 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -122,6 +122,12 @@ ProfId3AR=- ProfId4AR=- ProfId5AR=- ProfId6AR=- +ProfId1AT=Prof Id 1 (USt.-IdNr) +ProfId2AT=Prof Id 2 (USt.-Nr) +ProfId3AT=Prof Id 3 (Handelsregister-Nr.) +ProfId4AT=- +ProfId5AT=- +ProfId6AT=- ProfId1AU=Prof Id 1 (ABN) ProfId2AU=- ProfId3AU=- From 1ad2aeaf2aefa78376018da67d3229624eb75355 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Sep 2015 01:28:39 +0200 Subject: [PATCH 045/205] Removed baf cut and paste --- htdocs/accountancy/customer/lines.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index 6c9dafed89f..01f34e700cc 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -202,7 +202,6 @@ if ($result) { $i = 0; $param=""; - if ($search_login) $param.="&search_login=".$search_login; if ($search_facture) $param.="&search_facture=".$search_facture; if ($search_ref) $param.="&search_ref=".$search_ref; if ($search_label) $param.="&search_label=".$search_label; From b1b7966c884ed05a5eb5837b8a161f1c17cfe378 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Thu, 10 Sep 2015 06:58:20 +0200 Subject: [PATCH 046/205] ckeditor: define the default skin when constant don't exist. --- htdocs/core/class/doleditor.class.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index 27fd1b1ee80..25265745dd8 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -168,8 +168,11 @@ class DolEditor { if (! defined('REQUIRE_CKEDITOR')) define('REQUIRE_CKEDITOR','1'); - //$skin='kama'; - $skin = $conf->global->FCKEDITOR_SKIN; // default with ckeditor 4 : moono + if (empty($conf->global->FCKEDITOR_SKIN)) { + $skin = monoo; // default with ckeditor 4 : moono + } else { + $skin = $conf->global->FCKEDITOR_SKIN; + } $htmlencode_force=preg_match('/_encoded$/',$this->toolbarname)?'true':'false'; From 00556062563233c36446210a453bcd1ab9affd2f Mon Sep 17 00:00:00 2001 From: aspangaro Date: Thu, 10 Sep 2015 07:36:17 +0200 Subject: [PATCH 047/205] Invert --- htdocs/core/class/doleditor.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index 25265745dd8..84e0433d1d9 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -168,10 +168,10 @@ class DolEditor { if (! defined('REQUIRE_CKEDITOR')) define('REQUIRE_CKEDITOR','1'); - if (empty($conf->global->FCKEDITOR_SKIN)) { - $skin = monoo; // default with ckeditor 4 : moono + if (! empty($conf->global->FCKEDITOR_SKIN)) { + $skin = $conf->global->FCKEDITOR_SKIN; } else { - $skin = $conf->global->FCKEDITOR_SKIN; + $skin = 'monoo'; // default with ckeditor 4 : moono } $htmlencode_force=preg_match('/_encoded$/',$this->toolbarname)?'true':'false'; From a49f88c259f04c10f33cb7de07afe676ef7cf815 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Thu, 10 Sep 2015 11:55:05 +0200 Subject: [PATCH 048/205] reveiw thirdparty list and add column and filter on country and typeent --- htdocs/comm/list.php | 64 +++++++++++++++++++++++++------- htdocs/comm/prospect/list.php | 19 ++++++++-- htdocs/fourn/list.php | 45 ++++++++++++++++++++-- htdocs/societe/list.php | 70 +++++++++++++++++++++++++++-------- 4 files changed, 162 insertions(+), 36 deletions(-) diff --git a/htdocs/comm/list.php b/htdocs/comm/list.php index 126ffc5f470..9752abd31cb 100644 --- a/htdocs/comm/list.php +++ b/htdocs/comm/list.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2013 Cédric Salvador - * Copyright (C) 2013 Florian Henry + * Copyright (C) 2013-2015 Florian Henry * Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2015 Marcos García * @@ -29,6 +29,8 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; $langs->load("companies"); $langs->load("customers"); @@ -50,12 +52,14 @@ $pagenext = $page + 1; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="s.nom"; -$search_company=GETPOST("search_company"); -$search_zipcode=GETPOST("search_zipcode"); -$search_town=GETPOST("search_town"); -$search_code=GETPOST("search_code"); -$search_compta=GETPOST("search_compta"); -$search_status= GETPOST("search_status",'int'); +$search_company = GETPOST("search_company"); +$search_zipcode = GETPOST("search_zipcode"); +$search_town = GETPOST("search_town"); +$search_code = GETPOST("search_code"); +$search_compta = GETPOST("search_compta"); +$search_status = GETPOST("search_status",'int'); +$search_country = GETPOST("search_country",'int'); +$search_type_thirdparty = GETPOST("search_type_thirdparty",'int'); // Load sale and categ filters $search_sale = GETPOST("search_sale",'int'); @@ -89,6 +93,8 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both $search_code=''; $search_compta=''; $search_status=''; + $search_country=""; + $search_type_thirdparty=''; } if ($search_status=='') $search_status=1; // always display activ customer first @@ -101,12 +107,15 @@ if ($search_status=='') $search_status=1; // always display activ customer first $formother=new FormOther($db); $form = new Form($db); $thirdpartystatic=new Societe($db); +$formcompany=new FormCompany($db); $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('',$langs->trans("ThirdParty"),$help_url); $sql = "SELECT s.rowid, s.nom as name, s.name_alias, s.client, s.zip, s.town, st.libelle as stcomm, s.prefix_comm, s.code_client, s.code_compta, s.status as status,"; $sql.= " s.datec, s.canvas"; +$sql.= ",s.fk_pays"; +$sql.= ",typent.code as typent_code"; if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) // Add fields for extrafields foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key; @@ -116,12 +125,14 @@ $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // N $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cs ON s.rowid = cs.fk_soc"; // We need this table joined to the select in order to filter by categ -if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays) "; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent) "; +if ((!$user->rights->societe->client->voir && !$socid) || $search_sale) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale $sql.= ", ".MAIN_DB_PREFIX."c_stcomm as st"; $sql.= " WHERE s.fk_stcomm = st.id"; $sql.= " AND s.client IN (1, 3)"; $sql.= ' AND s.entity IN ('.getEntity('societe', 1).')'; -if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc"; +if ((!$user->rights->societe->client->voir && !$socid) || $search_sale) $sql.= " AND s.rowid = sc.fk_soc"; if ($socid) $sql.= " AND s.rowid = ".$socid; if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc"; // Join for the needed table to filter by sale if ($catid > 0) $sql.= " AND cs.fk_categorie = ".$catid; @@ -134,6 +145,8 @@ if ($search_town) $sql.= natural_search('s.town', $search_town); if ($search_code) $sql.= natural_search("s.code_client", $search_code); if ($search_compta) $sql.= natural_search("s.code_compta", $search_compta); if ($search_status!='') $sql.= " AND s.status = ".$db->escape($search_status); +if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')'; +if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')'; if ($search_sale > 0) $sql.= " AND sc.fk_user = ".$search_sale; // Add where from hooks $parameters=array(); @@ -157,10 +170,15 @@ if ($result) { $num = $db->num_rows($result); - $param = "&search_company=".$search_company."&search_code=".$search_code."&search_zipcode=".$search_zipcode."&search_town=".$search_town; - if ($search_categ != '') $param.='&search_categ='.$search_categ; - if ($search_sale > 0) $param.='&search_sale='.$search_sale; - if ($search_status != '') $param.='&search_status='.$search_status; + $param = "&search_company=".htmlspecialchars($search_company); + $param.="&search_code=".htmlspecialchars($search_code); + $param.="&search_zipcode=".htmlspecialchars($search_zipcode); + $param.="&search_town=".htmlspecialchars($search_town); + if ($search_categ != '') $param.='&search_categ='.htmlspecialchars($search_categ); + if ($search_sale > 0) $param.='&search_sale='.htmlspecialchars($search_sale); + if ($search_status != '') $param.='&search_status='.htmlspecialchars($search_status); + if ($search_country != '') $param.='&search_country='.htmlspecialchars($search_country); + if ($search_type_thirdparty != '') $param.='&search_type_thirdparty='.htmlspecialchars($search_type_thirdparty); print_barre_liste($langs->trans("ListOfCustomers"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_companies.png'); @@ -198,6 +216,8 @@ if ($result) print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,"",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("ThirdPartyType"),$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"datec","",$param,'align="right"',$sortfield,$sortorder); @@ -222,6 +242,14 @@ if ($result) print ''; print ''; + print ''; + print $form->select_country($search_country,'search_country'); + print ''; + + print ''; + print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT)); + print ''; + print ''; print ''; print ''; @@ -270,6 +298,16 @@ if ($result) print ''; print ''.$obj->zip.''; print ''.$obj->town.''; + //Country + print ''; + $tmparray=getCountry($obj->fk_pays,'all'); + print $tmparray['label']; + print ''; + //Type ent + print ''; + if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1); + print $typenArray[$obj->typent_code]; + print ''; print ''.$obj->code_client.''; print ''.$obj->code_compta.''; print ''.dol_print_date($db->jdate($obj->datec),'day').''; diff --git a/htdocs/comm/prospect/list.php b/htdocs/comm/prospect/list.php index 6977c80be87..b7a48331dd9 100644 --- a/htdocs/comm/prospect/list.php +++ b/htdocs/comm/prospect/list.php @@ -33,6 +33,7 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; $langs->load("propal"); $langs->load("companies"); @@ -216,6 +217,7 @@ if (empty($reshook)) $formother=new FormOther($db); $form=new Form($db); +$formcompany=new FormCompany($db); $prospectstatic=new Client($db); $prospectstatic->client=2; $prospectstatic->loadCacheOfProspStatus(); @@ -259,6 +261,8 @@ if ($search_datec) $sql .= " AND s.datec LIKE '%".$db->escape($search_datec)." if ($search_status!='') $sql .= " AND s.status = ".$db->escape($search_status); // Insert levels filters if ($search_levels) $sql .= " AND s.fk_prospectlevel IN (".$search_levels.')'; +if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')'; +if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')'; // Insert sale filter if ($search_sale > 0) $sql .= " AND sc.fk_user = ".$db->escape($search_sale); if ($socname) @@ -313,7 +317,10 @@ if ($resql) llxHeader('',$langs->trans("ThirdParty"),$help_url); } - $param='&search_stcomm='.$search_stcomm.'&search_nom='.urlencode($search_nom).'&search_zipcode='.urlencode($search_zipcode).'&search_town='.urlencode($search_town); + $param='&search_stcomm='.$search_stcomm; + $param.='&search_nom='.urlencode($search_nom); + $param.='&search_zipcode='.urlencode($search_zipcode); + $param.='&search_town='.urlencode($search_town); // Store the status filter in the URL if (isSet($search_setstcomm)) { @@ -419,6 +426,12 @@ if ($resql) print ''; print ''; print ''; + print ''; + print $form->select_country($search_country,'search_country'); + print ''; + print ''; + print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT)); + print ''; print ''; print ''; print ''; @@ -522,9 +535,7 @@ if ($resql) print ''; //Type ent print ''; - if (count($typenArray)==0) { - $typenArray = $formcompany->typent_array(1); - } + if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1); print $typenArray[$obj->typent_code]; print ''; // Creation date diff --git a/htdocs/fourn/list.php b/htdocs/fourn/list.php index 3333ffefba2..d05359945d1 100644 --- a/htdocs/fourn/list.php +++ b/htdocs/fourn/list.php @@ -5,6 +5,7 @@ * Copyright (C) 2011 Philippe Grand * Copyright (C) 2013 Cédric Salvador * Copyright (C) 2015 Raphaël Doursenaud + * Copyright (C) 2015 Florian Henry * * 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 @@ -29,6 +30,8 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; $langs->load("suppliers"); $langs->load("orders"); @@ -44,6 +47,8 @@ $search_datec = GETPOST("search_datec"); $search_categ = GETPOST('search_categ','int'); $search_status = GETPOST("search_status",'int'); $catid = GETPOST("catid",'int'); +$search_country = GETPOST("search_country",'int'); +$search_type_thirdparty = GETPOST("search_type_thirdparty",'int'); // Security check $socid = GETPOST('socid','int'); @@ -76,6 +81,8 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both $search_categ=""; $search_status=''; $catid=""; + $search_country=""; + $search_type_thirdparty=""; } if ($search_status=='') $search_status=1; // always display activ customer first @@ -99,12 +106,15 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e $form=new Form($db); $htmlother=new FormOther($db); $thirdpartystatic=new Societe($db); +$formcompany=new FormCompany($db); $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('',$langs->trans("ThirdParty"),$help_url); $sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias, s.zip, s.town, s.datec, st.libelle as stcomm, s.prefix_comm, s.status as status, "; $sql.= "code_fournisseur, code_compta_fournisseur"; +$sql.= ",s.fk_pays"; +$sql.= ",typent.code as typent_code"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user "; // Add fields for extrafields foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key; @@ -114,6 +124,8 @@ $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // N $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_extrafields as ef ON ef.fk_object = s.rowid"; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays) "; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent) "; if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_fournisseur as cf ON s.rowid = cf.fk_soc"; // We need this table joined to the select in order to filter by categ $sql.= ", ".MAIN_DB_PREFIX."c_stcomm as st"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; @@ -137,6 +149,8 @@ if ($catid > 0) $sql.= " AND cf.fk_categorie = ".$catid; if ($catid == -2) $sql.= " AND cf.fk_categorie IS NULL"; if ($search_categ > 0) $sql.= " AND cf.fk_categorie = ".$search_categ; if ($search_categ == -2) $sql.= " AND cf.fk_categorie IS NULL"; +if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')'; +if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')'; // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook @@ -160,9 +174,14 @@ if ($resql) $num = $db->num_rows($resql); $i = 0; - $param = "&search_name=".$search_name."&search_supplier_code=".$search_supplier_code."&search_zipcode=".$search_zipcode."&search_town=".$search_town; - if ($search_categ != '') $param.='&search_categ='.$search_categ; - if ($search_status != '') $param.='&search_status='.$search_status; + $param = "&search_name=".htmlspecialchars($search_name); + $param.="&search_supplier_code=".htmlspecialchars($search_supplier_code); + $param.="&search_zipcode=".htmlspecialchars($search_zipcode); + $param.="&search_town=".htmlspecialchars($search_town); + if ($search_categ != '') $param.='&search_categ='.htmlspecialchars($search_categ); + if ($search_status != '') $param.='&search_status='.htmlspecialchars($search_status); + if ($search_country != '') $param.='&search_country='.htmlspecialchars($search_country); + if ($search_type_thirdparty != '') $param.='&search_type_thirdparty='.htmlspecialchars($search_type_thirdparty); print_barre_liste($langs->trans("ListOfSuppliers"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_companies'); @@ -193,6 +212,8 @@ if ($resql) print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,'valign="middle"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,'valign="middle"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,'valign="middle"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("ThirdPartyType"),$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("SupplierCode"),$_SERVER["PHP_SELF"],"s.code_fournisseur","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta_fournisseur","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"s.datec","",$param,'align="right"',$sortfield,$sortorder); @@ -213,6 +234,14 @@ if ($resql) print ''; + print ''; + print $form->select_country($search_country,'search_country'); + print ''; + + print ''; + print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT)); + print ''; + print ''; print ''; print ''; @@ -257,6 +286,16 @@ if ($resql) print "\n"; print ''.$obj->zip.''."\n"; print ''.$obj->town.''."\n"; + //Country + print ''; + $tmparray=getCountry($obj->fk_pays,'all'); + print $tmparray['label']; + print ''; + //Type ent + print ''; + if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1); + print $typenArray[$obj->typent_code]; + print ''; print ''.$obj->code_fournisseur.' '; print ''.$obj->code_compta_fournisseur.' '; print ''.dol_print_date($db->jdate($obj->datec),'day').''; diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index 281746fe824..20d4b6c477f 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -4,6 +4,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2012 Marcos García * Copyright (C) 2013-2015 Raphaël Doursenaud + * Copyright (C) 2015 Florian Henry * * 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 @@ -28,6 +29,8 @@ require_once '../main.inc.php'; include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; $langs->load("companies"); $langs->load("customers"); @@ -55,6 +58,8 @@ $search_categ=trim(GETPOST("search_categ")); $mode=GETPOST("mode"); $modesearch=GETPOST("mode_search"); $search_type=trim(GETPOST('search_type')); +$search_country = GETPOST("search_country",'int'); +$search_type_thirdparty = GETPOST("search_type_thirdparty",'int'); $sortfield=GETPOST("sortfield",'alpha'); $sortorder=GETPOST("sortorder",'alpha'); @@ -153,6 +158,7 @@ if ($mode == 'search') $form=new Form($db); $htmlother=new FormOther($db); $companystatic=new Societe($db); +$formcompany=new FormCompany($db); $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('',$langs->trans("ThirdParty"),$help_url); @@ -172,6 +178,8 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both $search_idprof3=''; $search_idprof4=''; $search_type=''; + $search_country=''; + $search_type_thirdparty=''; } if ($socname) @@ -195,6 +203,8 @@ $title=$langs->trans("ListOfThirdParties"); $sql = "SELECT s.rowid, s.nom as name, s.barcode, s.town, s.datec, s.code_client, s.code_fournisseur, "; $sql.= " st.libelle as stcomm, s.prefix_comm, s.client, s.fournisseur, s.canvas, s.status as status,"; $sql.= " s.siren as idprof1, s.siret as idprof2, ape as idprof3, idprof4 as idprof4"; +$sql.= ",s.fk_pays"; +$sql.= ",typent.code as typent_code"; // We'll need these fields in order to filter by sale (including the case where the user can only see his prospects) if ($search_sale) $sql .= ", sc.fk_soc, sc.fk_user"; // We'll need these fields in order to filter by categ @@ -205,8 +215,10 @@ foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as op $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; -$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,"; -$sql.= " ".MAIN_DB_PREFIX."c_stcomm as st"; +$sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays) "; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent) "; +$sql.= " ,".MAIN_DB_PREFIX."c_stcomm as st"; // We'll need this table joined to the select in order to filter by sale if ($search_sale || (!$user->rights->societe->client->voir && !$socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We'll need this table joined to the select in order to filter by categ @@ -235,6 +247,8 @@ if ($search_type > 0 && in_array($search_type,array('1,3','2,3'))) $sql .= " AND if ($search_type > 0 && in_array($search_type,array('4'))) $sql .= " AND s.fournisseur = 1"; if ($search_type == '0') $sql .= " AND s.client = 0 AND s.fournisseur = 0"; if (!empty($conf->barcode->enabled) && $sbarcode) $sql.= " AND s.barcode LIKE '%".$db->escape($sbarcode)."%'"; +if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')'; +if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')'; // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook @@ -257,14 +271,18 @@ if ($resql) $num = $db->num_rows($resql); $i = 0; - $params = "&socname=".htmlspecialchars($socname)."&search_nom=".htmlspecialchars($search_nom)."&search_town=".htmlspecialchars($search_town); - $params.= ($sbarcode?"&sbarcode=".htmlspecialchars($sbarcode):""); - $params.= '&search_idprof1='.htmlspecialchars($search_idprof1); - $params.= '&search_idprof2='.htmlspecialchars($search_idprof2); - $params.= '&search_idprof3='.htmlspecialchars($search_idprof3); - $params.= '&search_idprof4='.htmlspecialchars($search_idprof4); + $param = "&socname=".htmlspecialchars($socname); + $param.= "&search_nom=".htmlspecialchars($search_nom); + $param.= "&search_town=".htmlspecialchars($search_town); + $param.= ($sbarcode?"&sbarcode=".htmlspecialchars($sbarcode):""); + $param.= '&search_idprof1='.htmlspecialchars($search_idprof1); + $param.= '&search_idprof2='.htmlspecialchars($search_idprof2); + $param.= '&search_idprof3='.htmlspecialchars($search_idprof3); + $param.= '&search_idprof4='.htmlspecialchars($search_idprof4); + if ($search_country != '') $param.='&search_country='.htmlspecialchars($search_country); + if ($search_type_thirdparty != '') $param.='&search_type_thirdparty='.htmlspecialchars($search_type_thirdparty); - print_barre_liste($title, $page, $_SERVER["PHP_SELF"],$params,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_companies'); + print_barre_liste($title, $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_companies'); // Show delete result message if (GETPOST('delsoc')) @@ -325,18 +343,20 @@ if ($resql) // Lines of titles print ''; - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$params,"",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); if (! empty($conf->barcode->enabled)) print_liste_field_titre($langs->trans("BarCode"), $_SERVER["PHP_SELF"], "s.barcode",$param,'','',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$params,'',$sortfield,$sortorder); - print_liste_field_titre($form->textwithpicto($langs->trans("ProfId1Short"),$textprofid[1],1,0),$_SERVER["PHP_SELF"],"s.siren","",$params,'class="nowrap"',$sortfield,$sortorder); - print_liste_field_titre($form->textwithpicto($langs->trans("ProfId2Short"),$textprofid[2],1,0),$_SERVER["PHP_SELF"],"s.siret","",$params,'class="nowrap"',$sortfield,$sortorder); - print_liste_field_titre($form->textwithpicto($langs->trans("ProfId3Short"),$textprofid[3],1,0),$_SERVER["PHP_SELF"],"s.ape","",$params,'class="nowrap"',$sortfield,$sortorder); - print_liste_field_titre($form->textwithpicto($langs->trans("ProfId4Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof4","",$params,'class="nowrap"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("ThirdPartyType"),$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($form->textwithpicto($langs->trans("ProfId1Short"),$textprofid[1],1,0),$_SERVER["PHP_SELF"],"s.siren","",$param,'class="nowrap"',$sortfield,$sortorder); + print_liste_field_titre($form->textwithpicto($langs->trans("ProfId2Short"),$textprofid[2],1,0),$_SERVER["PHP_SELF"],"s.siret","",$param,'class="nowrap"',$sortfield,$sortorder); + print_liste_field_titre($form->textwithpicto($langs->trans("ProfId3Short"),$textprofid[3],1,0),$_SERVER["PHP_SELF"],"s.ape","",$param,'class="nowrap"',$sortfield,$sortorder); + print_liste_field_titre($form->textwithpicto($langs->trans("ProfId4Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof4","",$param,'class="nowrap"',$sortfield,$sortorder); print_liste_field_titre(''); $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"s.status","",$params,'align="right"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"s.status","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; @@ -359,6 +379,14 @@ if ($resql) print ''; print ''; print ''; + //Country + print ''; + print $form->select_country($search_country,'search_country'); + print ''; + //Company type + print ''; + print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT)); + print ''; // IdProf1 print ''; print ''; @@ -424,6 +452,16 @@ if ($resql) print ''.$objp->barcode.''; } print "".$obj->town."\n"; + //Country + print ''; + $tmparray=getCountry($obj->fk_pays,'all'); + print $tmparray['label']; + print ''; + //Type ent + print ''; + if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1); + print $typenArray[$obj->typent_code]; + print ''; print "".$obj->idprof1."\n"; print "".$obj->idprof2."\n"; print "".$obj->idprof3."\n"; From eb4c46ca3dd87f72934796feb800f1e1a7884f74 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Sep 2015 12:13:29 +0200 Subject: [PATCH 049/205] Fix code generator --- dev/skeletons/skeleton_page.php | 104 +++++++++++++++++++------------- 1 file changed, 62 insertions(+), 42 deletions(-) diff --git a/dev/skeletons/skeleton_page.php b/dev/skeletons/skeleton_page.php index 2c4fde30ca5..3d0454f5423 100644 --- a/dev/skeletons/skeleton_page.php +++ b/dev/skeletons/skeleton_page.php @@ -252,46 +252,65 @@ if ($action == 'list' || (empty($id) && $action != 'create')) $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; - $sql.=$db->order($sortfield, $sortorder); - - print ''; - - if (! empty($moreforfilter)) - { - print '
'; - print $moreforfilter; - $parameters=array(); - $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - print '
'; - } - - print ''."\n"; - - // Fields title - print ''; - print_liste_field_titre($langs->trans('field1'),$_SERVER['PHP_SELF'],'t.field1','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('field2'),$_SERVER['PHP_SELF'],'t.field2','',$param,'',$sortfield,$sortorder); - $parameters=array(); - $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - print ''."\n"; - - // Fields title search - print ''; - print ''; - print ''; - $parameters=array(); - $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - print ''."\n"; + // Count total nb of records + $nbtotalofrecords = 0; + if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) + { + $result = $db->query($sql); + $nbtotalofrecords = $db->num_rows($result); + } + + $sql.= $db->order($sortfield, $sortorder); + $sql.= $db->plimit($conf->liste_limit+1, $offset); + dol_syslog($script_file, LOG_DEBUG); $resql=$db->query($sql); if ($resql) { $num = $db->num_rows($resql); + + $params=''; + $params.= '&search_field1='.urlencode($search_field1); + $params.= '&search_field2='.urlencode($search_field2); + + print_barre_liste($title, $page, $_SERVER["PHP_SELF"],$params,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_companies'); + + + print ''; + + if (! empty($moreforfilter)) + { + print '
'; + print $moreforfilter; + $parameters=array(); + $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print '
'; + } + + print '
'."\n"; + + // Fields title + print ''; + print_liste_field_titre($langs->trans('field1'),$_SERVER['PHP_SELF'],'t.field1','',$param,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans('field2'),$_SERVER['PHP_SELF'],'t.field2','',$param,'',$sortfield,$sortorder); + $parameters=array(); + $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print ''."\n"; + + // Fields title search + print ''; + print ''; + print ''; + $parameters=array(); + $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print ''."\n"; + + $i = 0; while ($i < $num) { @@ -309,21 +328,22 @@ if ($action == 'list' || (empty($id) && $action != 'create')) } $i++; } + + $db->free($resql); + + $parameters=array('sql' => $sql); + $reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + print "
\n"; + print "\n"; + } else { $error++; dol_print_error($db); } - - $db->free($resql); - - $parameters=array('sql' => $sql); - $reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - print "\n"; - print "\n"; } From 7951483c5f8e5a06a3c7318531585eda52d381bb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Sep 2015 12:34:00 +0200 Subject: [PATCH 050/205] Fix: examples ko for import Fix bad picto for export --- htdocs/core/modules/modSociete.class.php | 7 ++++--- htdocs/exports/class/export.class.php | 7 +++++-- htdocs/exports/export.php | 4 ++++ htdocs/imports/class/import.class.php | 2 +- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index 29eb7d62447..e5b29043a30 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -323,9 +323,10 @@ class modSociete extends DolibarrModules $this->export_label[$r]='ExportDataset_company_2'; $this->export_icon[$r]='contact'; $this->export_permission[$r]=array(array("societe","contact","export")); - $this->export_fields_array[$r]=array('c.rowid'=>"IdContact",'c.civility'=>"CivilityCode",'c.lastname'=>'Lastname','c.firstname'=>'Firstname','c.poste'=>'PostOrFunction','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.priv'=>"ContactPrivate",'c.address'=>"Address",'c.zip'=>"Zip",'c.town'=>"Town",'d.nom'=>'State','co.label'=>"Country",'co.code'=>"CountryCode",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.phone_mobile'=>"Mobile",'c.email'=>"EMail",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.status'=>"Status",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode", 's.client'=>'Customer 0 (no customer no prospect)/1 (customer)/2 (prospect)/3 (customer and prospect)','s.fournisseur'=>'Supplier 0 or 1'); - $this->export_TypeFields_array[$r]=array('c.civility'=>"List:c_civility:label:code",'c.lastname'=>'Text','c.firstname'=>'Text','c.poste'=>'Text','c.datec'=>"Date",'c.priv'=>"Boolean",'c.address'=>"Text",'c.cp'=>"Text",'c.ville'=>"Text",'d.nom'=>'Text','co.label'=>"List:c_country:label:rowid",'co.code'=>"Text",'c.phone'=>"Text",'c.fax'=>"Text",'c.email'=>"Text",'s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Status",'s.client'=>"Text",'s.fournisseur'=>"Text"); - $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>"company",'s.code_client'=>"company",'s.code_fournisseur'=>"company", 's.client'=>"company", 's.fournisseur'=>"company"); // We define here only fields that use another picto + $this->export_fields_array[$r]=array('c.rowid'=>"IdContact",'c.civility'=>"CivilityCode",'c.lastname'=>'Lastname','c.firstname'=>'Firstname','c.poste'=>'PostOrFunction','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.priv'=>"ContactPrivate",'c.address'=>"Address",'c.zip'=>"Zip",'c.town'=>"Town",'d.nom'=>'State','co.label'=>"Country",'co.code'=>"CountryCode",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.phone_mobile'=>"Mobile",'c.email'=>"EMail",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.status'=>"Status",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode", 's.client'=>'Customer','s.fournisseur'=>'Supplier'); + $this->export_examplevalues_array[$r]=array('s.client'=>'0 (no customer no prospect)/1 (customer)/2 (prospect)/3 (customer and prospect)','s.fournisseur'=>'0 (not a supplier) or 1 (supplier)'); + $this->export_TypeFields_array[$r]=array('c.civility'=>"List:c_civility:label:code",'c.lastname'=>'Text','c.firstname'=>'Text','c.poste'=>'Text','c.datec'=>"Date",'c.priv'=>"Boolean",'c.address'=>"Text",'c.zip'=>"Text",'c.town'=>"Text",'d.nom'=>'Text','co.label'=>"List:c_country:label:rowid",'co.code'=>"Text",'c.phone'=>"Text",'c.fax'=>"Text",'c.email'=>"Text",'s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Status",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.client'=>"Text",'s.fournisseur'=>"Text"); + $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>"company", 's.status'=>'company', 's.code_client'=>"company",'s.code_fournisseur'=>"company", 's.client'=>"company", 's.fournisseur'=>"company"); // We define here only fields that use another picto if (empty($conf->fournisseur->enabled)) { unset($this->export_fields_array[$r]['s.code_fournisseur']); diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index 1c5d157188a..ebfe3d31085 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -43,7 +43,8 @@ class Export var $array_export_entities=array(); // Tableau des listes de champ+alias a exporter var $array_export_dependencies=array(); // array of list of entities that must take care of the DISTINCT if a field is added into export var $array_export_special=array(); // Tableau des operations speciales sur champ - + var $array_export_examplevalues=array(); // array with examples + // To store export modules var $hexa; var $hexafiltervalue; @@ -174,7 +175,9 @@ class Export $this->array_export_dependencies[$i]=(! empty($module->export_dependencies_array[$r])?$module->export_dependencies_array[$r]:''); // Tableau des operations speciales sur champ $this->array_export_special[$i]=(! empty($module->export_special_array[$r])?$module->export_special_array[$r]:''); - + // Array of examples + $this->array_export_examplevalues[$i]=$module->export_examplevalues_array[$r]; + // Requete sql du dataset $this->array_export_sql_start[$i]=$module->export_sql_start[$r]; $this->array_export_sql_end[$i]=$module->export_sql_end[$r]; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 8d1f00eac3b..e37eadc76f6 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -569,6 +569,10 @@ if ($step == 2 && $datatoexport) $tablename=getablenamefromfield($code,$sqlmaxforexport); $htmltext =''.$langs->trans("Name").": ".$text.'
'; $htmltext.=''.$langs->trans("Table")." -> ".$langs->trans("Field").": ".$tablename." -> ".preg_replace('/^.*\./','',$code)."
"; + if (! empty($objexport->array_export_examplevalues[0][$code])) + { + $htmltext.=$langs->trans("SourceExample").': '.$objexport->array_export_examplevalues[0][$code].'
'; + } if (isset($array_selected[$code]) && $array_selected[$code]) { // Selected fields diff --git a/htdocs/imports/class/import.class.php b/htdocs/imports/class/import.class.php index b846d158227..2c17dd44f02 100644 --- a/htdocs/imports/class/import.class.php +++ b/htdocs/imports/class/import.class.php @@ -146,7 +146,7 @@ class Import $this->array_import_entities[$i]=$module->import_entities_array[$r]; // Tableau des alias a exporter (cle=champ, valeur=alias) $this->array_import_regex[$i]=$module->import_regex_array[$r]; - // Tableau des alias a exporter (cle=champ, valeur=exemple) + // Array of examples $this->array_import_examplevalues[$i]=$module->import_examplevalues_array[$r]; // Tableau des regles de conversion d'une valeur depuis une autre source (cle=champ, valeur=tableau des regles) $this->array_import_convertvalue[$i]=(isset($module->import_convertvalue_array[$r])?$module->import_convertvalue_array[$r]:''); From a294700cef7e253e63723e83f68199e9c88571c7 Mon Sep 17 00:00:00 2001 From: fappels Date: Thu, 10 Sep 2015 22:16:03 +0200 Subject: [PATCH 051/205] fix dispatch rounding version 1 --- htdocs/fourn/commande/dispatch.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index e62402feabb..76d09d8f3d3 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -266,7 +266,7 @@ if ($id > 0 || ! empty($ref)) { while ( $row = $db->fetch_row($resql) ) { - $products_dispatched[$row[0]] = $row[2]; + $products_dispatched[$row[0]] = price2num($row[2], 5); } $db->free($resql); } @@ -322,7 +322,7 @@ if ($id > 0 || ! empty($ref)) } else { - $remaintodispatch=($objp->qty - $products_dispatched[$objp->rowid]); // Calculation of dispatched + $remaintodispatch=(price2num($objp->qty, 5) - $products_dispatched[$objp->rowid]); // Calculation of dispatched if ($remaintodispatch < 0) $remaintodispatch=0; if ($remaintodispatch) { From 8bdfdc0127ceabb2c1af3c4003ab9dbb08d62612 Mon Sep 17 00:00:00 2001 From: fappels Date: Thu, 10 Sep 2015 23:12:27 +0200 Subject: [PATCH 052/205] Fix #3471 3.5 Rounding issue when dispatching non-integer --- htdocs/fourn/commande/dispatch.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 4bc7a22b06b..97f0cad96d8 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -229,9 +229,17 @@ if ($id > 0 || ! empty($ref)) $resql = $db->query($sql); if ($resql) { - while ( $row = $db->fetch_row($resql) ) + $num = $db->num_rows($resql); + $i = 0; + + if ($num) { - $products_dispatched[$row[0]] = $row[1]; + while ($i < $num) + { + $objd = $db->fetch_object($resql); + $products_dispatched[$objd->fk_product] = price2num($objd->qty, 5); + $i++; + } } $db->free($resql); } @@ -277,7 +285,7 @@ if ($id > 0 || ! empty($ref)) } else { - $remaintodispatch=($objp->qty - $products_dispatched[$objp->fk_product]); // Calculation of dispatched + $remaintodispatch=(price2num($objp->qty, 5) - $products_dispatched[$objp->fk_product]); // Calculation of dispatched if ($remaintodispatch < 0) $remaintodispatch=0; if ($remaintodispatch) { From 75a14e02d8e1429c5545d8785fa80792f568b153 Mon Sep 17 00:00:00 2001 From: fappels Date: Thu, 10 Sep 2015 23:29:13 +0200 Subject: [PATCH 053/205] Fix #3471 3.7 Rounding issue when dispatching non-integer --- htdocs/fourn/commande/dispatch.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 76d09d8f3d3..f4adaf1ba0d 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -264,9 +264,17 @@ if ($id > 0 || ! empty($ref)) $resql = $db->query($sql); if ($resql) { - while ( $row = $db->fetch_row($resql) ) + $num = $db->num_rows($resql); + $i = 0; + + if ($num) { - $products_dispatched[$row[0]] = price2num($row[2], 5); + while ($i < $num) + { + $objd = $db->fetch_object($resql); + $products_dispatched[$objd->rowid] = price2num($objd->qty, 5); + $i++; + } } $db->free($resql); } From c290840513b9cc6bf3ab50e5beace5e3a5aaedb0 Mon Sep 17 00:00:00 2001 From: fappels Date: Thu, 10 Sep 2015 23:31:23 +0200 Subject: [PATCH 054/205] Revert "Fix delete not used empty stock record" This reverts commit 1d85529eda86b03f206ea627ca917551041a6c18. --- .../stock/class/mouvementstock.class.php | 33 +------------------ 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/htdocs/product/stock/class/mouvementstock.class.php b/htdocs/product/stock/class/mouvementstock.class.php index 9c1e555ba3b..b37384932cf 100644 --- a/htdocs/product/stock/class/mouvementstock.class.php +++ b/htdocs/product/stock/class/mouvementstock.class.php @@ -3,7 +3,6 @@ * Copyright (C) 2005-2013 Laurent Destailleur * Copyright (C) 2011 Jean Heimburger * Copyright (C) 2014 Cedric GROSS - * Copyright (C) 2015 Francis Appels * * 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 @@ -233,37 +232,7 @@ class MouvementStock extends CommonObject { $fk_product_stock = $this->db->last_insert_id(MAIN_DB_PREFIX."product_stock"); } - - // delete empty stock record - $sql = "SELECT reel FROM ".MAIN_DB_PREFIX."product_stock"; - $sql.= " WHERE rowid = ".$fk_product_stock; - - $resql=$this->db->query($sql); - if ($resql) - { - $obj = $this->db->fetch_object($resql); - if ($obj) - { - if ($obj->reel == 0) - { - dol_syslog(get_class($this)."::_create delete 0 stock record", LOG_DEBUG); - $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_stock"; - $sql.= " WHERE rowid = ".$fk_product_stock; - $delsql=$this->db->query($sql); - if (! $delsql) - { - $this->errors[]=$this->db->lasterror(); - $error = -8; - } - } - } - $this->db->free($resql); - } - else - { - $this->errors[]=$this->db->lasterror(); - $error = -7; - } + } // Update detail stock for sell-by date From 4b97fae28f41231fe6639ff81e6b3eca3aafcec6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Sep 2015 07:52:06 +0200 Subject: [PATCH 055/205] Fix migration missing for leave request module Fix permission label for expense report and leave request --- htdocs/core/menus/init_menu_auguria.sql | 2 +- htdocs/core/modules/DolibarrModules.class.php | 12 +- .../core/modules/modExpenseReport.class.php | 2 +- htdocs/core/modules/modHoliday.class.php | 82 ----------- htdocs/holiday/list.php | 2 +- htdocs/install/upgrade2.php | 134 +++++++++++------- htdocs/langs/en_US/admin.lang | 10 +- htdocs/langs/en_US/holiday.lang | 6 - htdocs/langs/en_US/install.lang | 2 +- htdocs/langs/fr_FR/holiday.lang | 6 - 10 files changed, 101 insertions(+), 157 deletions(-) diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index 4dd1fd33d0f..b1bc55be0a8 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -299,7 +299,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5200__+MAX_llx_menu__, 'members', 'cat', 13__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&type=3', 'MembersCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5201__+MAX_llx_menu__, 'members', '', 5200__+MAX_llx_menu__, '/categories/card.php?action=create&type=3', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__); -- HRM - Holiday -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/index.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/list.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5001__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/card.php?&action=request', 'MenuAddCP', 1, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5002__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/define_holiday.php?&action=request', 'MenuConfCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5003__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/view_log.php?&action=request', 'MenuLogCP', 1, 'holiday', '$user->rights->holiday->view_log', '', 0, 3, __ENTITY__); diff --git a/htdocs/core/modules/DolibarrModules.class.php b/htdocs/core/modules/DolibarrModules.class.php index d61296f0cc1..7471dd3ee0d 100644 --- a/htdocs/core/modules/DolibarrModules.class.php +++ b/htdocs/core/modules/DolibarrModules.class.php @@ -1691,11 +1691,13 @@ print $sql; /** * Function called when module is enabled. - * The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database. + * The init function adds tabs, constants, boxes, permissions and menus (defined in constructor) into Dolibarr database. * It also creates data directories * - * @param string $options Options when enabling module ('', 'noboxes') - * @return int 1 if OK, 0 if KO + * @param string $options Options when enabling module ('', 'newboxdefonly', 'noboxes') + * 'noboxes' = Do not insert boxes + * 'newboxdefonly' = For boxes, insert def of boxes only and not boxes activation + * @return int 1 if OK, 0 if KO */ public function init($options = '') { @@ -1704,11 +1706,11 @@ print $sql; /** * Function called when module is disabled. - * Remove from database constants, boxes and permissions from Dolibarr database. + * The remove function removes tabs, constants, boxes, permissions and menus from Dolibarr database. * Data directories are not deleted * * @param string $options Options when enabling module ('', 'noboxes') - * @return int 1 if OK, 0 if KO + * @return int 1 if OK, 0 if KO */ public function remove($options = '') { diff --git a/htdocs/core/modules/modExpenseReport.class.php b/htdocs/core/modules/modExpenseReport.class.php index 690ca7ba87e..123f4fe4aa0 100644 --- a/htdocs/core/modules/modExpenseReport.class.php +++ b/htdocs/core/modules/modExpenseReport.class.php @@ -139,7 +139,7 @@ class modExpenseReport extends DolibarrModules $this->rights_class = 'expensereport'; $this->rights[1][0] = 771; - $this->rights[1][1] = 'Read expense reports (own and his subordinates)'; + $this->rights[1][1] = 'Read expense reports (yours and your subordinates)'; $this->rights[1][2] = 'r'; $this->rights[1][3] = 1; $this->rights[1][4] = 'lire'; diff --git a/htdocs/core/modules/modHoliday.class.php b/htdocs/core/modules/modHoliday.class.php index 988391bca42..b4517b4bfbe 100644 --- a/htdocs/core/modules/modHoliday.class.php +++ b/htdocs/core/modules/modHoliday.class.php @@ -180,88 +180,6 @@ class modHoliday extends DolibarrModules $r=0; - /* Move to HRM menu - // Add here entries to declare new menus - $this->menu[$r]=array( 'fk_menu'=>0, // Put 0 if this is a top menu - 'type'=>'top', // This is a Top menu entry - 'titre'=>'CPTitreMenu', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday', - 'url'=>'/holiday/index.php', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>100, - 'enabled'=>'1', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->write', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday', // Put 0 if this is a top menu - 'type'=>'left', // This is a Top menu entry - 'titre'=>'CPTitreMenu', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday', - 'url'=>'/holiday/index.php?mainmenu=holiday&leftmenu=holiday', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>100, - 'enabled'=>'1', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->write', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry) - 'type'=>'left', // This is a Left menu entry - 'titre'=>'MenuAddCP', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday_add', - 'url'=>'/holiday/card.php?mainmenu=holiday&action=request', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>101, - 'enabled'=>'$conf->holiday->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->write', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry) - 'type'=>'left', // This is a Left menu entry - 'titre'=>'MenuConfCP', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday_conf', - 'url'=>'/holiday/define_holiday.php?mainmenu=holiday&action=request', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>102, - 'enabled'=>'$conf->holiday->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->define_holiday', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry) - 'type'=>'left', // This is a Left menu entry - 'titre'=>'MenuLogCP', - 'mainmenu'=>'holiday_def', - 'url'=>'/holiday/view_log.php?mainmenu=holiday&action=request', - 'leftmenu'=>'holiday', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>103, - 'enabled'=>'$conf->holiday->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->view_log', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry) - 'type'=>'left', // This is a Left menu entry - 'titre'=>'MenuReportMonth', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday_report', - 'url'=>'/holiday/month_report.php?mainmenu=holiday&action=request', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>104, - 'enabled'=>'$conf->holiday->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->view_log', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; -*/ - // Exports $r=1; diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index c350fb003e6..4e10fbf925c 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -18,7 +18,7 @@ */ /** - * \file htdocs/holiday/index.php + * \file htdocs/holiday/list.php * \ingroup holiday * \brief List of holiday. */ diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 214a6c54fbf..f42e55cb697 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -366,29 +366,29 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) migrate_event_assignement($db,$langs,$conf); } - // Scripts for lat version + // Scripts for last version $afterversionarray=explode('.','3.7.9'); $beforeversionarray=explode('.','3.8.9'); if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) { // Reload modules (this must be always and only into last targeted version) $listofmodule=array( - 'MAIN_MODULE_AGENDA', - 'MAIN_MODULE_BARCODE', - 'MAIN_MODULE_CRON', - 'MAIN_MODULE_COMMANDE', - 'MAIN_MODULE_DEPLACEMENT', - 'MAIN_MODULE_DON', - 'MAIN_MODULE_ECM', - 'MAIN_MODULE_FACTURE', - 'MAIN_MODULE_FOURNISSEUR', - 'MAIN_MODULE_HOLIDAY', - 'MAIN_MODULE_OPENSURVEY', - 'MAIN_MODULE_PAYBOX', - 'MAIN_MODULE_PRODUIT', - 'MAIN_MODULE_SOCIETE', - 'MAIN_MODULE_SERVICE', - 'MAIN_MODULE_USER' + 'MAIN_MODULE_AGENDA'=>'newboxdefonly', + 'MAIN_MODULE_BARCODE'=>'newboxdefonly', + 'MAIN_MODULE_CRON'=>'newboxdefonly', + 'MAIN_MODULE_COMMANDE'=>'newboxdefonly', + 'MAIN_MODULE_DEPLACEMENT'=>'newboxdefonly', + 'MAIN_MODULE_DON'=>'newboxdefonly', + 'MAIN_MODULE_ECM'=>'newboxdefonly', + 'MAIN_MODULE_FACTURE'=>'newboxdefonly', + 'MAIN_MODULE_FOURNISSEUR'=>'newboxdefonly', + 'MAIN_MODULE_HOLIDAY'=>'newboxdefonly', + 'MAIN_MODULE_OPENSURVEY'=>'newboxdefonly', + 'MAIN_MODULE_PAYBOX'=>'newboxdefonly', + 'MAIN_MODULE_PRODUIT'=>'newboxdefonly', + 'MAIN_MODULE_SOCIETE'=>'newboxdefonly', + 'MAIN_MODULE_SERVICE'=>'newboxdefonly', + 'MAIN_MODULE_USER'=>'newboxdefonly' ); migrate_reload_modules($db,$langs,$conf,$listofmodule); @@ -3750,30 +3750,33 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) { dolibarr_install_syslog("upgrade2::migrate_reload_modules"); - // Module to reload if no info is provided + // If no info is provided, we reload all modules with mode newboxdefonly. if (count($listofmodule) == 0) { $listofmodule=array( - 'MAIN_MODULE_AGENDA', - 'MAIN_MODULE_SOCIETE', - 'MAIN_MODULE_PRODUIT', - 'MAIN_MODULE_SERVICE', - 'MAIN_MODULE_COMMANDE', - 'MAIN_MODULE_FACTURE', - 'MAIN_MODULE_FOURNISSEUR', - 'MAIN_MODULE_USER', - 'MAIN_MODULE_DEPLACEMENT', - 'MAIN_MODULE_DON', - 'MAIN_MODULE_ECM', - 'MAIN_MODULE_PAYBOX', - 'MAIN_MODULE_OPENSURVEY' + 'MAIN_MODULE_AGENDA'=>'newboxdefonly', + 'MAIN_MODULE_SOCIETE'=>'newboxdefonly', + 'MAIN_MODULE_PRODUIT'=>'newboxdefonly', + 'MAIN_MODULE_SERVICE'=>'newboxdefonly', + 'MAIN_MODULE_COMMANDE'=>'newboxdefonly', + 'MAIN_MODULE_FACTURE'=>'newboxdefonly', + 'MAIN_MODULE_FOURNISSEUR'=>'newboxdefonly', + 'MAIN_MODULE_HOLIDAY'=>'newboxdefonly', + 'MAIN_MODULE_USER'=>'newboxdefonly', + 'MAIN_MODULE_DEPLACEMENT'=>'newboxdefonly', + 'MAIN_MODULE_DON'=>'newboxdefonly', + 'MAIN_MODULE_ECM'=>'newboxdefonly', + 'MAIN_MODULE_PAYBOX'=>'newboxdefonly', + 'MAIN_MODULE_OPENSURVEY'=>'newboxdefonly' ); } - foreach($listofmodule as $moduletoreload) + foreach($listofmodule as $moduletoreload => $reloadmode) { if (empty($moduletoreload) || empty($conf->global->$moduletoreload)) continue; + $mod=null; + if ($moduletoreload == 'MAIN_MODULE_AGENDA') { dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Agenda module"); @@ -3781,7 +3784,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modAgenda($db); $mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_BARCODE') @@ -3791,7 +3794,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modBarcode($db); $mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_CRON') @@ -3801,7 +3804,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modCron($db); $mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_SOCIETE') @@ -3811,7 +3814,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modSociete($db); $mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_PRODUIT') // Permission has changed into 2.7 @@ -3821,7 +3824,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modProduct($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_SERVICE') // Permission has changed into 2.7 @@ -3832,7 +3835,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modService($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_COMMANDE') // Permission has changed into 2.9 @@ -3843,7 +3846,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modCommande($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_FACTURE') // Permission has changed into 2.9 @@ -3853,7 +3856,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modFacture($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_FOURNISSEUR') // Permission has changed into 2.9 @@ -3863,7 +3866,17 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modFournisseur($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); + } + } + if ($moduletoreload == 'MAIN_MODULE_HOLIDAY') // Permission and tabs has changed into 3.8 + { + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Leave Request module"); + $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modHoliday.class.php'; + if ($res) { + $mod=new modHoliday($db); + $mod->remove('noboxes'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_DEPLACEMENT') // Permission has changed into 3.0 @@ -3872,8 +3885,8 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modDeplacement.class.php'; if ($res) { $mod=new modDeplacement($db); - //$mod->remove('noboxes'); // We need to remove because a permission id has been removed - $mod->init('newboxdefonly'); + //$mod->remove('noboxes'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_DON') // Permission has changed into 3.0 @@ -3882,8 +3895,8 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modDon.class.php'; if ($res) { $mod=new modDon($db); - //$mod->remove('noboxes'); // We need to remove because a permission id has been removed - $mod->init('newboxdefonly'); + //$mod->remove('noboxes'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_ECM') // Permission has changed into 3.0 and 3.1 @@ -3893,7 +3906,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modECM($db); $mod->remove('noboxes'); // We need to remove because a permission id has been removed - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_PAYBOX') // Permission has changed into 3.0 @@ -3903,7 +3916,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modPaybox($db); $mod->remove('noboxes'); // We need to remove because id of module has changed - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_OPENSURVEY') // Permission has changed into 3.0 @@ -3913,7 +3926,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modOpenSurvey($db); $mod->remove('noboxes'); // We need to remove because menu entries has changed - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_USER') // Permission has changed into 3.0 @@ -3922,11 +3935,20 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modUser.class.php'; if ($res) { $mod=new modUser($db); - //$mod->remove('noboxes'); // We need to remove because id of module has changed - $mod->init('newboxdefonly'); + //$mod->remove('noboxes'); + $mod->init($reloadmode); } } + if (! empty($mod) && is_object($mod)) + { + print ''; + print ''.$langs->trans('Upgrade').': '; + print $langs->trans('MigrationReloadModule')." ".$mod->getName(); + print ""; + print "
\n"; + print ''; + } } } @@ -3951,7 +3973,7 @@ function migrate_reload_menu($db,$langs,$conf,$versionto) $versiontoarray=explode('.',$versionto); - // Script for VX (X<2.9) -> V2.9 + // Migration required when target version is between $afterversionarray=explode('.','2.8.9'); $beforeversionarray=explode('.','2.9.9'); if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) @@ -3959,7 +3981,7 @@ function migrate_reload_menu($db,$langs,$conf,$versionto) $listofmenuhandler['auguria']=1; // We set here only dynamic menu handlers } - // Script for VX (X<3.2) -> V3.2 + // Migration required when target version is between $afterversionarray=explode('.','3.1.9'); $beforeversionarray=explode('.','3.2.9'); if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) @@ -3967,6 +3989,14 @@ function migrate_reload_menu($db,$langs,$conf,$versionto) $listofmenuhandler['auguria']=1; // We set here only dynamic menu handlers } + // Migration required when target version is between + $afterversionarray=explode('.','3.7.9'); + $beforeversionarray=explode('.','3.8.9'); + if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) + { + $listofmenuhandler['auguria']=1; // We set here only dynamic menu handlers + } + foreach ($listofmenuhandler as $key => $val) { print ''; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 5f2d3eba8c6..74947e5e0d9 100755 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -635,7 +635,7 @@ Permission162=Create/modify contracts/subscriptions Permission163=Activate a service/subscription of a contract Permission164=Disable a service/subscription of a contract Permission165=Delete contracts/subscriptions -Permission171=Read trips and expenses (own and his subordinates) +Permission171=Read trips and expenses (yours and your subordinates) Permission172=Create/modify trips and expenses Permission173=Delete trips and expenses Permission174=Read all trips and expenses @@ -730,7 +730,7 @@ Permission538=Export services Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations -Permission771=Read expense reports (own and his subordinates) +Permission771=Read expense reports (yours and your subordinates) Permission772=Create/modify expense reports Permission773=Delete expense reports Permission774=Read all expense reports (even for user not subordinates) @@ -767,6 +767,12 @@ Permission1237=Export supplier orders and their details Permission1251=Run mass imports of external data into database (data load) Permission1321=Export customer invoices, attributes and payments Permission1421=Export customer orders and attributes +Permission20001=Read leave requests (yours and your subordinates) +Permission20002=Create/modify your leave requests +Permission20003=Delete leave requests +Permission20004=Read all leave requests (even user not subordinates) +Permission20005=Create/modify leave requests for everybody +Permission20006=Admin leave requests (setup and update balance) Permission23001=Read Scheduled job Permission23002=Create/update Scheduled job Permission23003=Delete Scheduled job diff --git a/htdocs/langs/en_US/holiday.lang b/htdocs/langs/en_US/holiday.lang index 9bf90c3d01c..725336d8790 100644 --- a/htdocs/langs/en_US/holiday.lang +++ b/htdocs/langs/en_US/holiday.lang @@ -140,11 +140,5 @@ HolidaysRefused=Request denied HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason : HolidaysCanceled=Canceled leaved request HolidaysCanceledBody=Your leave request for %s to %s has been canceled. -Permission20001=Read you own leave requests -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read leave requests for everybody -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) NewByMonth=Added per month GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leaves to setup the different types of leaves. \ No newline at end of file diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index fada78c04c6..6ec3ca2d14a 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -209,6 +209,6 @@ MigrationActioncommElement=Update data on actions MigrationPaymentMode=Data migration for payment mode MigrationCategorieAssociation=Migration of categories MigrationEvents=Migration of events to add event owner into assignement table - +MigrationReloadModule=Reload module %s ShowNotAvailableOptions=Show not available options HideNotAvailableOptions=Hide not available options diff --git a/htdocs/langs/fr_FR/holiday.lang b/htdocs/langs/fr_FR/holiday.lang index c3dfa31de07..d201181188d 100644 --- a/htdocs/langs/fr_FR/holiday.lang +++ b/htdocs/langs/fr_FR/holiday.lang @@ -140,11 +140,5 @@ HolidaysRefused=Accès refusé HolidaysRefusedBody=Votre demande de congés payés %s à %s vient d'être refusée pour le motif suivant : HolidaysCanceled=Abandonner la demande de congés HolidaysCanceledBody=Votre demande de congés du %s au %s a été annulée. -Permission20001=Lire ses propres demandes de congès -Permission20002=Créer/modifier ses demandes de congés -Permission20003=Supprimer la demande de Congés -Permission20004=Lire les demandes de congès de tout le monde -Permission20005=Créer/modifier les congés pour tout le monde -Permission20006=Administration des demande de congès (configuration et mise à jour du solde) NewByMonth=Ajouté par mois GoIntoDictionaryHolidayTypes=Aller dans Accueil - Configuration - Dictionnaires - Type de congés pour configurer les différents types de congés. From 1401debace3ab0ea8291afac8c9722d993856061 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Sep 2015 08:32:40 +0200 Subject: [PATCH 056/205] Fix print into form to attach file must be into return. --- htdocs/core/class/html.formfile.class.php | 9 ++++++--- htdocs/langs/en_US/link.lang | 1 + htdocs/theme/eldy/style.css.php | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 47723a05cbc..59a418d73a2 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -75,6 +75,7 @@ class FormFile global $conf,$langs, $hookmanager; $hookmanager->initHooks(array('formfile')); + if (! empty($conf->browser->layout) && $conf->browser->layout != 'classic') $useajax=0; if ((! empty($conf->global->MAIN_USE_JQUERY_FILEUPLOAD) && $useajax) || ($useajax==2)) @@ -86,13 +87,13 @@ class FormFile return $this->_formAjaxFileUpload($object); } else - { + { $maxlength=$size; $out = "\n\n\n"; if (empty($title)) $title=$langs->trans("AttachANewFile"); - if ($title != 'none') print_titre($title); + if ($title != 'none') $out.=load_fiche_titre($title, null, null); $out .= '
'; $out .= ''; @@ -178,7 +179,7 @@ class FormFile $out .= ''; $out .= ''; $out .= ''; + } } } @@ -3951,7 +3973,7 @@ function migrate_reload_menu($db,$langs,$conf,$versionto) $versiontoarray=explode('.',$versionto); - // Script for VX (X<2.9) -> V2.9 + // Migration required when target version is between $afterversionarray=explode('.','2.8.9'); $beforeversionarray=explode('.','2.9.9'); if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) @@ -3959,7 +3981,7 @@ function migrate_reload_menu($db,$langs,$conf,$versionto) $listofmenuhandler['auguria']=1; // We set here only dynamic menu handlers } - // Script for VX (X<3.2) -> V3.2 + // Migration required when target version is between $afterversionarray=explode('.','3.1.9'); $beforeversionarray=explode('.','3.2.9'); if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) @@ -3967,6 +3989,14 @@ function migrate_reload_menu($db,$langs,$conf,$versionto) $listofmenuhandler['auguria']=1; // We set here only dynamic menu handlers } + // Migration required when target version is between + $afterversionarray=explode('.','3.7.9'); + $beforeversionarray=explode('.','3.8.9'); + if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) + { + $listofmenuhandler['auguria']=1; // We set here only dynamic menu handlers + } + foreach ($listofmenuhandler as $key => $val) { print ''; print ''; @@ -666,10 +666,10 @@ if ($step == 3 && $datatoexport) // Lot de donnees a exporter print ''; print ''; @@ -832,7 +832,8 @@ if ($step == 4 && $datatoexport) // Lot de donnees a exporter print ''; print ''; @@ -1069,7 +1070,8 @@ if ($step == 5 && $datatoexport) // Lot de donnees a exporter print ''; print ''; From e0a88fabd9ff6d65a2ac3c7662b74b351ade4241 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Sep 2015 17:54:53 +0200 Subject: [PATCH 086/205] FIX #3521 --- htdocs/install/mysql/migration/3.7.0-3.8.0.sql | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql index 15dd8761e47..d1cf11ac4c3 100755 --- a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql +++ b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql @@ -9,14 +9,14 @@ -- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname; -- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60); -- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name; --- To restrict request to Mysql version x.y use -- VMYSQLx.y --- To restrict request to Pgsql version x.y use -- VPGSQLx.y +-- To restrict request to Mysql version x.y or more: -- VMYSQLx.y +-- To restrict request to Pgsql version x.y or more: -- VPGSQLx.y -- To make pk to be auto increment (mysql): VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; -- To make pk to be auto increment (postgres): VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE -- To set a field as NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL; -- To set a field as default NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL; --- -- VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user); --- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); +-- To delete orphelins: VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); +-- To delete orphelins: VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user); UPDATE llx_facture_fourn set ref=rowid where ref IS NULL; @@ -677,7 +677,8 @@ ALTER TABLE llx_c_stcomm ADD COLUMN picto varchar(128); INSERT INTO llx_c_action_trigger (code, label, description, elementtype, rang) VALUES ('BILL_SUPPLIER_UNVALIDATE','Supplier invoice unvalidated','Executed when a supplier invoice status is set back to draft','invoice_supplier',15); -ALTER TABLE llx_holiday_users DROP PRIMARY KEY; +--VMYSQL4.1 ALTER TABLE llx_holiday_users DROP PRIMARY KEY; +--VPGSQL8.2 ALTER TABLE llx_holiday_users DROP CONSTRAINT llx_holiday_users_pkey; DROP TABLE llx_holiday_types; From 2d2f59fe3fa32d8f459bd768e5e3a8e739dddd24 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Mon, 14 Sep 2015 22:33:48 +0200 Subject: [PATCH 087/205] Fix : Class 'Categorie' not found in core\class\html.form.class.php --- htdocs/core/class/html.form.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index bc831baeddf..5999f9e8882 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4673,6 +4673,7 @@ class Form { global $db; + require_once DOL_DOCUMENT_ROOT .'/categories/class/categorie.class.php'; $cat = new Categorie($db); $categories = $cat->containing($id, $type); From 95cfce925f053afa1155c9445ab4247bc896fb26 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Tue, 15 Sep 2015 03:33:27 +0200 Subject: [PATCH 088/205] fix error on tabcollectors and enhance fix error on tabcollectors feature add number of tabs present in tab collectors --- htdocs/core/lib/functions.lib.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 4672f7a88e2..618de434575 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -731,6 +731,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p // if =0 we don't use the feature $limittoshow=(empty($conf->global->MAIN_MAXTABS_IN_CARD)?99:$conf->global->MAIN_MAXTABS_IN_CARD); $displaytab=0; + $nbintab=0; for ($i = 0 ; $i <= $maxkey ; $i++) { @@ -787,6 +788,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p $outmore.=''.$links[$i][1].''."\n"; $outmore.=''; + $nbintab++; } $displaytab=$i; } @@ -795,18 +797,16 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p { $tabsname=str_replace("@", "", $picto); $out.='
'; - $out.=''.$langs->trans("More").'...'; + $out.=''.$langs->trans("More").' '.$nbintab.''; $out.='
'.$outmore.'
'; $out.="
\n"; $out.=""; } - $out.="\n"; - if (! $notab) $out.="\n".'
'."\n"; return $out; From 5b57231c52f17790ca13ed4ed630f126ed068c29 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Tue, 15 Sep 2015 06:14:33 +0200 Subject: [PATCH 089/205] Fix : error skin name by default --- htdocs/core/class/doleditor.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index 84e0433d1d9..05686e5abb7 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -171,7 +171,7 @@ class DolEditor if (! empty($conf->global->FCKEDITOR_SKIN)) { $skin = $conf->global->FCKEDITOR_SKIN; } else { - $skin = 'monoo'; // default with ckeditor 4 : moono + $skin = 'moono'; // default with ckeditor 4 : moono } $htmlencode_force=preg_match('/_encoded$/',$this->toolbarname)?'true':'false'; From a0fb27bd80dcd528ee740f514166e82e97dddda8 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Tue, 15 Sep 2015 14:34:49 +0200 Subject: [PATCH 090/205] FIX : Can create Proposal on close thridparty #3526 --- htdocs/comm/card.php | 12 ++++++------ htdocs/comm/propal.php | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index 450a462c751..75e102b96bb 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -828,25 +828,25 @@ if ($id > 0) print '
'; - if (! empty($conf->propal->enabled) && $user->rights->propal->creer) + if (! empty($conf->propal->enabled) && $user->rights->propal->creer && $object->status==1) { $langs->load("propal"); print ''; } - if (! empty($conf->commande->enabled) && $user->rights->commande->creer) + if (! empty($conf->commande->enabled) && $user->rights->commande->creer && $object->status==1) { $langs->load("orders"); print ''; } - if ($user->rights->contrat->creer) + if ($user->rights->contrat->creer && $object->status==1) { $langs->load("contracts"); print ''; } - if (! empty($conf->ficheinter->enabled) && $user->rights->ficheinter->creer) + if (! empty($conf->ficheinter->enabled) && $user->rights->ficheinter->creer && $object->status==1) { $langs->load("fichinter"); print ''; @@ -855,7 +855,7 @@ if ($id > 0) // Add invoice if ($user->societe_id == 0) { - if (! empty($conf->deplacement->enabled)) + if (! empty($conf->deplacement->enabled) && $object->status==1) { $langs->load("trips"); print ''; @@ -863,7 +863,7 @@ if ($id > 0) if (! empty($conf->facture->enabled)) { - if ($user->rights->facture->creer) + if ($user->rights->facture->creer && $object->status==1) { $langs->load("bills"); $langs->load("orders"); diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index b5302063a65..5fef6f8ae29 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -1267,7 +1267,7 @@ if ($action == 'create') print ''; } else { print '
'; } print '' . "\n"; From 813667e564ab4e0c11396c5fa87bbdca1a99f726 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Sep 2015 17:45:40 +0200 Subject: [PATCH 091/205] Debug swith of ckeditor theme --- htdocs/core/lib/doleditor.lib.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/core/lib/doleditor.lib.php b/htdocs/core/lib/doleditor.lib.php index 63883ffd0f4..5be16a4c471 100644 --- a/htdocs/core/lib/doleditor.lib.php +++ b/htdocs/core/lib/doleditor.lib.php @@ -40,7 +40,7 @@ function show_skin($fuser,$edit=0) $formother = new FormOther($db); - $dirskins=array('/includes/ckeditor/skins'); + $dirskins=array('/includes/ckeditor/ckeditor/skins'); if (! empty($conf->modules_parts['theme'])) // Using this feature slow down application { foreach($conf->modules_parts['theme'] as $reldir) @@ -52,7 +52,8 @@ function show_skin($fuser,$edit=0) // Now dir_themes=array('/themes') or dir_themes=array('/theme','/mymodule/theme') $selected_theme=''; - $selected_theme=$conf->global->FCKEDITOR_SKIN; + if (empty($conf->global->FCKEDITOR_SKIN)) $selected_theme='moono'; + else $selected_theme=$conf->global->FCKEDITOR_SKIN; $colspan=2; @@ -65,9 +66,9 @@ function show_skin($fuser,$edit=0) print ''; print ''; print ''; From 8fd9d2a7cefc5b932ea2c908258207776036b920 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Wed, 16 Sep 2015 10:21:32 +0200 Subject: [PATCH 092/205] FIX : #3530 --- htdocs/fourn/facture/paiement.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php index ba3f82c78e0..81fe1d6b345 100644 --- a/htdocs/fourn/facture/paiement.php +++ b/htdocs/fourn/facture/paiement.php @@ -5,11 +5,8 @@ * Copyright (C) 2004 Christophe Combelles * Copyright (C) 2005 Marc Barilley / Ocebo * Copyright (C) 2005-2012 Regis Houssin -<<<<<<< HEAD * Copyright (C) 2014 Teddy Andreotti <125155@supinfo.com> -======= * Copyright (C) 2015 Marcos García ->>>>>>> refs/remotes/origin/3.6 * * 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 @@ -46,6 +43,7 @@ $confirm = GETPOST('confirm'); $facid=GETPOST('facid','int'); $socid=GETPOST('socid','int'); +$accountid = GETPOST('accountid'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); @@ -200,7 +198,7 @@ if (empty($reshook)) if (! $error) { - $result=$paiement->addPaymentToBank($user,'payment_supplier','(SupplierInvoicePayment)',$_POST['accountid'],'',''); + $result=$paiement->addPaymentToBank($user,'payment_supplier','(SupplierInvoicePayment)',$accountid,'',''); if ($result < 0) { setEventMessage($paiement->error, 'errors'); @@ -304,7 +302,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie if (! empty($conf->banque->enabled)) { print ''; } else From cb31ab3e2b925a0feabdd511b78da063c7e22b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Wed, 16 Sep 2015 19:53:32 +0200 Subject: [PATCH 093/205] FIX Syntax error in Debian Apache configuration This issue prevented Apache from starting after dolibarr deb package installation with the following error: Syntax error on line 30 of /etc/apache2/conf.d/dolibarr.conf: order takes one argument, 'allow,deny', 'deny,allow', or 'mutual-failure' --- build/debian/apache/dolibarr.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/debian/apache/dolibarr.conf b/build/debian/apache/dolibarr.conf index 95eaae21190..bdbb6e1b4c3 100644 --- a/build/debian/apache/dolibarr.conf +++ b/build/debian/apache/dolibarr.conf @@ -15,7 +15,7 @@ Alias /dolibarr /usr/share/dolibarr/htdocs # Require all granted # # -# Order allow, deny +# Order allow,deny # Allow from all # # @@ -27,7 +27,7 @@ Alias /dolibarr /usr/share/dolibarr/htdocs Require all granted - Order allow, deny + Order allow,deny Allow from all From 7f60abdf7bbc1b26e133198aae1ce04c25241ad3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Sep 2015 21:05:02 +0200 Subject: [PATCH 094/205] FIX #3524 --- htdocs/user/class/user.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 475b9d7fd2b..5f5fd60bd9b 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -1191,7 +1191,7 @@ class User extends CommonObject $sql.= " lastname = '".$this->db->escape($this->lastname)."'"; $sql.= ", firstname = '".$this->db->escape($this->firstname)."'"; $sql.= ", login = '".$this->db->escape($this->login)."'"; - $sql.= ", api_key = '".$this->db->escape($this->api_key)."'"; + $sql.= ", api_key = ".($this->api_key ? "'".$this->db->escape($this->api_key)."'" : "null"); $sql.= ", gender = ".($this->gender != -1 ? "'".$this->db->escape($this->gender)."'" : "null"); // 'man' or 'woman' $sql.= ", admin = ".$this->admin; $sql.= ", address = '".$this->db->escape($this->address)."'"; From e36928fd652586d6f3112ab18e34bcc008fc5c15 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Sep 2015 21:21:34 +0200 Subject: [PATCH 095/205] FIX #3529 --- htdocs/core/class/html.form.class.php | 4 ++++ htdocs/fourn/card.php | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index bc831baeddf..4084967a7c6 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -3015,6 +3015,8 @@ class Form global $langs; $langs->load("categories"); + include_once DOL_DOCUMENT_ROOT.'/categories/class.categorie.class.php'; + $cat = new Categorie($this->db); $cate_arbo = $cat->get_full_arbo($type,$excludeafterid); @@ -4673,6 +4675,8 @@ class Form { global $db; + include_once DOL_DOCUMENT_ROOT.'/categories/class.categorie.class.php'; + $cat = new Categorie($db); $categories = $cat->containing($id, $type); diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 5a1f38806bb..55993221d41 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -264,10 +264,13 @@ if ($object->id > 0) print ''; // Categories - print ''; - print '"; + if (! empty($conf->categorie->enabled)) + { + print ''; + print '"; + } // Other attributes $parameters=array('socid'=>$object->id, 'colspan' => ' colspan="3"', 'colspanvalue' => '3'); From 7d8013b3718f077bf9e42aec2da07f2f9f820e6a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Sep 2015 21:34:01 +0200 Subject: [PATCH 096/205] FIX #3533 --- htdocs/societe/soc.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index b80f0f2c086..fbee689ee52 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -49,7 +49,8 @@ $langs->load("commercial"); $langs->load("bills"); $langs->load("banks"); $langs->load("users"); -if (!empty($conf->incoterm->enabled)) $langs->load("incoterm"); +if (! empty($conf->categories->enabled)) $langs->load("categories"); +if (! empty($conf->incoterm->enabled)) $langs->load("incoterm"); if (! empty($conf->notification->enabled)) $langs->load("mails"); $mesg=''; $error=0; $errors=array(); From 6ffdbf91ec57b6b0bc00913785b84d401e9d8517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Wed, 16 Sep 2015 21:35:20 +0200 Subject: [PATCH 097/205] FIX #3533 Load categories language --- htdocs/societe/soc.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index b80f0f2c086..5b0b6968b9e 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -1274,6 +1274,8 @@ else // Categories if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire)) { + $langs->load('categories'); + // Customer if ($object->prospect || $object->client) { print ''; print ''; } @@ -2151,7 +2151,7 @@ else { print ''; print ''; } From 8bb832d06b4441438445a084b604fe418b9a51c9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Sep 2015 00:48:10 +0200 Subject: [PATCH 100/205] Fix Natural english --- build/exe/doliwamp/UsedPort.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/exe/doliwamp/UsedPort.cpp b/build/exe/doliwamp/UsedPort.cpp index 15d2978b3bb..e2724b831a1 100644 --- a/build/exe/doliwamp/UsedPort.cpp +++ b/build/exe/doliwamp/UsedPort.cpp @@ -277,7 +277,7 @@ help=!(Port > 0); Usage: if (help) { printf("----- %s V%s (c)Laurent Destailleur -----\n",PROG,VERSION); - printf("%s is a software that allows you to know if a TCP/IP port is used\n",PROG); + printf("%s is software that allows you to know if a TCP/IP port is used\n",PROG); printf("%s sources can be compiled for WIN32 (VC++, GCC CYGWIN, MINGW) or for\n"); printf("Unix/Linux (GCC)\n",PROG); printf("\n"); From 31266b3c1172d0f04181ba1714939ac842263d4c Mon Sep 17 00:00:00 2001 From: All-3kcis Date: Thu, 17 Sep 2015 10:00:32 +0200 Subject: [PATCH 101/205] FIX #3524 (Fatal error: Call to undefined function getRandomPassword() in /htdocs/user/card.php on line 846) --- htdocs/user/card.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index f545e325712..87c60dab1ba 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -841,6 +841,7 @@ if (($action == 'create') || ($action == 'adduserldap')) } else { + require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; // PARTIAL WORKAROUND $generated_fake_api_key=getRandomPassword(false); print ''; From f8f24f7b29d1d60164cf634362cfbd6ac89f46be Mon Sep 17 00:00:00 2001 From: AlainRnet Date: Thu, 17 Sep 2015 10:35:18 +0200 Subject: [PATCH 102/205] Update categorie.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit la navigation entre membre depuis sa catégorie ne fonctionne pas sans ajouter "&type=3" à l'URL --- htdocs/categories/categorie.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/categories/categorie.php b/htdocs/categories/categorie.php index 083edbf6b7e..43803d045bb 100644 --- a/htdocs/categories/categorie.php +++ b/htdocs/categories/categorie.php @@ -419,7 +419,7 @@ else if ($id || $ref) // Ref print ''; print ''; // Login From 8ff41a8ded6fdd5d03a863c3a934a0285fbb6848 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Sep 2015 15:35:51 +0200 Subject: [PATCH 103/205] Enhance performance of option MAIN_OVERWRITE_TRANS_ --- ChangeLog | 7 ++++++ htdocs/core/class/translate.class.php | 30 ++++++++++++------------- htdocs/core/menus/standard/eldy.lib.php | 2 +- htdocs/langs/en_US/companies.lang | 1 + 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index e079038cd01..e9bd9ffe3b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,13 @@ Upgrading to any other version or any other database system is abolutely require make a Dolibarr upgrade. +***** ChangeLog for 3.9 compared to 3.8.* ***** + +WARNING: Following changes may create regression for some external modules, but were necessary to make +Dolibarr better: +- Deprecated hidden option MAIN_USE_CUSTOM_TRANSLATION has been removed. Use MAIN_OVERWRITE_TRANS_xx_YY instead. + + ***** ChangeLog for 3.8 compared to 3.7.* ***** For users: FIX: #2519 diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php index 5d06586fb16..e477bdeb714 100644 --- a/htdocs/core/class/translate.class.php +++ b/htdocs/core/class/translate.class.php @@ -144,7 +144,6 @@ class Translate * If data for file already loaded, do nothing. * All data in translation array are stored in UTF-8 format. * tab_loaded is completed with $domain key. - * Warning: MAIN_USE_CUSTOM_TRANSLATION is an old deprecated feature. Do not use it. It will revert * rule "we keep first entry found with we keep last entry found" so it is probably not what you want to do. * * Value for hash are: 1:Loaded from disk, 2:Not found, 3:Loaded from cache @@ -261,7 +260,7 @@ class Translate $tab=explode('=',$line,2); $key=trim($tab[0]); //print "Domain=$domain, found a string for $tab[0] with value $tab[1]
"; - if ((! empty($conf->global->MAIN_USE_CUSTOM_TRANSLATION) || empty($this->tab_translate[$key])) && isset($tab[1])) // If translation was already found, we must not continue, even if MAIN_FORCELANGDIR is set (MAIN_FORCELANGDIR is to replace lang dir, not to overwrite entries) + if (empty($this->tab_translate[$key]) && isset($tab[1])) // If translation was already found, we must not continue, even if MAIN_FORCELANGDIR is set (MAIN_FORCELANGDIR is to replace lang dir, not to overwrite entries) { $value=trim(preg_replace('/\\n/',"\n",$tab[1])); @@ -297,7 +296,7 @@ class Translate } } - if (empty($conf->global->MAIN_FORCELANGDIR) && empty($conf->global->MAIN_USE_CUSTOM_TRANSLATION)) break; // Break loop on each root dir. If a module has forced dir, we do not stop loop. + if (empty($conf->global->MAIN_FORCELANGDIR)) break; // Break loop on each root dir. If a module has forced dir, we do not stop loop. } } } @@ -330,6 +329,19 @@ class Translate if (empty($this->_tab_loaded[$newdomain])) $this->_tab_loaded[$newdomain]=2; // Marque ce fichier comme non trouve } + + // Overwrite translation + $overwritekey='MAIN_OVERWRITE_TRANS_'.$this->defaultlang; + if (! empty($conf->global->$overwritekey)) // Overwrite translation with key1:newstring1,key2:newstring2 + { + $tmparray=explode(',', $conf->global->$overwritekey); + foreach($tmparray as $tmp) + { + $tmparray2=explode(':',$tmp); + if (! empty($tmparray2[1])) $this->tab_translate[$tmparray2[0]]=$tmparray2[1]; + } + } + // Check to be sure that SeparatorDecimal differs from SeparatorThousand if (! empty($this->tab_translate["SeparatorDecimal"]) && ! empty($this->tab_translate["SeparatorThousand"]) && $this->tab_translate["SeparatorDecimal"] == $this->tab_translate["SeparatorThousand"]) $this->tab_translate["SeparatorThousand"]=''; @@ -410,18 +422,6 @@ class Translate { $str=$this->tab_translate[$key]; - // Overwrite translation (TODO Move this at a higher level when we load tab_translate to avoid doing it for each trans call) - $overwritekey='MAIN_OVERWRITE_TRANS_'.$this->defaultlang; - if (! empty($conf->global->$overwritekey)) // Overwrite translation with key1:newstring1,key2:newstring2 - { - $tmparray=explode(',', $conf->global->$overwritekey); - foreach($tmparray as $tmp) - { - $tmparray2=explode(':',$tmp); - if ($tmparray2[0]==$key) { $str=$tmparray2[1]; break; } - } - } - if (! preg_match('/^Format/',$key)) { //print $str; diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 2a3f43e32cc..3dda4f6df7a 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -629,7 +629,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire); if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire); if (! empty($conf->fournisseur->enabled)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire); - $newmenu->add("/contact/list.php?leftmenu=contacts&type=o", $langs->trans("Others"), 2, $user->rights->societe->contact->lire); + $newmenu->add("/contact/list.php?leftmenu=contacts&type=o", $langs->trans("ContactOthers"), 2, $user->rights->societe->contact->lire); //$newmenu->add("/contact/list.php?userid=$user->id", $langs->trans("MyContacts"), 1, $user->rights->societe->contact->lire); // Categories diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index df44a12ee44..3701925a1f4 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -338,6 +338,7 @@ ProspectLevel=Prospect potential ContactPrivate=Private ContactPublic=Shared ContactVisibility=Visibility +ContactOthers=Other OthersNotLinkedToThirdParty=Others, not linked to a third party ProspectStatus=Prospect status PL_NONE=None From 2cf0f240b96873595d01eae034d90c1a06f6df1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Thu, 17 Sep 2015 16:08:00 +0200 Subject: [PATCH 104/205] Installed FirePHP with composer --- .../includes/firephp/firephp-core/.gitignore | 1 + .../firephp/firephp-core/CHANGELOG.md | 171 ++ .../includes/firephp/firephp-core/README.md | 75 + .../firephp/firephp-core/composer.json | 26 + .../firephp/firephp-core/examples/oo.php | 82 + .../firephp/firephp-core/examples/oo.php4 | 72 + .../firephp-core/examples/procedural.php | 79 + .../firephp-core/examples/procedural.php4 | 69 + .../lib/FirePHPCore/FirePHP.class.php | 1828 +++++++++++++++++ .../lib/FirePHPCore/FirePHP.class.php4 | 1327 ++++++++++++ .../firephp-core/lib/FirePHPCore/fb.php | 275 +++ .../firephp-core/lib/FirePHPCore/fb.php4 | 245 +++ .../firephp/firephp-core/package.json | 43 + .../firephp/firephp-core/program.json | 5 + .../firephp-core/tests/API/newlines.php | 12 + .../tests/FirePHPCore/FirePHPTest.php | 181 ++ .../firephp/firephp-core/tests/TestHelper.php | 55 + .../firephp/firephp-core/tests/phpunit.xml | 2 + .../firephp/firephp-core/workspace/README.md | 19 + .../firephp-core/workspace/lib/project.js | 5 + .../firephp-core/workspace/package.json | 28 + .../firephp-core/workspace/program.json | 78 + .../firephp-core/workspace/scripts/build.js | 164 ++ .../firephp-core/workspace/scripts/publish.js | 65 + .../firephp-core/workspace/tpl/license.tpl.md | 21 + .../workspace/tpl/pear.package.tpl.xml | 61 + .../firephp-core/workspace/tpl/readme.tpl.md | 17 + 27 files changed, 5006 insertions(+) create mode 100644 htdocs/includes/firephp/firephp-core/.gitignore create mode 100644 htdocs/includes/firephp/firephp-core/CHANGELOG.md create mode 100644 htdocs/includes/firephp/firephp-core/README.md create mode 100644 htdocs/includes/firephp/firephp-core/composer.json create mode 100644 htdocs/includes/firephp/firephp-core/examples/oo.php create mode 100644 htdocs/includes/firephp/firephp-core/examples/oo.php4 create mode 100644 htdocs/includes/firephp/firephp-core/examples/procedural.php create mode 100644 htdocs/includes/firephp/firephp-core/examples/procedural.php4 create mode 100644 htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php create mode 100644 htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php4 create mode 100644 htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php create mode 100644 htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php4 create mode 100644 htdocs/includes/firephp/firephp-core/package.json create mode 100644 htdocs/includes/firephp/firephp-core/program.json create mode 100644 htdocs/includes/firephp/firephp-core/tests/API/newlines.php create mode 100644 htdocs/includes/firephp/firephp-core/tests/FirePHPCore/FirePHPTest.php create mode 100644 htdocs/includes/firephp/firephp-core/tests/TestHelper.php create mode 100644 htdocs/includes/firephp/firephp-core/tests/phpunit.xml create mode 100644 htdocs/includes/firephp/firephp-core/workspace/README.md create mode 100644 htdocs/includes/firephp/firephp-core/workspace/lib/project.js create mode 100644 htdocs/includes/firephp/firephp-core/workspace/package.json create mode 100644 htdocs/includes/firephp/firephp-core/workspace/program.json create mode 100644 htdocs/includes/firephp/firephp-core/workspace/scripts/build.js create mode 100644 htdocs/includes/firephp/firephp-core/workspace/scripts/publish.js create mode 100644 htdocs/includes/firephp/firephp-core/workspace/tpl/license.tpl.md create mode 100644 htdocs/includes/firephp/firephp-core/workspace/tpl/pear.package.tpl.xml create mode 100644 htdocs/includes/firephp/firephp-core/workspace/tpl/readme.tpl.md diff --git a/htdocs/includes/firephp/firephp-core/.gitignore b/htdocs/includes/firephp/firephp-core/.gitignore new file mode 100644 index 00000000000..d16386367f7 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/CHANGELOG.md b/htdocs/includes/firephp/firephp-core/CHANGELOG.md new file mode 100644 index 00000000000..d8b0f86df5b --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/CHANGELOG.md @@ -0,0 +1,171 @@ + +TODO: + + * Fix code indenting in PHP 4 code + * Port maxDepth option to PHP 4 code + +2013-04-23 - Release Version: 0.4.0 + + * No changes + +2011-06-22 - Release Version: 0.4.0rc3 + + * Build fixes + +2011-06-20 - Release Version: 0.4.0rc1 + + * (Issue 163) PHP5 class_exists() throws Exception without second parameter + * (Issue 166) Non-utf8 array values replaced with null + * Cleaned up code formatting [sokolov.innokenty@gmail.com] + * Ensure JSON keys are never NULL (due to NULL key in some arrays) + * Better UTF-8 encoding detection + * Code style cleanup (qbbr) + * Changed license to MIT + * Refactored project + +2010-10-26 - Release Version: 0.3.2 + +2010-10-12 - Release Version: 0.3.2rc6 + + * (Issue 154) getRequestHeader uses "getallheaders" even though it doesn't always exist. [25m] + +2010-10-09 - Release Version: 0.3.2rc5 + + * (Issue 153) FirePHP incorrectly double-encodes UTF8 when mbstring.func_overload is enabled + +2010-10-08 - Release Version: 0.3.2rc4 + + * Trigger upgrade message if part of FirePHP 1.0 + * Removed FirePHP/Init.php inclusion logic and only load FirePHP.class.php if not already loaded + +2010-07-19 - Release Version: 0.3.2rc3 + + * Fixed FirePHP/Init.php inclusion logic + +2010-07-19 - Release Version: 0.3.2rc2 + + * (Issue 145) maxDepth option + * Changed maxObjectDepth and maxArrayDepth option defaults to 5 + * Fixed code indentation + +2010-03-05 - Release Version: 0.3.2rc1 + + * (Issue 114) Allow options to be passed on to basic logging wrappers + * (Issue 122) Filter objectStack property of FirePHP class + * (Issue 123) registerErrorHandler(false) by default + * Added setOption() and getOption() methods + * (Issue 117) dump() method argument validation + * Started adding PHPUnit tests + * Some refactoring to support unit testing + * Deprecated setProcessorUrl() and setRendererUrl() + * Check User-Agent and X-FirePHP-Version header to detect FirePHP on client + * (Issue 135) FirePHP 0.4.3 with Firebug 1.5 changes user agent on the fly + * (Issue 112) Error Predefined Constants Not available for PHP 5.x versions + +2008-06-14 - Release Version: 0.3.1 + + * (Issue 108) ignore class name case in object filter + +2009-05-11 - Release Version: 0.3 +2009-05-01 - Release Version: 0.3.rc.1 + + * (Issue 90) PHP4 compatible version of FirePHPCore + * (Issue 98) Thrown exceptions don't send an HTTP 500 if the FirePHP exception handler is enabled + * (Issue 85) Support associative arrays in encodeTable method in FirePHP.class.php + * (Issue 66) Add a new getOptions() public method in API + * (Issue 82) Define $this->options outside of __construct + * (Issue 72) Message error if group name is null + * (Issue 68) registerErrorHandler() and registerExceptionHandler() should returns previous handlers defined + * (Issue 69) Add the missing register handler in the triumvirate (error, exception, assert) + * (Issue 75) [Error & Exception Handling] Option to not exit script execution + * (Issue 83) Exception handler can't throw exceptions + * (Issue 80) Auto/Pre collapsing groups AND Custom group row colors + +2008-11-09 - Release Version: 0.2.1 + + * (Issue 70) Problem when logging resources + +2008-10-21 - Release Version: 0.2.0 + + * Updated version to 0.2.0 + * Switched to using __sleep instead of __wakeup + * Added support to exclude object members when encoding + * Add support to enable/disable logging + +2008-10-17 - Release Version: 0.2.b.8 + + * New implementation for is_utf8() + * (Issue 55) maxObjectDepth Option not working correctly when using TABLE and EXCEPTION Type + * Bugfix for max[Object|Array]Depth when encoding nested array/object graphs + * Bugfix for FB::setOptions() + +2008-10-16 - Release Version: 0.2.b.7 + + * (Issue 45) Truncate dump when string have non utf8 cars + * (Issue 52) logging will not work when firephp object gets stored in the session. + +2008-10-16 - Release Version: 0.2.b.6 + + * (Issue 37) Display file and line information for each log message + * (Issue 51) Limit output of object graphs + * Bugfix for encoding object members set to NULL|false|'' + +2008-10-14 - Release Version: 0.2.b.5 + + * Updated JsonStream wildfire protocol to be more robust + * (Issue 33) PHP error notices running demos + * (Issue 48) Warning: ReflectionProperty::getValue() expects exactly 1 parameter, 0 given + +2008-10-08 - Release Version: 0.2.b.4 + + * Bugfix for logging objects with recursion + +2008-10-08 - Release Version: 0.2.b.3 + + * (Issue 43) Notice message in 0.2b2 + * Added support for PHP's native json_encode() if available + * Revised object encoder to detect object recursion + +2008-10-07 - Release Version: 0.2.b.2 + + * (Issue 28) Need solution for logging private and protected object variables + * Added trace() and table() aliases in FirePHP class + * (Issue 41) Use PHP doc in FirePHP + * (Issue 39) Static logging method for object oriented API + +2008-10-01 - Release Version: 0.2.b.1 + + * Added support for error and exception handling + * Updated min PHP version for PEAR package to 5.2 + * Added version constant for library + * Gave server library it's own wildfire plugin namespace + * Migrated communication protocol to Wildfire JsonStream + * Added support for console groups using "group" and "groupEnd" + * Added support for log, info, warn and error logging aliases + * (Issue 29) problem with TRACE when using with error_handler + * (Issue 33) PHP error notices running demos + * (Issue 12) undefined index php notice + * Removed closing ?> php tags + * (Issue 13) the code in the fb() function has a second return statement that will never be reached + +2008-07-30 - Release Version: 0.1.1.3 + + * Include __className property in JSON string if variable was an object + * Bugfix - Mis-spelt "Exception" in JSON encoding code + +2008-06-13 - Release Version: 0.1.1.1 + + * Bugfix - Standardize windows paths in stack traces + * Bugfix - Display correct stack trace info in windows environments + * Bugfix - Check $_SERVER['HTTP_USER_AGENT'] before returning + +2008-06-13 - Release Version: 0.1.1 + + * Added support for FirePHP::TRACE log style + * Changed license to New BSD License + +2008-06-06 - Release Version: 0.0.2 + + * Bugfix - Added usleep() to header writing loop to ensure unique index + * Bugfix - Ensure chunk_split does not generate trailing "\n" with empty data header + * Added support for FirePHP::TABLE log style diff --git a/htdocs/includes/firephp/firephp-core/README.md b/htdocs/includes/firephp/firephp-core/README.md new file mode 100644 index 00000000000..b1b32f842ff --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/README.md @@ -0,0 +1,75 @@ +FirePHPCore +=========== + +**Status: stable** + +> **FirePHP is an advanced logging system that can display PHP variables in the browser as an application is navigated.** +> All communication is out of band to the application meaning that the logging data will not interfere with the normal functioning of the application. + +This project contains the *FirePHPCore* PHP server library and provides a development environment (see `./workspace/`) for working on *FirePHPCore*. + + +Usage +===== + +See [Install/Traditional: FirePHPCore](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/Configuration/Traditional) in the +[FirePHP 1.0 Documentation](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/). + + +Testing +======= + + cd tests + phpunit . + + +Support & Feedback +================== + +See [Support](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/OpenSource#support) in the [FirePHP 1.0 Documentation](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/). + + +Contribute +========== + +See [Contribute](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/OpenSource#contribute) in the [FirePHP 1.0 Documentation](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/). + + +Author +====== + +This project is authored and maintained by [Christoph Dorn](http://www.christophdorn.com/). + + +Documentation License +===================== + +[Creative Commons Attribution-NonCommercial-ShareAlike 3.0](http://creativecommons.org/licenses/by-nc-sa/3.0/) + +Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + + +Code License +============ + +[MIT License](http://www.opensource.org/licenses/mit-license.php) + +Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/htdocs/includes/firephp/firephp-core/composer.json b/htdocs/includes/firephp/firephp-core/composer.json new file mode 100644 index 00000000000..7cab85a9f8b --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/composer.json @@ -0,0 +1,26 @@ +{ + "name": "firephp/firephp-core", + "description": "Traditional FirePHPCore library for sending PHP variables to the browser.", + "type": "library", + "homepage": "https://github.com/firephp/firephp-core", + "license": "MIT", + "authors": [ + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com", + "homepage": "http://christophdorn.com" + } + ], + "support": { + "forum": "http://groups.google.com/group/firephp-dev", + "issues": "https://github.com/firephp/firephp-core/issues", + "source": "https://github.com/firephp/firephp-core" + }, + "autoload": { + "classmap": [ + "lib/FirePHPCore/FirePHP.class.php", + "lib/FirePHPCore/fb.php" + ] + } +} + diff --git a/htdocs/includes/firephp/firephp-core/examples/oo.php b/htdocs/includes/firephp/firephp-core/examples/oo.php new file mode 100644 index 00000000000..f5f39875c94 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/examples/oo.php @@ -0,0 +1,82 @@ +, Copyright 2007, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** */ + + +/* NOTE: You must have the FirePHPCore library in your include path */ + +set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path()); + + +require('FirePHPCore/FirePHP.class.php'); + +/* NOTE: You must have Output Buffering enabled via + ob_start() or output_buffering ini directive. */ + + +$firephp = FirePHP::getInstance(true); + + +$firephp->fb('Hello World'); /* Defaults to FirePHP::LOG */ + +$firephp->fb('Log message' ,FirePHP::LOG); +$firephp->fb('Info message' ,FirePHP::INFO); +$firephp->fb('Warn message' ,FirePHP::WARN); +$firephp->fb('Error message',FirePHP::ERROR); + +$firephp->fb('Message with label','Label',FirePHP::LOG); + +$firephp->fb(array('key1'=>'val1', + 'key2'=>array(array('v1','v2'),'v3')), + 'TestArray',FirePHP::LOG); + +function test($Arg1) { + throw new Exception('Test Exception'); +} +try { + test(array('Hello'=>'World')); +} catch(Exception $e) { + /* Log exception including stack trace & variables */ + $firephp->fb($e); +} + +$firephp->fb('Backtrace to here',FirePHP::TRACE); + +$firephp->fb(array('2 SQL queries took 0.06 seconds',array( + array('SQL Statement','Time','Result'), + array('SELECT * FROM Foo','0.02',array('row1','row2')), + array('SELECT * FROM Bar','0.04',array('row1','row2')) + )),FirePHP::TABLE); + +/* Will show only in "Server" tab for the request */ +$firephp->fb(apache_request_headers(),'RequestHeaders',FirePHP::DUMP); + + +print 'Hello World'; diff --git a/htdocs/includes/firephp/firephp-core/examples/oo.php4 b/htdocs/includes/firephp/firephp-core/examples/oo.php4 new file mode 100644 index 00000000000..75ec1ee3f9e --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/examples/oo.php4 @@ -0,0 +1,72 @@ +, Copyright 2007, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** */ + + +/* NOTE: You must have the FirePHPCore library in your include path */ + +set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path()); + + +require('FirePHPCore/FirePHP.class.php4'); + +/* NOTE: You must have Output Buffering enabled via + ob_start() or output_buffering ini directive. */ + + +$firephp =& FirePHP::getInstance(true); + + +$firephp->fb('Hello World'); /* Defaults to FirePHP::LOG */ + +$firephp->fb('Log message' ,FirePHP_LOG); +$firephp->fb('Info message' ,FirePHP_INFO); +$firephp->fb('Warn message' ,FirePHP_WARN); +$firephp->fb('Error message',FirePHP_ERROR); + +$firephp->fb('Message with label','Label',FirePHP_LOG); + +$firephp->fb(array('key1'=>'val1', + 'key2'=>array(array('v1','v2'),'v3')), + 'TestArray',FirePHP_LOG); + +$firephp->fb('Backtrace to here',FirePHP_TRACE); + +$firephp->fb(array('2 SQL queries took 0.06 seconds',array( + array('SQL Statement','Time','Result'), + array('SELECT * FROM Foo','0.02',array('row1','row2')), + array('SELECT * FROM Bar','0.04',array('row1','row2')) + )),FirePHP_TABLE); + +/* Will show only in "Server" tab for the request */ +$firephp->fb(apache_request_headers(),'RequestHeaders',FirePHP_DUMP); + + +print 'Hello World'; diff --git a/htdocs/includes/firephp/firephp-core/examples/procedural.php b/htdocs/includes/firephp/firephp-core/examples/procedural.php new file mode 100644 index 00000000000..d1d3920bf4a --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/examples/procedural.php @@ -0,0 +1,79 @@ +, Copyright 2007, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** */ + + +/* NOTE: You must have the FirePHPCore library in your include path */ + +set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path()); + + +require('FirePHPCore/fb.php'); + +/* NOTE: You must have Output Buffering enabled via + ob_start() or output_buffering ini directive. */ + +fb('Hello World'); /* Defaults to FirePHP::LOG */ + +fb('Log message' ,FirePHP::LOG); +fb('Info message' ,FirePHP::INFO); +fb('Warn message' ,FirePHP::WARN); +fb('Error message',FirePHP::ERROR); + +fb('Message with label','Label',FirePHP::LOG); + +fb(array('key1'=>'val1', + 'key2'=>array(array('v1','v2'),'v3')), + 'TestArray',FirePHP::LOG); + +function test($Arg1) { + throw new Exception('Test Exception'); +} +try { + test(array('Hello'=>'World')); +} catch(Exception $e) { + /* Log exception including stack trace & variables */ + fb($e); +} + +fb('Backtrace to here',FirePHP::TRACE); + +fb(array('2 SQL queries took 0.06 seconds',array( + array('SQL Statement','Time','Result'), + array('SELECT * FROM Foo','0.02',array('row1','row2')), + array('SELECT * FROM Bar','0.04',array('row1','row2')) + )),FirePHP::TABLE); + +/* Will show only in "Server" tab for the request */ +fb(apache_request_headers(),'RequestHeaders',FirePHP::DUMP); + + +print 'Hello World'; + diff --git a/htdocs/includes/firephp/firephp-core/examples/procedural.php4 b/htdocs/includes/firephp/firephp-core/examples/procedural.php4 new file mode 100644 index 00000000000..28eb7dc17e8 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/examples/procedural.php4 @@ -0,0 +1,69 @@ +, Copyright 2007, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** */ + + +/* NOTE: You must have the FirePHPCore library in your include path */ + +set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path()); + + +require('FirePHPCore/fb.php'); + +/* NOTE: You must have Output Buffering enabled via + ob_start() or output_buffering ini directive. */ + +fb('Hello World'); /* Defaults to FirePHP::LOG */ + +fb('Log message' ,FirePHP_LOG); +fb('Info message' ,FirePHP_INFO); +fb('Warn message' ,FirePHP_WARN); +fb('Error message',FirePHP_ERROR); + +fb('Message with label','Label',FirePHP_LOG); + +fb(array('key1'=>'val1', + 'key2'=>array(array('v1','v2'),'v3')), + 'TestArray',FirePHP_LOG); + +fb('Backtrace to here',FirePHP_TRACE); + +fb(array('2 SQL queries took 0.06 seconds',array( + array('SQL Statement','Time','Result'), + array('SELECT * FROM Foo','0.02',array('row1','row2')), + array('SELECT * FROM Bar','0.04',array('row1','row2')) + )),FirePHP_TABLE); + +/* Will show only in "Server" tab for the request */ +fb(apache_request_headers(),'RequestHeaders',FirePHP_DUMP); + + +print 'Hello World'; + diff --git a/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php new file mode 100644 index 00000000000..65d83b56dca --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php @@ -0,0 +1,1828 @@ +, Copyright 2007, New BSD License +// - qbbr, Sokolov Innokenty , Copyright 2011, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/** + * *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ + +/** + * @see http://code.google.com/p/firephp/issues/detail?id=112 + */ +if (!defined('E_STRICT')) { + define('E_STRICT', 2048); +} +if (!defined('E_RECOVERABLE_ERROR')) { + define('E_RECOVERABLE_ERROR', 4096); +} +if (!defined('E_DEPRECATED')) { + define('E_DEPRECATED', 8192); +} +if (!defined('E_USER_DEPRECATED')) { + define('E_USER_DEPRECATED', 16384); +} + +/** + * Sends the given data to the FirePHP Firefox Extension. + * The data can be displayed in the Firebug Console or in the + * "Server" request tab. + * + * For more information see: http://www.firephp.org/ + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ +class FirePHP { + + /** + * FirePHP version + * + * @var string + */ + const VERSION = '0.3'; // @pinf replace '0.3' with '%%VERSION%%' + + /** + * Firebug LOG level + * + * Logs a message to firebug console. + * + * @var string + */ + const LOG = 'LOG'; + + /** + * Firebug INFO level + * + * Logs a message to firebug console and displays an info icon before the message. + * + * @var string + */ + const INFO = 'INFO'; + + /** + * Firebug WARN level + * + * Logs a message to firebug console, displays an warning icon before the message and colors the line turquoise. + * + * @var string + */ + const WARN = 'WARN'; + + /** + * Firebug ERROR level + * + * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count. + * + * @var string + */ + const ERROR = 'ERROR'; + + /** + * Dumps a variable to firebug's server panel + * + * @var string + */ + const DUMP = 'DUMP'; + + /** + * Displays a stack trace in firebug console + * + * @var string + */ + const TRACE = 'TRACE'; + + /** + * Displays an exception in firebug console + * + * Increments the firebug error count. + * + * @var string + */ + const EXCEPTION = 'EXCEPTION'; + + /** + * Displays an table in firebug console + * + * @var string + */ + const TABLE = 'TABLE'; + + /** + * Starts a group in firebug console + * + * @var string + */ + const GROUP_START = 'GROUP_START'; + + /** + * Ends a group in firebug console + * + * @var string + */ + const GROUP_END = 'GROUP_END'; + + /** + * Singleton instance of FirePHP + * + * @var FirePHP + */ + protected static $instance = null; + + /** + * Flag whether we are logging from within the exception handler + * + * @var boolean + */ + protected $inExceptionHandler = false; + + /** + * Flag whether to throw PHP errors that have been converted to ErrorExceptions + * + * @var boolean + */ + protected $throwErrorExceptions = true; + + /** + * Flag whether to convert PHP assertion errors to Exceptions + * + * @var boolean + */ + protected $convertAssertionErrorsToExceptions = true; + + /** + * Flag whether to throw PHP assertion errors that have been converted to Exceptions + * + * @var boolean + */ + protected $throwAssertionExceptions = false; + + /** + * Wildfire protocol message index + * + * @var integer + */ + protected $messageIndex = 1; + + /** + * Options for the library + * + * @var array + */ + protected $options = array('maxDepth' => 10, + 'maxObjectDepth' => 5, + 'maxArrayDepth' => 5, + 'useNativeJsonEncode' => true, + 'includeLineNumbers' => true); + + /** + * Filters used to exclude object members when encoding + * + * @var array + */ + protected $objectFilters = array( + 'firephp' => array('objectStack', 'instance', 'json_objectStack'), + 'firephp_test_class' => array('objectStack', 'instance', 'json_objectStack') + ); + + /** + * A stack of objects used to detect recursion during object encoding + * + * @var object + */ + protected $objectStack = array(); + + /** + * Flag to enable/disable logging + * + * @var boolean + */ + protected $enabled = true; + + /** + * The insight console to log to if applicable + * + * @var object + */ + protected $logToInsightConsole = null; + + /** + * When the object gets serialized only include specific object members. + * + * @return array + */ + public function __sleep() + { + return array('options', 'objectFilters', 'enabled'); + } + + /** + * Gets singleton instance of FirePHP + * + * @param boolean $autoCreate + * @return FirePHP + */ + public static function getInstance($autoCreate = false) + { + if ($autoCreate === true && !self::$instance) { + self::init(); + } + return self::$instance; + } + + /** + * Creates FirePHP object and stores it for singleton access + * + * @return FirePHP + */ + public static function init() + { + return self::setInstance(new self()); + } + + /** + * Set the instance of the FirePHP singleton + * + * @param FirePHP $instance The FirePHP object instance + * @return FirePHP + */ + public static function setInstance($instance) + { + return self::$instance = $instance; + } + + /** + * Set an Insight console to direct all logging calls to + * + * @param object $console The console object to log to + * @return void + */ + public function setLogToInsightConsole($console) + { + if (is_string($console)) { + if (get_class($this) != 'FirePHP_Insight' && !is_subclass_of($this, 'FirePHP_Insight')) { + throw new Exception('FirePHP instance not an instance or subclass of FirePHP_Insight!'); + } + $this->logToInsightConsole = $this->to('request')->console($console); + } else { + $this->logToInsightConsole = $console; + } + } + + /** + * Enable and disable logging to Firebug + * + * @param boolean $enabled TRUE to enable, FALSE to disable + * @return void + */ + public function setEnabled($enabled) + { + $this->enabled = $enabled; + } + + /** + * Check if logging is enabled + * + * @return boolean TRUE if enabled + */ + public function getEnabled() + { + return $this->enabled; + } + + /** + * Specify a filter to be used when encoding an object + * + * Filters are used to exclude object members. + * + * @param string $class The class name of the object + * @param array $filter An array of members to exclude + * @return void + */ + public function setObjectFilter($class, $filter) + { + $this->objectFilters[strtolower($class)] = $filter; + } + + /** + * Set some options for the library + * + * Options: + * - maxDepth: The maximum depth to traverse (default: 10) + * - maxObjectDepth: The maximum depth to traverse objects (default: 5) + * - maxArrayDepth: The maximum depth to traverse arrays (default: 5) + * - useNativeJsonEncode: If true will use json_encode() (default: true) + * - includeLineNumbers: If true will include line numbers and filenames (default: true) + * + * @param array $options The options to be set + * @return void + */ + public function setOptions($options) + { + $this->options = array_merge($this->options, $options); + } + + /** + * Get options from the library + * + * @return array The currently set options + */ + public function getOptions() + { + return $this->options; + } + + /** + * Set an option for the library + * + * @param string $name + * @param mixed $value + * @return void + * @throws Exception + */ + public function setOption($name, $value) + { + if (!isset($this->options[$name])) { + throw $this->newException('Unknown option: ' . $name); + } + $this->options[$name] = $value; + } + + /** + * Get an option from the library + * + * @param string $name + * @return mixed + * @throws Exception + */ + public function getOption($name) + { + if (!isset($this->options[$name])) { + throw $this->newException('Unknown option: ' . $name); + } + return $this->options[$name]; + } + + /** + * Register FirePHP as your error handler + * + * Will throw exceptions for each php error. + * + * @return mixed Returns a string containing the previously defined error handler (if any) + */ + public function registerErrorHandler($throwErrorExceptions = false) + { + //NOTE: The following errors will not be caught by this error handler: + // E_ERROR, E_PARSE, E_CORE_ERROR, + // E_CORE_WARNING, E_COMPILE_ERROR, + // E_COMPILE_WARNING, E_STRICT + + $this->throwErrorExceptions = $throwErrorExceptions; + + return set_error_handler(array($this, 'errorHandler')); + } + + /** + * FirePHP's error handler + * + * Throws exception for each php error that will occur. + * + * @param integer $errno + * @param string $errstr + * @param string $errfile + * @param integer $errline + * @param array $errcontext + */ + public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext) + { + // Don't throw exception if error reporting is switched off + if (error_reporting() == 0) { + return; + } + // Only throw exceptions for errors we are asking for + if (error_reporting() & $errno) { + + $exception = new ErrorException($errstr, 0, $errno, $errfile, $errline); + if ($this->throwErrorExceptions) { + throw $exception; + } else { + $this->fb($exception); + } + } + } + + /** + * Register FirePHP as your exception handler + * + * @return mixed Returns the name of the previously defined exception handler, + * or NULL on error. + * If no previous handler was defined, NULL is also returned. + */ + public function registerExceptionHandler() + { + return set_exception_handler(array($this, 'exceptionHandler')); + } + + /** + * FirePHP's exception handler + * + * Logs all exceptions to your firebug console and then stops the script. + * + * @param Exception $exception + * @throws Exception + */ + function exceptionHandler($exception) + { + $this->inExceptionHandler = true; + + header('HTTP/1.1 500 Internal Server Error'); + + try { + $this->fb($exception); + } catch (Exception $e) { + echo 'We had an exception: ' . $e; + } + + $this->inExceptionHandler = false; + } + + /** + * Register FirePHP driver as your assert callback + * + * @param boolean $convertAssertionErrorsToExceptions + * @param boolean $throwAssertionExceptions + * @return mixed Returns the original setting or FALSE on errors + */ + public function registerAssertionHandler($convertAssertionErrorsToExceptions = true, $throwAssertionExceptions = false) + { + $this->convertAssertionErrorsToExceptions = $convertAssertionErrorsToExceptions; + $this->throwAssertionExceptions = $throwAssertionExceptions; + + if ($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) { + throw $this->newException('Cannot throw assertion exceptions as assertion errors are not being converted to exceptions!'); + } + + return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler')); + } + + /** + * FirePHP's assertion handler + * + * Logs all assertions to your firebug console and then stops the script. + * + * @param string $file File source of assertion + * @param integer $line Line source of assertion + * @param mixed $code Assertion code + */ + public function assertionHandler($file, $line, $code) + { + if ($this->convertAssertionErrorsToExceptions) { + + $exception = new ErrorException('Assertion Failed - Code[ ' . $code . ' ]', 0, null, $file, $line); + + if ($this->throwAssertionExceptions) { + throw $exception; + } else { + $this->fb($exception); + } + + } else { + $this->fb($code, 'Assertion Failed', FirePHP::ERROR, array('File' => $file, 'Line' => $line)); + } + } + + /** + * Start a group for following messages. + * + * Options: + * Collapsed: [true|false] + * Color: [#RRGGBB|ColorName] + * + * @param string $name + * @param array $options OPTIONAL Instructions on how to log the group + * @return true + * @throws Exception + */ + public function group($name, $options = null) + { + + if (!$name) { + throw $this->newException('You must specify a label for the group!'); + } + + if ($options) { + if (!is_array($options)) { + throw $this->newException('Options must be defined as an array!'); + } + if (array_key_exists('Collapsed', $options)) { + $options['Collapsed'] = ($options['Collapsed']) ? 'true' : 'false'; + } + } + + return $this->fb(null, $name, FirePHP::GROUP_START, $options); + } + + /** + * Ends a group you have started before + * + * @return true + * @throws Exception + */ + public function groupEnd() + { + return $this->fb(null, null, FirePHP::GROUP_END); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::LOG + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public function log($object, $label = null, $options = array()) + { + return $this->fb($object, $label, FirePHP::LOG, $options); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::INFO + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public function info($object, $label = null, $options = array()) + { + return $this->fb($object, $label, FirePHP::INFO, $options); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::WARN + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public function warn($object, $label = null, $options = array()) + { + return $this->fb($object, $label, FirePHP::WARN, $options); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::ERROR + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public function error($object, $label = null, $options = array()) + { + return $this->fb($object, $label, FirePHP::ERROR, $options); + } + + /** + * Dumps key and variable to firebug server panel + * + * @see FirePHP::DUMP + * @param string $key + * @param mixed $variable + * @return true + * @throws Exception + */ + public function dump($key, $variable, $options = array()) + { + if (!is_string($key)) { + throw $this->newException('Key passed to dump() is not a string'); + } + if (strlen($key) > 100) { + throw $this->newException('Key passed to dump() is longer than 100 characters'); + } + if (!preg_match_all('/^[a-zA-Z0-9-_\.:]*$/', $key, $m)) { + throw $this->newException('Key passed to dump() contains invalid characters [a-zA-Z0-9-_\.:]'); + } + return $this->fb($variable, $key, FirePHP::DUMP, $options); + } + + /** + * Log a trace in the firebug console + * + * @see FirePHP::TRACE + * @param string $label + * @return true + * @throws Exception + */ + public function trace($label) + { + return $this->fb($label, FirePHP::TRACE); + } + + /** + * Log a table in the firebug console + * + * @see FirePHP::TABLE + * @param string $label + * @param string $table + * @return true + * @throws Exception + */ + public function table($label, $table, $options = array()) + { + return $this->fb($table, $label, FirePHP::TABLE, $options); + } + + /** + * Insight API wrapper + * + * @see Insight_Helper::to() + */ + public static function to() + { + $instance = self::getInstance(); + if (!method_exists($instance, '_to')) { + throw new Exception('FirePHP::to() implementation not loaded'); + } + $args = func_get_args(); + return call_user_func_array(array($instance, '_to'), $args); + } + + /** + * Insight API wrapper + * + * @see Insight_Helper::plugin() + */ + public static function plugin() + { + $instance = self::getInstance(); + if (!method_exists($instance, '_plugin')) { + throw new Exception('FirePHP::plugin() implementation not loaded'); + } + $args = func_get_args(); + return call_user_func_array(array($instance, '_plugin'), $args); + } + + /** + * Check if FirePHP is installed on client + * + * @return boolean + */ + public function detectClientExtension() + { + // Check if FirePHP is installed on client via User-Agent header + if (@preg_match_all('/\sFirePHP\/([\.\d]*)\s?/si', $this->getUserAgent(), $m) && + version_compare($m[1][0], '0.0.6', '>=')) { + return true; + } else + // Check if FirePHP is installed on client via X-FirePHP-Version header + if (@preg_match_all('/^([\.\d]*)$/si', $this->getRequestHeader('X-FirePHP-Version'), $m) && + version_compare($m[1][0], '0.0.6', '>=')) { + return true; + } + return false; + } + + /** + * Log varible to Firebug + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $object The variable to be logged + * @return boolean Return TRUE if message was added to headers, FALSE otherwise + * @throws Exception + */ + public function fb($object) + { + if ($this instanceof FirePHP_Insight && method_exists($this, '_logUpgradeClientMessage')) { + if (!FirePHP_Insight::$upgradeClientMessageLogged) { // avoid infinite recursion as _logUpgradeClientMessage() logs a message + $this->_logUpgradeClientMessage(); + } + } + + static $insightGroupStack = array(); + + if (!$this->getEnabled()) { + return false; + } + + if ($this->headersSent($filename, $linenum)) { + // If we are logging from within the exception handler we cannot throw another exception + if ($this->inExceptionHandler) { + // Simply echo the error out to the page + echo '
FirePHP ERROR: Headers already sent in ' . $filename . ' on line ' . $linenum . '. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.
'; + } else { + throw $this->newException('Headers already sent in ' . $filename . ' on line ' . $linenum . '. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.'); + } + } + + $type = null; + $label = null; + $options = array(); + + if (func_num_args() == 1) { + } else if (func_num_args() == 2) { + switch (func_get_arg(1)) { + case self::LOG: + case self::INFO: + case self::WARN: + case self::ERROR: + case self::DUMP: + case self::TRACE: + case self::EXCEPTION: + case self::TABLE: + case self::GROUP_START: + case self::GROUP_END: + $type = func_get_arg(1); + break; + default: + $label = func_get_arg(1); + break; + } + } else if (func_num_args() == 3) { + $type = func_get_arg(2); + $label = func_get_arg(1); + } else if (func_num_args() == 4) { + $type = func_get_arg(2); + $label = func_get_arg(1); + $options = func_get_arg(3); + } else { + throw $this->newException('Wrong number of arguments to fb() function!'); + } + + if ($this->logToInsightConsole !== null && (get_class($this) == 'FirePHP_Insight' || is_subclass_of($this, 'FirePHP_Insight'))) { + $trace = debug_backtrace(); + if (!$trace) return false; + for ($i = 0; $i < sizeof($trace); $i++) { + if (isset($trace[$i]['class'])) { + if ($trace[$i]['class'] == 'FirePHP' || $trace[$i]['class'] == 'FB') { + continue; + } + } + if (isset($trace[$i]['file'])) { + $path = $this->_standardizePath($trace[$i]['file']); + if (substr($path, -18, 18) == 'FirePHPCore/fb.php' || substr($path, -29, 29) == 'FirePHPCore/FirePHP.class.php') { + continue; + } + } + if (isset($trace[$i]['function']) && $trace[$i]['function'] == 'fb' && + isset($trace[$i - 1]['file']) && substr($this->_standardizePath($trace[$i - 1]['file']), -18, 18) == 'FirePHPCore/fb.php') { + continue; + } + if (isset($trace[$i]['class']) && $trace[$i]['class'] == 'FB' && + isset($trace[$i - 1]['file']) && substr($this->_standardizePath($trace[$i - 1]['file']), -18, 18) == 'FirePHPCore/fb.php') { + continue; + } + break; + } + // adjust trace offset + $msg = $this->logToInsightConsole->option('encoder.trace.offsetAdjustment', $i); + + if ($object instanceof Exception) { + $type = self::EXCEPTION; + } + if ($label && $type != self::TABLE && $type != self::GROUP_START) { + $msg = $msg->label($label); + } + switch ($type) { + case self::DUMP: + case self::LOG: + return $msg->log($object); + case self::INFO: + return $msg->info($object); + case self::WARN: + return $msg->warn($object); + case self::ERROR: + return $msg->error($object); + case self::TRACE: + return $msg->trace($object); + case self::EXCEPTION: + return $this->plugin('error')->handleException($object, $msg); + case self::TABLE: + if (isset($object[0]) && !is_string($object[0]) && $label) { + $object = array($label, $object); + } + return $msg->table($object[0], array_slice($object[1], 1), $object[1][0]); + case self::GROUP_START: + $insightGroupStack[] = $msg->group(md5($label))->open(); + return $msg->log($label); + case self::GROUP_END: + if (count($insightGroupStack) == 0) { + throw new Error('Too many groupEnd() as opposed to group() calls!'); + } + $group = array_pop($insightGroupStack); + return $group->close(); + default: + return $msg->log($object); + } + } + + if (!$this->detectClientExtension()) { + return false; + } + + $meta = array(); + $skipFinalObjectEncode = false; + + if ($object instanceof Exception) { + + $meta['file'] = $this->_escapeTraceFile($object->getFile()); + $meta['line'] = $object->getLine(); + + $trace = $object->getTrace(); + if ($object instanceof ErrorException + && isset($trace[0]['function']) + && $trace[0]['function'] == 'errorHandler' + && isset($trace[0]['class']) + && $trace[0]['class'] == 'FirePHP') { + + $severity = false; + switch ($object->getSeverity()) { + case E_WARNING: + $severity = 'E_WARNING'; + break; + + case E_NOTICE: + $severity = 'E_NOTICE'; + break; + + case E_USER_ERROR: + $severity = 'E_USER_ERROR'; + break; + + case E_USER_WARNING: + $severity = 'E_USER_WARNING'; + break; + + case E_USER_NOTICE: + $severity = 'E_USER_NOTICE'; + break; + + case E_STRICT: + $severity = 'E_STRICT'; + break; + + case E_RECOVERABLE_ERROR: + $severity = 'E_RECOVERABLE_ERROR'; + break; + + case E_DEPRECATED: + $severity = 'E_DEPRECATED'; + break; + + case E_USER_DEPRECATED: + $severity = 'E_USER_DEPRECATED'; + break; + } + + $object = array('Class' => get_class($object), + 'Message' => $severity . ': ' . $object->getMessage(), + 'File' => $this->_escapeTraceFile($object->getFile()), + 'Line' => $object->getLine(), + 'Type' => 'trigger', + 'Trace' => $this->_escapeTrace(array_splice($trace, 2))); + $skipFinalObjectEncode = true; + } else { + $object = array('Class' => get_class($object), + 'Message' => $object->getMessage(), + 'File' => $this->_escapeTraceFile($object->getFile()), + 'Line' => $object->getLine(), + 'Type' => 'throw', + 'Trace' => $this->_escapeTrace($trace)); + $skipFinalObjectEncode = true; + } + $type = self::EXCEPTION; + + } else if ($type == self::TRACE) { + + $trace = debug_backtrace(); + if (!$trace) return false; + for ($i = 0; $i < sizeof($trace); $i++) { + + if (isset($trace[$i]['class']) + && isset($trace[$i]['file']) + && ($trace[$i]['class'] == 'FirePHP' + || $trace[$i]['class'] == 'FB') + && (substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php' + || substr($this->_standardizePath($trace[$i]['file']), -29, 29) == 'FirePHPCore/FirePHP.class.php')) { + /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */ + } else + if (isset($trace[$i]['class']) + && isset($trace[$i+1]['file']) + && $trace[$i]['class'] == 'FirePHP' + && substr($this->_standardizePath($trace[$i + 1]['file']), -18, 18) == 'FirePHPCore/fb.php') { + /* Skip fb() */ + } else + if ($trace[$i]['function'] == 'fb' + || $trace[$i]['function'] == 'trace' + || $trace[$i]['function'] == 'send') { + + $object = array('Class' => isset($trace[$i]['class']) ? $trace[$i]['class'] : '', + 'Type' => isset($trace[$i]['type']) ? $trace[$i]['type'] : '', + 'Function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : '', + 'Message' => $trace[$i]['args'][0], + 'File' => isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : '', + 'Line' => isset($trace[$i]['line']) ? $trace[$i]['line'] : '', + 'Args' => isset($trace[$i]['args']) ? $this->encodeObject($trace[$i]['args']) : '', + 'Trace' => $this->_escapeTrace(array_splice($trace, $i + 1))); + + $skipFinalObjectEncode = true; + $meta['file'] = isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : ''; + $meta['line'] = isset($trace[$i]['line']) ? $trace[$i]['line'] : ''; + break; + } + } + + } else + if ($type == self::TABLE) { + + if (isset($object[0]) && is_string($object[0])) { + $object[1] = $this->encodeTable($object[1]); + } else { + $object = $this->encodeTable($object); + } + + $skipFinalObjectEncode = true; + + } else if ($type == self::GROUP_START) { + + if (!$label) { + throw $this->newException('You must specify a label for the group!'); + } + + } else { + if ($type === null) { + $type = self::LOG; + } + } + + if ($this->options['includeLineNumbers']) { + if (!isset($meta['file']) || !isset($meta['line'])) { + + $trace = debug_backtrace(); + for ($i = 0; $trace && $i < sizeof($trace); $i++) { + + if (isset($trace[$i]['class']) + && isset($trace[$i]['file']) + && ($trace[$i]['class'] == 'FirePHP' + || $trace[$i]['class'] == 'FB') + && (substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php' + || substr($this->_standardizePath($trace[$i]['file']), -29, 29) == 'FirePHPCore/FirePHP.class.php')) { + /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */ + } else + if (isset($trace[$i]['class']) + && isset($trace[$i + 1]['file']) + && $trace[$i]['class'] == 'FirePHP' + && substr($this->_standardizePath($trace[$i + 1]['file']), -18, 18) == 'FirePHPCore/fb.php') { + /* Skip fb() */ + } else + if (isset($trace[$i]['file']) + && substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php') { + /* Skip FB::fb() */ + } else { + $meta['file'] = isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : ''; + $meta['line'] = isset($trace[$i]['line']) ? $trace[$i]['line'] : ''; + break; + } + } + } + } else { + unset($meta['file']); + unset($meta['line']); + } + + $this->setHeader('X-Wf-Protocol-1', 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2'); + $this->setHeader('X-Wf-1-Plugin-1', 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/' . self::VERSION); + + $structureIndex = 1; + if ($type == self::DUMP) { + $structureIndex = 2; + $this->setHeader('X-Wf-1-Structure-2', 'http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1'); + } else { + $this->setHeader('X-Wf-1-Structure-1', 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1'); + } + + if ($type == self::DUMP) { + $msg = '{"' . $label . '":' . $this->jsonEncode($object, $skipFinalObjectEncode) . '}'; + } else { + $msgMeta = $options; + $msgMeta['Type'] = $type; + if ($label !== null) { + $msgMeta['Label'] = $label; + } + if (isset($meta['file']) && !isset($msgMeta['File'])) { + $msgMeta['File'] = $meta['file']; + } + if (isset($meta['line']) && !isset($msgMeta['Line'])) { + $msgMeta['Line'] = $meta['line']; + } + $msg = '[' . $this->jsonEncode($msgMeta) . ',' . $this->jsonEncode($object, $skipFinalObjectEncode) . ']'; + } + + $parts = explode("\n", chunk_split($msg, 5000, "\n")); + + for ($i = 0; $i < count($parts); $i++) { + + $part = $parts[$i]; + if ($part) { + + if (count($parts) > 2) { + // Message needs to be split into multiple parts + $this->setHeader('X-Wf-1-' . $structureIndex . '-' . '1-' . $this->messageIndex, + (($i == 0) ? strlen($msg) : '') + . '|' . $part . '|' + . (($i < count($parts) - 2) ? '\\' : '')); + } else { + $this->setHeader('X-Wf-1-' . $structureIndex . '-' . '1-' . $this->messageIndex, + strlen($part) . '|' . $part . '|'); + } + + $this->messageIndex++; + + if ($this->messageIndex > 99999) { + throw $this->newException('Maximum number (99,999) of messages reached!'); + } + } + } + + $this->setHeader('X-Wf-1-Index', $this->messageIndex - 1); + + return true; + } + + /** + * Standardizes path for windows systems. + * + * @param string $path + * @return string + */ + protected function _standardizePath($path) + { + return preg_replace('/\\\\+/', '/', $path); + } + + /** + * Escape trace path for windows systems + * + * @param array $trace + * @return array + */ + protected function _escapeTrace($trace) + { + if (!$trace) return $trace; + for ($i = 0; $i < sizeof($trace); $i++) { + if (isset($trace[$i]['file'])) { + $trace[$i]['file'] = $this->_escapeTraceFile($trace[$i]['file']); + } + if (isset($trace[$i]['args'])) { + $trace[$i]['args'] = $this->encodeObject($trace[$i]['args']); + } + } + return $trace; + } + + /** + * Escape file information of trace for windows systems + * + * @param string $file + * @return string + */ + protected function _escapeTraceFile($file) + { + /* Check if we have a windows filepath */ + if (strpos($file, '\\')) { + /* First strip down to single \ */ + + $file = preg_replace('/\\\\+/', '\\', $file); + + return $file; + } + return $file; + } + + /** + * Check if headers have already been sent + * + * @param string $filename + * @param integer $linenum + */ + protected function headersSent(&$filename, &$linenum) + { + return headers_sent($filename, $linenum); + } + + /** + * Send header + * + * @param string $name + * @param string $value + */ + protected function setHeader($name, $value) + { + return header($name . ': ' . $value); + } + + /** + * Get user agent + * + * @return string|false + */ + protected function getUserAgent() + { + if (!isset($_SERVER['HTTP_USER_AGENT'])) return false; + return $_SERVER['HTTP_USER_AGENT']; + } + + /** + * Get all request headers + * + * @return array + */ + public static function getAllRequestHeaders() + { + static $_cachedHeaders = false; + if ($_cachedHeaders !== false) { + return $_cachedHeaders; + } + $headers = array(); + if (function_exists('getallheaders')) { + foreach (getallheaders() as $name => $value) { + $headers[strtolower($name)] = $value; + } + } else { + foreach ($_SERVER as $name => $value) { + if (substr($name, 0, 5) == 'HTTP_') { + $headers[strtolower(str_replace(' ', '-', str_replace('_', ' ', substr($name, 5))))] = $value; + } + } + } + return $_cachedHeaders = $headers; + } + + /** + * Get a request header + * + * @return string|false + */ + protected function getRequestHeader($name) + { + $headers = self::getAllRequestHeaders(); + if (isset($headers[strtolower($name)])) { + return $headers[strtolower($name)]; + } + return false; + } + + /** + * Returns a new exception + * + * @param string $message + * @return Exception + */ + protected function newException($message) + { + return new Exception($message); + } + + /** + * Encode an object into a JSON string + * + * Uses PHP's jeson_encode() if available + * + * @param object $object The object to be encoded + * @param boolean $skipObjectEncode + * @return string The JSON string + */ + public function jsonEncode($object, $skipObjectEncode = false) + { + if (!$skipObjectEncode) { + $object = $this->encodeObject($object); + } + + if (function_exists('json_encode') + && $this->options['useNativeJsonEncode'] != false) { + + return json_encode($object); + } else { + return $this->json_encode($object); + } + } + + /** + * Encodes a table by encoding each row and column with encodeObject() + * + * @param array $table The table to be encoded + * @return array + */ + protected function encodeTable($table) + { + if (!$table) return $table; + + $newTable = array(); + foreach ($table as $row) { + + if (is_array($row)) { + $newRow = array(); + + foreach ($row as $item) { + $newRow[] = $this->encodeObject($item); + } + + $newTable[] = $newRow; + } + } + + return $newTable; + } + + /** + * Encodes an object including members with + * protected and private visibility + * + * @param object $object The object to be encoded + * @param integer $Depth The current traversal depth + * @return array All members of the object + */ + protected function encodeObject($object, $objectDepth = 1, $arrayDepth = 1, $maxDepth = 1) + { + if ($maxDepth > $this->options['maxDepth']) { + return '** Max Depth (' . $this->options['maxDepth'] . ') **'; + } + + $return = array(); + + if (is_resource($object)) { + + return '** ' . (string) $object . ' **'; + + } else if (is_object($object)) { + + if ($objectDepth > $this->options['maxObjectDepth']) { + return '** Max Object Depth (' . $this->options['maxObjectDepth'] . ') **'; + } + + foreach ($this->objectStack as $refVal) { + if ($refVal === $object) { + return '** Recursion (' . get_class($object) . ') **'; + } + } + array_push($this->objectStack, $object); + + $return['__className'] = $class = get_class($object); + $classLower = strtolower($class); + + $reflectionClass = new ReflectionClass($class); + $properties = array(); + foreach ($reflectionClass->getProperties() as $property) { + $properties[$property->getName()] = $property; + } + + $members = (array)$object; + + foreach ($properties as $plainName => $property) { + + $name = $rawName = $plainName; + if ($property->isStatic()) { + $name = 'static:' . $name; + } + if ($property->isPublic()) { + $name = 'public:' . $name; + } else if ($property->isPrivate()) { + $name = 'private:' . $name; + $rawName = "\0" . $class . "\0" . $rawName; + } else if ($property->isProtected()) { + $name = 'protected:' . $name; + $rawName = "\0" . '*' . "\0" . $rawName; + } + + if (!(isset($this->objectFilters[$classLower]) + && is_array($this->objectFilters[$classLower]) + && in_array($plainName, $this->objectFilters[$classLower]))) { + + if (array_key_exists($rawName, $members) && !$property->isStatic()) { + $return[$name] = $this->encodeObject($members[$rawName], $objectDepth + 1, 1, $maxDepth + 1); + } else { + if (method_exists($property, 'setAccessible')) { + $property->setAccessible(true); + $return[$name] = $this->encodeObject($property->getValue($object), $objectDepth + 1, 1, $maxDepth + 1); + } else + if ($property->isPublic()) { + $return[$name] = $this->encodeObject($property->getValue($object), $objectDepth + 1, 1, $maxDepth + 1); + } else { + $return[$name] = '** Need PHP 5.3 to get value **'; + } + } + } else { + $return[$name] = '** Excluded by Filter **'; + } + } + + // Include all members that are not defined in the class + // but exist in the object + foreach ($members as $rawName => $value) { + + $name = $rawName; + + if ($name{0} == "\0") { + $parts = explode("\0", $name); + $name = $parts[2]; + } + + $plainName = $name; + + if (!isset($properties[$name])) { + $name = 'undeclared:' . $name; + + if (!(isset($this->objectFilters[$classLower]) + && is_array($this->objectFilters[$classLower]) + && in_array($plainName, $this->objectFilters[$classLower]))) { + + $return[$name] = $this->encodeObject($value, $objectDepth + 1, 1, $maxDepth + 1); + } else { + $return[$name] = '** Excluded by Filter **'; + } + } + } + + array_pop($this->objectStack); + + } elseif (is_array($object)) { + + if ($arrayDepth > $this->options['maxArrayDepth']) { + return '** Max Array Depth (' . $this->options['maxArrayDepth'] . ') **'; + } + + foreach ($object as $key => $val) { + + // Encoding the $GLOBALS PHP array causes an infinite loop + // if the recursion is not reset here as it contains + // a reference to itself. This is the only way I have come up + // with to stop infinite recursion in this case. + if ($key == 'GLOBALS' + && is_array($val) + && array_key_exists('GLOBALS', $val)) { + $val['GLOBALS'] = '** Recursion (GLOBALS) **'; + } + + if (!$this->is_utf8($key)) { + $key = utf8_encode($key); + } + + $return[$key] = $this->encodeObject($val, 1, $arrayDepth + 1, $maxDepth + 1); + } + } else { + if ($this->is_utf8($object)) { + return $object; + } else { + return utf8_encode($object); + } + } + return $return; + } + + /** + * Returns true if $string is valid UTF-8 and false otherwise. + * + * @param mixed $str String to be tested + * @return boolean + */ + protected function is_utf8($str) + { + if (function_exists('mb_detect_encoding')) { + return ( + mb_detect_encoding($str, 'UTF-8', true) == 'UTF-8' && + ($str === null || $this->jsonEncode($str, true) !== 'null') + ); + } + $c = 0; + $b = 0; + $bits = 0; + $len = strlen($str); + for ($i = 0; $i < $len; $i++) { + $c = ord($str[$i]); + if ($c > 128) { + if (($c >= 254)) return false; + elseif ($c >= 252) $bits = 6; + elseif ($c >= 248) $bits = 5; + elseif ($c >= 240) $bits = 4; + elseif ($c >= 224) $bits = 3; + elseif ($c >= 192) $bits = 2; + else return false; + if (($i + $bits) > $len) return false; + while($bits > 1) { + $i++; + $b = ord($str[$i]); + if ($b < 128 || $b > 191) return false; + $bits--; + } + } + } + return ($str === null || $this->jsonEncode($str, true) !== 'null'); + } + + /** + * Converts to and from JSON format. + * + * JSON (JavaScript Object Notation) is a lightweight data-interchange + * format. It is easy for humans to read and write. It is easy for machines + * to parse and generate. It is based on a subset of the JavaScript + * Programming Language, Standard ECMA-262 3rd Edition - December 1999. + * This feature can also be found in Python. JSON is a text format that is + * completely language independent but uses conventions that are familiar + * to programmers of the C-family of languages, including C, C++, C#, Java, + * JavaScript, Perl, TCL, and many others. These properties make JSON an + * ideal data-interchange language. + * + * This package provides a simple encoder and decoder for JSON notation. It + * is intended for use with client-side Javascript applications that make + * use of HTTPRequest to perform server communication functions - data can + * be encoded into JSON notation for use in a client-side javascript, or + * decoded from incoming Javascript requests. JSON format is native to + * Javascript, and can be directly eval()'ed with no further parsing + * overhead + * + * All strings should be in ASCII or UTF-8 format! + * + * LICENSE: Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: Redistributions of source code must retain the + * above copyright notice, this list of conditions and the following + * disclaimer. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN + * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * @category + * @package Services_JSON + * @author Michal Migurski + * @author Matt Knapp + * @author Brett Stimmerman + * @author Christoph Dorn + * @copyright 2005 Michal Migurski + * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 + */ + + + /** + * Keep a list of objects as we descend into the array so we can detect recursion. + */ + private $json_objectStack = array(); + + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + private function json_utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if (function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch (strlen($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + private function json_encode($var) + { + if (is_object($var)) { + if (in_array($var, $this->json_objectStack)) { + return '"** Recursion **"'; + } + } + + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = strlen($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\' . $var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2})); + $c += 2; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + + return '"' . $ascii . '"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + + $this->json_objectStack[] = $var; + + $properties = array_map(array($this, 'json_name_value'), + array_keys($var), + array_values($var)); + + array_pop($this->json_objectStack); + + foreach ($properties as $property) { + if ($property instanceof Exception) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + } + + $this->json_objectStack[] = $var; + + // treat it like a regular array + $elements = array_map(array($this, 'json_encode'), $var); + + array_pop($this->json_objectStack); + + foreach ($elements as $element) { + if ($element instanceof Exception) { + return $element; + } + } + + return '[' . join(',', $elements) . ']'; + + case 'object': + $vars = self::encodeObject($var); + + $this->json_objectStack[] = $var; + + $properties = array_map(array($this, 'json_name_value'), + array_keys($vars), + array_values($vars)); + + array_pop($this->json_objectStack); + + foreach ($properties as $property) { + if ($property instanceof Exception) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + + default: + return null; + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + private function json_name_value($name, $value) + { + // Encoding the $GLOBALS PHP array causes an infinite loop + // if the recursion is not reset here as it contains + // a reference to itself. This is the only way I have come up + // with to stop infinite recursion in this case. + if ($name == 'GLOBALS' + && is_array($value) + && array_key_exists('GLOBALS', $value)) { + $value['GLOBALS'] = '** Recursion **'; + } + + $encodedValue = $this->json_encode($value); + + if ($encodedValue instanceof Exception) { + return $encodedValue; + } + + return $this->json_encode(strval($name)) . ':' . $encodedValue; + } + + /** + * @deprecated + */ + public function setProcessorUrl($URL) + { + trigger_error('The FirePHP::setProcessorUrl() method is no longer supported', E_USER_DEPRECATED); + } + + /** + * @deprecated + */ + public function setRendererUrl($URL) + { + trigger_error('The FirePHP::setRendererUrl() method is no longer supported', E_USER_DEPRECATED); + } +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php4 b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php4 new file mode 100644 index 00000000000..d702cea4a35 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php4 @@ -0,0 +1,1327 @@ +, Copyright 2007, New BSD License +// - qbbr, Michael Day , Copyright 2008, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/** + * *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** + * + * This verion of FirePHPCore is for use with PHP4. If you do not require PHP4 + * compatibility, it is suggested you use FirePHPCore.class.php instead. + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @author Michael Day + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ + +/** + * FirePHP version + * + * @var string + */ +define('FirePHP_VERSION', '0.3'); // @pinf replace '0.3' with '%%VERSION%%' + +/** + * Firebug LOG level + * + * Logs a message to firebug console + * + * @var string + */ +define('FirePHP_LOG', 'LOG'); + +/** + * Firebug INFO level + * + * Logs a message to firebug console and displays an info icon before the message + * + * @var string + */ +define('FirePHP_INFO', 'INFO'); + +/** + * Firebug WARN level + * + * Logs a message to firebug console, displays a warning icon before the message and colors the line turquoise + * + * @var string + */ +define('FirePHP_WARN', 'WARN'); + +/** + * Firebug ERROR level + * + * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count. + * + * @var string + */ +define('FirePHP_ERROR', 'ERROR'); + +/** + * Dumps a variable to firebug's server panel + * + * @var string + */ +define('FirePHP_DUMP', 'DUMP'); + +/** + * Displays a stack trace in firebug console + * + * @var string + */ +define('FirePHP_TRACE', 'TRACE'); + +/** + * Displays a table in firebug console + * + * @var string + */ +define('FirePHP_TABLE', 'TABLE'); + +/** + * Starts a group in firebug console + * + * @var string + */ +define('FirePHP_GROUP_START', 'GROUP_START'); + +/** + * Ends a group in firebug console + * + * @var string + */ +define('FirePHP_GROUP_END', 'GROUP_END'); + +/** + * Sends the given data to the FirePHP Firefox Extension. + * The data can be displayed in the Firebug Console or in the + * "Server" request tab. + * + * For more information see: http://www.firephp.org/ + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @author Michael Day + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ +class FirePHP { + /** + * Wildfire protocol message index + * + * @var int + */ + var $messageIndex = 1; + + /** + * Options for the library + * + * @var array + */ + var $options = array('maxObjectDepth' => 5, + 'maxArrayDepth' => 5, + 'useNativeJsonEncode' => true, + 'includeLineNumbers' => true); + + /** + * Filters used to exclude object members when encoding + * + * @var array + */ + var $objectFilters = array(); + + /** + * A stack of objects used to detect recursion during object encoding + * + * @var object + */ + var $objectStack = array(); + + /** + * Flag to enable/disable logging + * + * @var boolean + */ + var $enabled = true; + + /** + * The object constructor + */ + function FirePHP() { + } + + + /** + * When the object gets serialized only include specific object members. + * + * @return array + */ + function __sleep() { + return array('options','objectFilters','enabled'); + } + + /** + * Gets singleton instance of FirePHP + * + * @param boolean $AutoCreate + * @return FirePHP + */ + function &getInstance($AutoCreate=false) { + global $FirePHP_Instance; + + if($AutoCreate===true && !$FirePHP_Instance) { + $FirePHP_Instance = new FirePHP(); + } + + return $FirePHP_Instance; + } + + /** + * Enable and disable logging to Firebug + * + * @param boolean $Enabled TRUE to enable, FALSE to disable + * @return void + */ + function setEnabled($Enabled) { + $this->enabled = $Enabled; + } + + /** + * Check if logging is enabled + * + * @return boolean TRUE if enabled + */ + function getEnabled() { + return $this->enabled; + } + + /** + * Specify a filter to be used when encoding an object + * + * Filters are used to exclude object members. + * + * @param string $Class The class name of the object + * @param array $Filter An array of members to exclude + * @return void + */ + function setObjectFilter($Class, $Filter) { + $this->objectFilters[strtolower($Class)] = $Filter; + } + + /** + * Set some options for the library + * + * Options: + * - maxObjectDepth: The maximum depth to traverse objects (default: 5) + * - maxArrayDepth: The maximum depth to traverse arrays (default: 5) + * - useNativeJsonEncode: If true will use json_encode() (default: true) + * - includeLineNumbers: If true will include line numbers and filenames (default: true) + * + * @param array $Options The options to be set + * @return void + */ + function setOptions($Options) { + $this->options = array_merge($this->options,$Options); + } + + /** + * Get options from the library + * + * @return array The currently set options + */ + function getOptions() { + return $this->options; + } + + /** + * Register FirePHP as your error handler + * + * Will use FirePHP to log each php error. + * + * @return mixed Returns a string containing the previously defined error handler (if any) + */ + function registerErrorHandler() + { + //NOTE: The following errors will not be caught by this error handler: + // E_ERROR, E_PARSE, E_CORE_ERROR, + // E_CORE_WARNING, E_COMPILE_ERROR, + // E_COMPILE_WARNING, E_STRICT + + return set_error_handler(array($this,'errorHandler')); + } + + /** + * FirePHP's error handler + * + * Logs each php error that will occur. + * + * @param int $errno + * @param string $errstr + * @param string $errfile + * @param int $errline + * @param array $errcontext + */ + function errorHandler($errno, $errstr, $errfile, $errline, $errcontext) + { + global $FirePHP_Instance; + // Don't log error if error reporting is switched off + if (error_reporting() == 0) { + return; + } + // Only log error for errors we are asking for + if (error_reporting() & $errno) { + $FirePHP_Instance->group($errstr); + $FirePHP_Instance->error("{$errfile}, line $errline"); + $FirePHP_Instance->groupEnd(); + } + } + + /** + * Register FirePHP driver as your assert callback + * + * @return mixed Returns the original setting + */ + function registerAssertionHandler() + { + return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler')); + } + + /** + * FirePHP's assertion handler + * + * Logs all assertions to your firebug console and then stops the script. + * + * @param string $file File source of assertion + * @param int $line Line source of assertion + * @param mixed $code Assertion code + */ + function assertionHandler($file, $line, $code) + { + $this->fb($code, 'Assertion Failed', FirePHP_ERROR, array('File'=>$file,'Line'=>$line)); + } + + /** + * Set custom processor url for FirePHP + * + * @param string $URL + */ + function setProcessorUrl($URL) + { + $this->setHeader('X-FirePHP-ProcessorURL', $URL); + } + + /** + * Set custom renderer url for FirePHP + * + * @param string $URL + */ + function setRendererUrl($URL) + { + $this->setHeader('X-FirePHP-RendererURL', $URL); + } + + /** + * Start a group for following messages. + * + * Options: + * Collapsed: [true|false] + * Color: [#RRGGBB|ColorName] + * + * @param string $Name + * @param array $Options OPTIONAL Instructions on how to log the group + * @return true + * @throws Exception + */ + function group($Name, $Options=null) { + + if(!$Name) { + trigger_error('You must specify a label for the group!'); + } + + if($Options) { + if(!is_array($Options)) { + trigger_error('Options must be defined as an array!'); + } + if(array_key_exists('Collapsed', $Options)) { + $Options['Collapsed'] = ($Options['Collapsed'])?'true':'false'; + } + } + + return $this->fb(null, $Name, FirePHP_GROUP_START, $Options); + } + + /** + * Ends a group you have started before + * + * @return true + * @throws Exception + */ + function groupEnd() { + return $this->fb(null, null, FirePHP_GROUP_END); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::LOG + * @param mixes $Object + * @param string $Label + * @return true + * @throws Exception + */ + function log($Object, $Label=null) { + return $this->fb($Object, $Label, FirePHP_LOG); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::INFO + * @param mixes $Object + * @param string $Label + * @return true + * @throws Exception + */ + function info($Object, $Label=null) { + return $this->fb($Object, $Label, FirePHP_INFO); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::WARN + * @param mixes $Object + * @param string $Label + * @return true + * @throws Exception + */ + function warn($Object, $Label=null) { + return $this->fb($Object, $Label, FirePHP_WARN); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::ERROR + * @param mixes $Object + * @param string $Label + * @return true + * @throws Exception + */ + function error($Object, $Label=null) { + return $this->fb($Object, $Label, FirePHP_ERROR); + } + + /** + * Dumps key and variable to firebug server panel + * + * @see FirePHP::DUMP + * @param string $Key + * @param mixed $Variable + * @return true + * @throws Exception + */ + function dump($Key, $Variable) { + return $this->fb($Variable, $Key, FirePHP_DUMP); + } + + /** + * Log a trace in the firebug console + * + * @see FirePHP::TRACE + * @param string $Label + * @return true + * @throws Exception + */ + function trace($Label) { + return $this->fb($Label, FirePHP_TRACE); + } + + /** + * Log a table in the firebug console + * + * @see FirePHP::TABLE + * @param string $Label + * @param string $Table + * @return true + * @throws Exception + */ + function table($Label, $Table) { + return $this->fb($Table, $Label, FirePHP_TABLE); + } + + /** + * Check if FirePHP is installed on client + * + * @return boolean + */ + function detectClientExtension() { + // Check if FirePHP is installed on client via User-Agent header + if(@preg_match_all('/\sFirePHP\/([\.\d]*)\s?/si',$this->getUserAgent(),$m) && + version_compare($m[1][0],'0.0.6','>=')) { + return true; + } else + // Check if FirePHP is installed on client via X-FirePHP-Version header + if(@preg_match_all('/^([\.\d]*)$/si',$this->getRequestHeader("X-FirePHP-Version"),$m) && + version_compare($m[1][0],'0.0.6','>=')) { + return true; + } + return false; + } + + /** + * Log varible to Firebug + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $Object The variable to be logged + * @return true Return TRUE if message was added to headers, FALSE otherwise + * @throws Exception + */ + function fb($Object) { + + if(!$this->enabled) { + return false; + } + + if (headers_sent($filename, $linenum)) { + trigger_error('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.'); + } + + $Type = null; + $Label = null; + $Options = array(); + + if(func_num_args()==1) { + } else + if(func_num_args()==2) { + switch(func_get_arg(1)) { + case FirePHP_LOG: + case FirePHP_INFO: + case FirePHP_WARN: + case FirePHP_ERROR: + case FirePHP_DUMP: + case FirePHP_TRACE: + case FirePHP_TABLE: + case FirePHP_GROUP_START: + case FirePHP_GROUP_END: + $Type = func_get_arg(1); + break; + default: + $Label = func_get_arg(1); + break; + } + } else + if(func_num_args()==3) { + $Type = func_get_arg(2); + $Label = func_get_arg(1); + } else + if(func_num_args()==4) { + $Type = func_get_arg(2); + $Label = func_get_arg(1); + $Options = func_get_arg(3); + } else { + trigger_error('Wrong number of arguments to fb() function!'); + } + + + if(!$this->detectClientExtension()) { + return false; + } + + $meta = array(); + $skipFinalObjectEncode = false; + + if($Type==FirePHP_TRACE) { + + $trace = debug_backtrace(); + if(!$trace) return false; + for( $i=0 ; $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php' + || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) { + /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */ + } else + if(isset($trace[$i]['class']) + && isset($trace[$i+1]['file']) + && $trace[$i]['class']=='FirePHP' + && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') { + /* Skip fb() */ + } else + if($trace[$i]['function']=='fb' + || $trace[$i]['function']=='trace' + || $trace[$i]['function']=='send') { + $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'', + 'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'', + 'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'', + 'Message'=>$trace[$i]['args'][0], + 'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'', + 'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'', + 'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'', + 'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1))); + + $skipFinalObjectEncode = true; + $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):''; + $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:''; + break; + } + } + + } else + if($Type==FirePHP_TABLE) { + + if(isset($Object[0]) && is_string($Object[0])) { + $Object[1] = $this->encodeTable($Object[1]); + } else { + $Object = $this->encodeTable($Object); + } + + $skipFinalObjectEncode = true; + + } else + if($Type==FirePHP_GROUP_START) { + + if(!$Label) { + trigger_error('You must specify a label for the group!'); + } + } else { + if($Type===null) { + $Type = FirePHP_LOG; + } + } + + if($this->options['includeLineNumbers']) { + if(!isset($meta['file']) || !isset($meta['line'])) { + + $trace = debug_backtrace(); + for( $i=0 ; $trace && $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php' + || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) { + /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */ + } else + if(isset($trace[$i]['class']) + && isset($trace[$i+1]['file']) + && $trace[$i]['class']=='FirePHP' + && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') { + /* Skip fb() */ + } else + if(isset($trace[$i]['file']) + && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') { + /* Skip FB::fb() */ + } else { + $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):''; + $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:''; + break; + } + } + + } + } else { + unset($meta['file']); + unset($meta['line']); + } + + $this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2'); + $this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.FirePHP_VERSION); + + $structure_index = 1; + if($Type==FirePHP_DUMP) { + $structure_index = 2; + $this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1'); + } else { + $this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1'); + } + + if($Type==FirePHP_DUMP) { + $msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}'; + } else { + $msg_meta = $Options; + $msg_meta['Type'] = $Type; + if($Label!==null) { + $msg_meta['Label'] = $Label; + } + if(isset($meta['file']) && !isset($msg_meta['File'])) { + $msg_meta['File'] = $meta['file']; + } + if(isset($meta['line']) && !isset($msg_meta['Line'])) { + $msg_meta['Line'] = $meta['line']; + } + $msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']'; + } + + $parts = explode("\n",chunk_split($msg, 5000, "\n")); + + for( $i=0 ; $i2) { + // Message needs to be split into multiple parts + $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex, + (($i==0)?strlen($msg):'') + . '|' . $part . '|' + . (($isetHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex, + strlen($part) . '|' . $part . '|'); + } + + $this->messageIndex++; + + if ($this->messageIndex > 99999) { + trigger_error('Maximum number (99,999) of messages reached!'); + } + } + } + + $this->setHeader('X-Wf-1-Index',$this->messageIndex-1); + + return true; + } + + + /** + * Standardizes path for windows systems. + * + * @param string $Path + * @return string + */ + function _standardizePath($Path) { + return preg_replace('/\\\\+/','/',$Path); + } + + /** + * Escape trace path for windows systems + * + * @param array $Trace + * @return array + */ + function _escapeTrace($Trace) { + if(!$Trace) return $Trace; + for( $i=0 ; $i_escapeTraceFile($Trace[$i]['file']); + } + if(isset($Trace[$i]['args'])) { + $Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']); + } + } + return $Trace; + } + + /** + * Escape file information of trace for windows systems + * + * @param string $File + * @return string + */ + function _escapeTraceFile($File) { + /* Check if we have a windows filepath */ + if(strpos($File,'\\')) { + /* First strip down to single \ */ + + $file = preg_replace('/\\\\+/','\\',$File); + + return $file; + } + return $File; + } + + /** + * Send header + * + * @param string $Name + * @param string_type $Value + */ + function setHeader($Name, $Value) { + return header($Name.': '.$Value); + } + + /** + * Get user agent + * + * @return string|false + */ + function getUserAgent() { + if(!isset($_SERVER['HTTP_USER_AGENT'])) return false; + return $_SERVER['HTTP_USER_AGENT']; + } + + /** + * Get all request headers + * + * @return array + */ + function getAllRequestHeaders() { + $headers = array(); + if(function_exists('getallheaders')) { + foreach( getallheaders() as $name => $value ) { + $headers[strtolower($name)] = $value; + } + } else { + foreach($_SERVER as $name => $value) { + if(substr($name, 0, 5) == 'HTTP_') { + $headers[strtolower(str_replace(' ', '-', str_replace('_', ' ', substr($name, 5))))] = $value; + } + } + } + return $headers; + } + + /** + * Get a request header + * + * @return string|false + */ + function getRequestHeader($Name) + { + $headers = $this->getAllRequestHeaders(); + if (isset($headers[strtolower($Name)])) { + return $headers[strtolower($Name)]; + } + return false; + } + + /** + * Encode an object into a JSON string + * + * Uses PHP's jeson_encode() if available + * + * @param object $Object The object to be encoded + * @return string The JSON string + */ + function jsonEncode($Object, $skipObjectEncode=false) + { + if(!$skipObjectEncode) { + $Object = $this->encodeObject($Object); + } + + if(function_exists('json_encode') + && $this->options['useNativeJsonEncode']!=false) { + + return json_encode($Object); + } else { + return $this->json_encode($Object); + } + } + + /** + * Encodes a table by encoding each row and column with encodeObject() + * + * @param array $Table The table to be encoded + * @return array + */ + function encodeTable($Table) { + + if(!$Table) return $Table; + + $new_table = array(); + foreach($Table as $row) { + + if(is_array($row)) { + $new_row = array(); + + foreach($row as $item) { + $new_row[] = $this->encodeObject($item); + } + + $new_table[] = $new_row; + } + } + + return $new_table; + } + + /** + * Encodes an object + * + * @param Object $Object The object to be encoded + * @param int $Depth The current traversal depth + * @return array All members of the object + */ + function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1) + { + $return = array(); + + if (is_resource($Object)) { + + return '** '.(string)$Object.' **'; + + } else + if (is_object($Object)) { + + if ($ObjectDepth > $this->options['maxObjectDepth']) { + return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **'; + } + + foreach ($this->objectStack as $refVal) { + if ($refVal === $Object) { + return '** Recursion ('.get_class($Object).') **'; + } + } + array_push($this->objectStack, $Object); + + $return['__className'] = $class = get_class($Object); + $class_lower = strtolower($class); + + $members = (array)$Object; + + // Include all members that are not defined in the class + // but exist in the object + foreach( $members as $raw_name => $value ) { + + $name = $raw_name; + + if ($name{0} == "\0") { + $parts = explode("\0", $name); + $name = $parts[2]; + } + + if(!isset($properties[$name])) { + $name = 'undeclared:'.$name; + + if(!(isset($this->objectFilters[$class_lower]) + && is_array($this->objectFilters[$class_lower]) + && in_array($raw_name,$this->objectFilters[$class_lower]))) { + + $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1); + } else { + $return[$name] = '** Excluded by Filter **'; + } + } + } + + array_pop($this->objectStack); + + } elseif (is_array($Object)) { + + if ($ArrayDepth > $this->options['maxArrayDepth']) { + return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **'; + } + + foreach ($Object as $key => $val) { + + // Encoding the $GLOBALS PHP array causes an infinite loop + // if the recursion is not reset here as it contains + // a reference to itself. This is the only way I have come up + // with to stop infinite recursion in this case. + if($key=='GLOBALS' + && is_array($val) + && array_key_exists('GLOBALS',$val)) { + $val['GLOBALS'] = '** Recursion (GLOBALS) **'; + } + + $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1); + } + } else { + if($this->is_utf8($Object)) { + return $Object; + } else { + return utf8_encode($Object); + } + } + return $return; + + } + + /** + * Returns true if $string is valid UTF-8 and false otherwise. + * + * @param mixed $str String to be tested + * @return boolean + */ + function is_utf8($str) { + $c=0; $b=0; + $bits=0; + $len=strlen($str); + for($i=0; $i<$len; $i++){ + $c=ord($str[$i]); + if($c > 128){ + if(($c >= 254)) return false; + elseif($c >= 252) $bits=6; + elseif($c >= 248) $bits=5; + elseif($c >= 240) $bits=4; + elseif($c >= 224) $bits=3; + elseif($c >= 192) $bits=2; + else return false; + if(($i+$bits) > $len) return false; + while($bits > 1){ + $i++; + $b=ord($str[$i]); + if($b < 128 || $b > 191) return false; + $bits--; + } + } + } + return true; + } + + /** + * Converts to and from JSON format. + * + * JSON (JavaScript Object Notation) is a lightweight data-interchange + * format. It is easy for humans to read and write. It is easy for machines + * to parse and generate. It is based on a subset of the JavaScript + * Programming Language, Standard ECMA-262 3rd Edition - December 1999. + * This feature can also be found in Python. JSON is a text format that is + * completely language independent but uses conventions that are familiar + * to programmers of the C-family of languages, including C, C++, C#, Java, + * JavaScript, Perl, TCL, and many others. These properties make JSON an + * ideal data-interchange language. + * + * This package provides a simple encoder and decoder for JSON notation. It + * is intended for use with client-side Javascript applications that make + * use of HTTPRequest to perform server communication functions - data can + * be encoded into JSON notation for use in a client-side javascript, or + * decoded from incoming Javascript requests. JSON format is native to + * Javascript, and can be directly eval()'ed with no further parsing + * overhead + * + * All strings should be in ASCII or UTF-8 format! + * + * LICENSE: Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: Redistributions of source code must retain the + * above copyright notice, this list of conditions and the following + * disclaimer. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN + * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * @category + * @package Services_JSON + * @author Michal Migurski + * @author Matt Knapp + * @author Brett Stimmerman + * @author Christoph Dorn + * @copyright 2005 Michal Migurski + * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 + */ + + + /** + * Keep a list of objects as we descend into the array so we can detect recursion. + */ + var $json_objectStack = array(); + + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + function json_utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch(strlen($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function json_encode($var) + { + + if(is_object($var)) { + if(in_array($var,$this->json_objectStack)) { + return '"** Recursion **"'; + } + } + + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = strlen($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\'.$var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2})); + $c += 2; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + + return '"'.$ascii.'"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + + $this->json_objectStack[] = $var; + + $properties = array_map(array($this, 'json_name_value'), + array_keys($var), + array_values($var)); + + array_pop($this->json_objectStack); + + return '{' . join(',', $properties) . '}'; + } + + $this->json_objectStack[] = $var; + + // treat it like a regular array + $elements = array_map(array($this, 'json_encode'), $var); + + array_pop($this->json_objectStack); + + return '[' . join(',', $elements) . ']'; + + case 'object': + $vars = FirePHP::encodeObject($var); + + $this->json_objectStack[] = $var; + + $properties = array_map(array($this, 'json_name_value'), + array_keys($vars), + array_values($vars)); + + array_pop($this->json_objectStack); + + return '{' . join(',', $properties) . '}'; + + default: + return null; + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function json_name_value($name, $value) + { + // Encoding the $GLOBALS PHP array causes an infinite loop + // if the recursion is not reset here as it contains + // a reference to itself. This is the only way I have come up + // with to stop infinite recursion in this case. + if($name=='GLOBALS' + && is_array($value) + && array_key_exists('GLOBALS',$value)) { + $value['GLOBALS'] = '** Recursion **'; + } + + $encoded_value = $this->json_encode($value); + + return $this->json_encode(strval($name)) . ':' . $encoded_value; + } +} + diff --git a/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php new file mode 100644 index 00000000000..8827ba15d97 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php @@ -0,0 +1,275 @@ +, Copyright 2007, New BSD License +// - qbbr, Sokolov Innokenty , Copyright 2011, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/** + * ***** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ + +if (!class_exists('FirePHP', false)) { + require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'FirePHP.class.php'; +} + +/** + * Sends the given data to the FirePHP Firefox Extension. + * The data can be displayed in the Firebug Console or in the + * "Server" request tab. + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $Object + * @return true + * @throws Exception + */ +function fb() +{ + $instance = FirePHP::getInstance(true); + + $args = func_get_args(); + return call_user_func_array(array($instance, 'fb'), $args); +} + + +class FB +{ + /** + * Set an Insight console to direct all logging calls to + * + * @param object $console The console object to log to + * @return void + */ + public static function setLogToInsightConsole($console) + { + FirePHP::getInstance(true)->setLogToInsightConsole($console); + } + + /** + * Enable and disable logging to Firebug + * + * @see FirePHP->setEnabled() + * @param boolean $enabled TRUE to enable, FALSE to disable + * @return void + */ + public static function setEnabled($enabled) + { + FirePHP::getInstance(true)->setEnabled($enabled); + } + + /** + * Check if logging is enabled + * + * @see FirePHP->getEnabled() + * @return boolean TRUE if enabled + */ + public static function getEnabled() + { + return FirePHP::getInstance(true)->getEnabled(); + } + + /** + * Specify a filter to be used when encoding an object + * + * Filters are used to exclude object members. + * + * @see FirePHP->setObjectFilter() + * @param string $class The class name of the object + * @param array $filter An array or members to exclude + * @return void + */ + public static function setObjectFilter($class, $filter) + { + FirePHP::getInstance(true)->setObjectFilter($class, $filter); + } + + /** + * Set some options for the library + * + * @see FirePHP->setOptions() + * @param array $options The options to be set + * @return void + */ + public static function setOptions($options) + { + FirePHP::getInstance(true)->setOptions($options); + } + + /** + * Get options for the library + * + * @see FirePHP->getOptions() + * @return array The options + */ + public static function getOptions() + { + return FirePHP::getInstance(true)->getOptions(); + } + + /** + * Log object to firebug + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $object + * @return true + * @throws Exception + */ + public static function send() + { + $args = func_get_args(); + return call_user_func_array(array(FirePHP::getInstance(true), 'fb'), $args); + } + + /** + * Start a group for following messages + * + * Options: + * Collapsed: [true|false] + * Color: [#RRGGBB|ColorName] + * + * @param string $name + * @param array $options OPTIONAL Instructions on how to log the group + * @return true + */ + public static function group($name, $options=null) + { + return FirePHP::getInstance(true)->group($name, $options); + } + + /** + * Ends a group you have started before + * + * @return true + * @throws Exception + */ + public static function groupEnd() + { + return self::send(null, null, FirePHP::GROUP_END); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::LOG + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public static function log($object, $label=null) + { + return self::send($object, $label, FirePHP::LOG); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::INFO + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public static function info($object, $label=null) + { + return self::send($object, $label, FirePHP::INFO); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::WARN + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public static function warn($object, $label=null) + { + return self::send($object, $label, FirePHP::WARN); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::ERROR + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public static function error($object, $label=null) + { + return self::send($object, $label, FirePHP::ERROR); + } + + /** + * Dumps key and variable to firebug server panel + * + * @see FirePHP::DUMP + * @param string $key + * @param mixed $variable + * @return true + * @throws Exception + */ + public static function dump($key, $variable) + { + return self::send($variable, $key, FirePHP::DUMP); + } + + /** + * Log a trace in the firebug console + * + * @see FirePHP::TRACE + * @param string $label + * @return true + * @throws Exception + */ + public static function trace($label) + { + return self::send($label, FirePHP::TRACE); + } + + /** + * Log a table in the firebug console + * + * @see FirePHP::TABLE + * @param string $label + * @param string $table + * @return true + * @throws Exception + */ + public static function table($label, $table) + { + return self::send($table, $label, FirePHP::TABLE); + } + +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php4 b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php4 new file mode 100644 index 00000000000..eab2f0f681b --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php4 @@ -0,0 +1,245 @@ +, Copyright 2007, New BSD License +// - qbbr, Michael Day , Copyright 2008, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* ***** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @author Michael Day + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ + +require_once dirname(__FILE__).'/FirePHP.class.php4'; + +/** + * Sends the given data to the FirePHP Firefox Extension. + * The data can be displayed in the Firebug Console or in the + * "Server" request tab. + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $Object + * @return true + * @throws Exception + */ +function fb() +{ + $instance =& FirePHP::getInstance(true); + + $args = func_get_args(); + return call_user_func_array(array(&$instance,'fb'),$args); +} + + +class FB +{ + /** + * Enable and disable logging to Firebug + * + * @see FirePHP->setEnabled() + * @param boolean $Enabled TRUE to enable, FALSE to disable + * @return void + */ + function setEnabled($Enabled) { + $instance =& FirePHP::getInstance(true); + $instance->setEnabled($Enabled); + } + + /** + * Check if logging is enabled + * + * @see FirePHP->getEnabled() + * @return boolean TRUE if enabled + */ + function getEnabled() { + $instance =& FirePHP::getInstance(true); + return $instance->getEnabled(); + } + + /** + * Specify a filter to be used when encoding an object + * + * Filters are used to exclude object members. + * + * @see FirePHP->setObjectFilter() + * @param string $Class The class name of the object + * @param array $Filter An array or members to exclude + * @return void + */ + function setObjectFilter($Class, $Filter) { + $instance =& FirePHP::getInstance(true); + $instance->setObjectFilter($Class, $Filter); + } + + /** + * Set some options for the library + * + * @see FirePHP->setOptions() + * @param array $Options The options to be set + * @return void + */ + function setOptions($Options) { + $instance =& FirePHP::getInstance(true); + $instance->setOptions($Options); + } + + /** + * Get options for the library + * + * @see FirePHP->getOptions() + * @return array The options + */ + function getOptions() { + $instance =& FirePHP::getInstance(true); + return $instance->getOptions(); + } + + /** + * Log object to firebug + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $Object + * @return true + */ + function send() + { + $instance =& FirePHP::getInstance(true); + $args = func_get_args(); + return call_user_func_array(array(&$instance,'fb'),$args); + } + + /** + * Start a group for following messages + * + * Options: + * Collapsed: [true|false] + * Color: [#RRGGBB|ColorName] + * + * @param string $Name + * @param array $Options OPTIONAL Instructions on how to log the group + * @return true + */ + function group($Name, $Options=null) { + $instance =& FirePHP::getInstance(true); + return $instance->group($Name, $Options); + } + + /** + * Ends a group you have started before + * + * @return true + */ + function groupEnd() { + return FB::send(null, null, FirePHP_GROUP_END); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::LOG + * @param mixes $Object + * @param string $Label + * @return true + */ + function log($Object, $Label=null) { + return FB::send($Object, $Label, FirePHP_LOG); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::INFO + * @param mixes $Object + * @param string $Label + * @return true + */ + function info($Object, $Label=null) { + return FB::send($Object, $Label, FirePHP_INFO); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::WARN + * @param mixes $Object + * @param string $Label + * @return true + */ + function warn($Object, $Label=null) { + return FB::send($Object, $Label, FirePHP_WARN); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::ERROR + * @param mixes $Object + * @param string $Label + * @return true + */ + function error($Object, $Label=null) { + return FB::send($Object, $Label, FirePHP_ERROR); + } + + /** + * Dumps key and variable to firebug server panel + * + * @see FirePHP::DUMP + * @param string $Key + * @param mixed $Variable + * @return true + */ + function dump($Key, $Variable) { + return FB::send($Variable, $Key, FirePHP_DUMP); + } + + /** + * Log a trace in the firebug console + * + * @see FirePHP::TRACE + * @param string $Label + * @return true + */ + function trace($Label) { + return FB::send($Label, FirePHP_TRACE); + } + + /** + * Log a table in the firebug console + * + * @see FirePHP::TABLE + * @param string $Label + * @param string $Table + * @return true + */ + function table($Label, $Table) { + return FB::send($Table, $Label, FirePHP_TABLE); + } +} diff --git a/htdocs/includes/firephp/firephp-core/package.json b/htdocs/includes/firephp/firephp-core/package.json new file mode 100644 index 00000000000..291a920223a --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/package.json @@ -0,0 +1,43 @@ +{ + "uid": "https://github.com/firephp/firephp-core/", + "name": "firephp-core", + "version": "0.4.0", + "label": "FirePHP Server Library", + "repositories": [ + { + "type": "git", + "url": "git://github.com/firephp/firephp-core.git" + } + ], + "maintainers": [ + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com", + "web": "http://www.christophdorn.com/", + "alias": { + "github": "cadorn" + } + } + ], + "contributors": [ + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com", + "web": "http://www.christophdorn.com/", + "alias": { + "github": "cadorn" + } + }, + { + "name": "Michael Day", + "email": "manveru.alma@gmail.com" + }, + { + "name": "Sokolov Innokenty", + "email": "sokolov.innokenty@gmail.com", + "alias": { + "github": "qbbr" + } + } + ] +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/program.json b/htdocs/includes/firephp/firephp-core/program.json new file mode 100644 index 00000000000..9889e97a36f --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/program.json @@ -0,0 +1,5 @@ +{ + "extends": { + "location": "./workspace/program.json" + } +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/tests/API/newlines.php b/htdocs/includes/firephp/firephp-core/tests/API/newlines.php new file mode 100644 index 00000000000..1e5511e544d --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/tests/API/newlines.php @@ -0,0 +1,12 @@ +dump("key", "value"); + $headers = $firephp->_getHeaders(); + $this->assertEquals('15|{"key":"value"}|', $headers['X-Wf-1-2-1-1']); + $firephp->_clearHeaders(); + + $caught = false; + try { + $firephp->dump(array(), "value"); + } catch(Exception $e) { + // Key passed to dump() is not a string + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + + $caught = false; + try { + $firephp->dump("key \n\r value", "value"); + } catch(Exception $e) { + // Key passed to dump() contains invalid characters [a-zA-Z0-9-_\.:] + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + + $caught = false; + try { + $firephp->dump("keykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeyk1", "value"); + } catch(Exception $e) { + // Key passed to dump() is longer than 100 characters + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + } + + /** + * @issue http://code.google.com/p/firephp/issues/detail?id=123 + */ + public function testRegisterErrorHandler() + { + $firephp = new FirePHP_Test_Class(); + $firephp->setOption("maxObjectDepth", 1); + $firephp->setOption("maxArrayDepth", 1); + + $firephp->registerErrorHandler(); + trigger_error("Hello World"); + $headers = $firephp->_getHeaders(); + if(!isset($headers["X-Wf-1-1-1-1"])) { + $this->fail("Error not in headers"); + } + } + + /** + * @issue http://code.google.com/p/firephp/issues/detail?id=122 + */ + public function testFirePHPClassInstanceLogging() + { + $firephp = new FirePHP_Test_Class(); + + $firephp->log($firephp); + $headers = $firephp->_getHeaders(); + if(!preg_match_all('/"protected:objectStack":"\\*\\* Excluded by Filter \\*\\*"/', $headers['X-Wf-1-1-1-1'], $m)) { + $this->fail("objectStack member contains value"); + } + if(!preg_match_all('/"protected:static:instance":"\\*\\* Excluded by Filter \\*\\*"/', $headers['X-Wf-1-1-1-1'], $m)) { + $this->fail("instance member should not be logged"); + } + if(!preg_match_all('/"undeclared:json_objectStack":"\\*\\* Excluded by Filter \\*\\*"/', $headers['X-Wf-1-1-1-1'], $m)) { + $this->fail("json_objectStack member should not be logged"); + } + } + + /** + * @issue http://code.google.com/p/firephp/issues/detail?id=114 + */ + public function testCustomFileLineOptions() + { + $firephp = new FirePHP_Test_Class(); + + $firephp->log("message", "label", array("File"=>"/file/path", "Line"=>"1")); + $firephp->info("message", "label", array("File"=>"/file/path", "Line"=>"1")); + $firephp->warn("message", "label", array("File"=>"/file/path", "Line"=>"1")); + $firephp->error("message", "label", array("File"=>"/file/path", "Line"=>"1")); + $firephp->dump("key", "value", array("File"=>"/file/path", "Line"=>"1")); + $firephp->table("label", array(array("header"),array("cell")), array("File"=>"/file/path", "Line"=>"1")); + + $headers = $firephp->_getHeaders(); + + $this->assertEquals('75|[{"File":"\/file\/path","Line":"1","Type":"LOG","Label":"label"},"message"]|', $headers['X-Wf-1-1-1-1']); + $this->assertEquals('76|[{"File":"\/file\/path","Line":"1","Type":"INFO","Label":"label"},"message"]|', $headers['X-Wf-1-1-1-2']); + $this->assertEquals('76|[{"File":"\/file\/path","Line":"1","Type":"WARN","Label":"label"},"message"]|', $headers['X-Wf-1-1-1-3']); + $this->assertEquals('77|[{"File":"\/file\/path","Line":"1","Type":"ERROR","Label":"label"},"message"]|', $headers['X-Wf-1-1-1-4']); + $this->assertEquals('15|{"key":"value"}|', $headers['X-Wf-1-2-1-5']); + $this->assertEquals('89|[{"File":"\/file\/path","Line":"1","Type":"TABLE","Label":"label"},[["header"],["cell"]]]|', $headers['X-Wf-1-1-1-6']); + } + + public function testRecursiveEncode() + { + $firephp = new FirePHP_Test_Class(); + + $obj = new FirePHPCore_FirePHPTest__TestObject(); + $obj->child = $obj; + + $firephp->log($obj, "label", array("File"=>"/file/path", "Line"=>"1")); + $headers = $firephp->_getHeaders(); + $this->assertEquals('215|[{"File":"\/file\/path","Line":"1","Type":"LOG","Label":"label"},{"__className":"FirePHPCore_FirePHPTest__TestObject","public:var":"value","undeclared:child":"** Recursion (FirePHPCore_FirePHPTest__TestObject) **"}]|', $headers['X-Wf-1-1-1-1']); + } + + public function testOptions() + { + $firephp = new FirePHP_Test_Class(); + + // defaults + $this->assertEquals(5, $firephp->getOption("maxObjectDepth")); + $this->assertEquals(5, $firephp->getOption("maxArrayDepth")); + $this->assertEquals(true, $firephp->getOption("useNativeJsonEncode")); + $this->assertEquals(true, $firephp->getOption("includeLineNumbers")); + + // modify + $firephp->setOption("maxObjectDepth", 1); + $this->assertEquals(1, $firephp->getOption("maxObjectDepth")); + + // invalid + $caught = false; + try { + $firephp->setOption("invalidName", 1); + } catch(Exception $e) { + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + + $caught = false; + try { + $firephp->getOption("invalidName"); + } catch(Exception $e) { + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + } + + public function testDeprecatedMethods() + { + $firephp = new FirePHP_Test_Class(); + + $caught = false; + try { + $firephp->setProcessorUrl('URL'); + } catch(Exception $e) { + $caught = true; + $this->assertEquals(E_USER_DEPRECATED, $e->getCode()); + $this->assertEquals('The FirePHP::setProcessorUrl() method is no longer supported', $e->getMessage()); + } + if(!$caught) $this->fail('No deprecation error thrown'); + + $caught = false; + try { + $firephp->setRendererUrl('URL'); + } catch(Exception $e) { + $caught = true; + $this->assertEquals(E_USER_DEPRECATED, $e->getCode()); + $this->assertEquals('The FirePHP::setRendererUrl() method is no longer supported', $e->getMessage()); + } + if(!$caught) $this->fail('No deprecation error thrown'); + } + +} + + +class FirePHPCore_FirePHPTest__TestObject +{ + public $var = "value"; +} diff --git a/htdocs/includes/firephp/firephp-core/tests/TestHelper.php b/htdocs/includes/firephp/firephp-core/tests/TestHelper.php new file mode 100644 index 00000000000..bb65e73202d --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/tests/TestHelper.php @@ -0,0 +1,55 @@ +_headers; + } + public function _clearHeaders() { + $this->_headers = array(); + } + + + // ###################### + // # Subclassed Methods # + // ###################### + + protected function setHeader($Name, $Value) { + $this->_headers[$Name] = $Value; + } + + protected function headersSent(&$Filename, &$Linenum) { + return false; + } + + public function detectClientExtension() { + return true; + } + +} diff --git a/htdocs/includes/firephp/firephp-core/tests/phpunit.xml b/htdocs/includes/firephp/firephp-core/tests/phpunit.xml new file mode 100644 index 00000000000..b0474e9d627 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/tests/phpunit.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/workspace/README.md b/htdocs/includes/firephp/firephp-core/workspace/README.md new file mode 100644 index 00000000000..999f09a9418 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/README.md @@ -0,0 +1,19 @@ + +The [PINF JavaScript Loader](https://github.com/pinf/loader-js) is used to provide a development environment and package releases for this project. + +**NOTE:** It is assumed you have the _PINF JavaScript Loader_ mapped to the `commonjs` command and are using the `node` platform by default as explained [here](https://github.com/pinf/loader-js/blob/master/docs/Setup.md). + + +Publishing +========== + + git tag v... + + commonjs -v --script build . + + commonjs -v --script publish . + + +TODO: Auto-upload to PEAR channel server at http://pear.firephp.org/ + +NOTE: For PEAR RC releases: Change release stability to "beta" and capitalize "RC" in release version in package.xml diff --git a/htdocs/includes/firephp/firephp-core/workspace/lib/project.js b/htdocs/includes/firephp/firephp-core/workspace/lib/project.js new file mode 100644 index 00000000000..913c6d7c60f --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/lib/project.js @@ -0,0 +1,5 @@ + +exports.main = function(options) +{ + +} diff --git a/htdocs/includes/firephp/firephp-core/workspace/package.json b/htdocs/includes/firephp/firephp-core/workspace/package.json new file mode 100644 index 00000000000..19e8385ee6f --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/package.json @@ -0,0 +1,28 @@ +{ + "name": "firephp-core", + "engine": [ + "node" + ], + "main": "lib/project.js", + "scripts": { + "build": { + "location": "./", + "module": "/scripts/build.js" + }, + "publish": { + "location": "./", + "module": "/scripts/publish.js" + } + }, + "mappings": { + "nodejs": { + "id": "nodejs.org/" + }, + "pinf": { + "id": "pinf.org/loader/" + }, + "modules": { + "id": "github.com/pinf/modules-js/" + } + } +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/workspace/program.json b/htdocs/includes/firephp/firephp-core/workspace/program.json new file mode 100644 index 00000000000..9628b525c6c --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/program.json @@ -0,0 +1,78 @@ +{ + "boot": "workspace", + "engine": [ + "node" + ], + "packages": { + "workspace": { + "locator": { + "location": "./" + } + }, + "nodejs.org/": { + "provider": "nodejs.org/" + }, + "pinf.org/loader/": { + "provider": "pinf.org/loader/" + }, + "github.com/pinf/modules-js/": { + "locator": { + "archive": "https://github.com/pinf/modules-js/zipball/master" + } + }, + "github.com/kriskowal/q/": { + "locator": { + "archive": "https://github.com/kriskowal/q/zipball/v0.3.0" + }, + "descriptor": { + "uid": "https://github.com/kriskowal/q/", + "dependencies": [ + { + "id": "github.com/pinf/modules-js/" + } + ] + } + }, + "private-registry.appspot.com/cadorn.com/github/com.cadorn.baby/projects/sourcemint/packages/client-js/": { + "locator": { + "archive": "https://github.com/cadorn/com.cadorn.baby/zipball/master", + "path": "projects/sourcemint/packages/client-js" + } + }, + "github.com/cadorn/aws-lib/": { + "locator": { + "archive": "https://github.com/cadorn/aws-lib/zipball/master" + }, + "descriptor": { + "uid": "https://github.com/cadorn/aws-lib/", + "native": true, + "dependencies": [ + { + "id": "registry.npmjs.org/sax/" + }, + { + "id": "registry.npmjs.org/xml2js/" + } + ] + } + }, + "registry.npmjs.org/sax/": { + "locator": { + "archive": "http://registry.npmjs.org/sax/-/sax-0.1.2.tgz" + }, + "descriptor": { + "uid": "http://registry.npmjs.org/sax/", + "native": true + } + }, + "registry.npmjs.org/xml2js/": { + "locator": { + "archive": "http://registry.npmjs.org/xml2js/-/xml2js-0.1.6.tgz" + }, + "descriptor": { + "uid": "http://registry.npmjs.org/xml2js/", + "native": true + } + } + } +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/workspace/scripts/build.js b/htdocs/includes/firephp/firephp-core/workspace/scripts/build.js new file mode 100644 index 00000000000..2481d99d381 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/scripts/build.js @@ -0,0 +1,164 @@ + +var FILE = require("modules/file"), + Q = require("modules/q"), + SYSTEM = require("modules/system"), + UTIL = require("modules/util"), + JSON = require("modules/json"); + + +var pkgPath = FILE.dirname(FILE.dirname(FILE.dirname(module.id))), + buildPath = pkgPath + "/build", + tplPath = pkgPath + "/workspace/tpl", + version = false; + +exports.getBuildPath = function() +{ + return buildPath; +} + +exports.main = function() +{ + + SYSTEM.exec("rm -Rf " + buildPath, function() + { + FILE.mkdirs(buildPath, 0775); + + SYSTEM.exec("git tag", function(stdout) + { + version = UTIL.trim(stdout).split("\n").pop().match(/^v(.*)$/)[1]; + + // TODO: Compare against version in `../../program.json ~ version` (ensure =) + + module.print("\0cyan(Building version: " + version + "\0)\n"); + + buildZipArchive(function() + { + buildPEARArchive(function() + { + done(); + }); + }); + }); + }); + + function done() + { + module.print("\0green(Done\0)\n"); + } +} + +function buildZipArchive(callback) +{ + var targetBasePath = buildPath + "/FirePHPCore-" + version; + + FILE.mkdirs(targetBasePath, 0775); + + SYSTEM.exec("rsync -r --copy-links --exclude \"- .DS_Store\" --exclude \"- .git/\" --exclude \"- .tmp_*\" " + pkgPath + "/lib " + targetBasePath, function() + { + replaceVariablesInFile(targetBasePath + "/lib/FirePHPCore/FirePHP.class.php"); + replaceVariablesInFile(targetBasePath + "/lib/FirePHPCore/FirePHP.class.php4"); + + SYSTEM.exec("cp -Rf " + pkgPath + "/examples " + targetBasePath, function() + { + next1(); + }); + }); + + function next1() + { + var content = FILE.read(tplPath + "/readme.tpl.md"); + content = content.replace(/%%VERSION%%/g, version); + FILE.write(targetBasePath + "/README.md", content); + + var content = FILE.read(tplPath + "/license.tpl.md"); + FILE.write(targetBasePath + "/LICENSE.md", content); + + FILE.write(buildPath + "/info.json", JSON.encode({ + version: version + })); + + next2(); + } + + function next2() + { + SYSTEM.exec("cd " + buildPath + " ; zip -vr FirePHPCore-" + version + ".zip FirePHPCore-" + version, function(stdout) + { + console.log(stdout); + + callback(); + }); + } +} + +function buildPEARArchive(callback) +{ + var targetBasePath = buildPath + "/pear"; + + FILE.mkdirs(targetBasePath, 0775); + + SYSTEM.exec("rsync -r --copy-links --exclude \"- .DS_Store\" --exclude \"- .git/\" --exclude \"- .tmp_*\" " + pkgPath + "/lib/FirePHPCore/* " + targetBasePath, function() + { + replaceVariablesInFile(targetBasePath + "/FirePHP.class.php"); + replaceVariablesInFile(targetBasePath + "/FirePHP.class.php4"); + + next1(); + }); + + function next1() + { + var content = FILE.read(tplPath + "/pear.package.tpl.xml"); + + var date = new Date(); + content = content.replace(/%%DATE%%/g, date.getFullYear() + "-" + UTIL.padBegin(date.getMonth()+1, 2, "0") + "-" + date.getDate()); + content = content.replace(/%%VERSION%%/g, version); + content = content.replace(/%%STABILITY%%/g, "stable"); + + FILE.write(targetBasePath + "/package.xml", content); + + next2(); + } + + function next2() + { + SYSTEM.exec("pear channel-discover pear.firephp.org", function(stdout) + { + console.log(stdout); + + SYSTEM.exec("cd " + targetBasePath + "; pear package package.xml", function(stdout) + { + console.log(stdout); + + callback(); + }); + }); + } +} + +function replaceVariablesInFile(path) +{ + var content = FILE.read(path); + + // @pinf replace '0.3' with '%%VERSION%%' + var re1 = /\n(.*)\/\/\s*@pinf\s(.*)\n/g; + var match1; + while (match1 = re1.exec(content)) { + var rule = match1[2].match(/^replace (.*?) with (.*)$/); + if(rule) { + // replace variables in rule + var re2 = /%%([^%]*)%%/g; + var match2; + while (match2 = re2.exec(rule[2])) { + var value; + if(match2[1]=="VERSION") { + value = version; + } + rule[2] = rule[2].replace(match2[0], value); + } + match1[1] = match1[1].replace(rule[1], rule[2]); + content = content.replace(match1[0], "\n"+match1[1]+"\n"); + } + } + + FILE.write(path, content); +} diff --git a/htdocs/includes/firephp/firephp-core/workspace/scripts/publish.js b/htdocs/includes/firephp/firephp-core/workspace/scripts/publish.js new file mode 100644 index 00000000000..39106e1b3b3 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/scripts/publish.js @@ -0,0 +1,65 @@ + +var PINF_LOADER = require("pinf/loader"), + SANDBOX = PINF_LOADER.getSandbox(), + FILE = require("modules/file"), + Q = require("modules/q"), + SYSTEM = require("modules/system"), + BUILD = require("./build"), + JSON = require("modules/json"), + SOURCEMINT_CLIENT = false; + +exports.main = function() +{ + module.load({ + id: "private-registry.appspot.com/cadorn.com/github/com.cadorn.baby/projects/sourcemint/packages/client-js/", + descriptor: { + main: "lib/client.js" + } + }, function(id) + { + SOURCEMINT_CLIENT = require(id); + + publish(); + }); +} + +function publish() +{ + var buildPath = BUILD.getBuildPath(), + info = JSON.decode(FILE.read(buildPath + "/info.json")), + descriptor = JSON.decode(FILE.read(FILE.dirname(FILE.dirname(FILE.dirname(module.id))) + "/package.json")); + + var bundles = {}; + bundles["firephp-core.zip"] = { + "type": "zip", + "options": { + "archivePath": buildPath + "/FirePHPCore-" + info.version + ".zip", + } + }; + + var packages = [ + { + "uid": descriptor.uid, + "stream": "stable", + "version": info.version, + "bundles": bundles + } + ]; + + try + { + Q.when(SOURCEMINT_CLIENT.publish(packages), function(info) + { + module.print("\0green(Published:\n"); + console.log(info); + module.print("\0)"); + }, function(e) + { + throw e; + }); + } + catch(e) + { + console.error("Error: " + e); + } +} diff --git a/htdocs/includes/firephp/firephp-core/workspace/tpl/license.tpl.md b/htdocs/includes/firephp/firephp-core/workspace/tpl/license.tpl.md new file mode 100644 index 00000000000..1b0aaf26962 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/tpl/license.tpl.md @@ -0,0 +1,21 @@ +[MIT License](http://www.opensource.org/licenses/mit-license.php) + +Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/workspace/tpl/pear.package.tpl.xml b/htdocs/includes/firephp/firephp-core/workspace/tpl/pear.package.tpl.xml new file mode 100644 index 00000000000..b9f3d65a43d --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/tpl/pear.package.tpl.xml @@ -0,0 +1,61 @@ + + + + FirePHPCore + pear.firephp.org + Log variables from PHP to the browser (Firebug Console) + Handles all communication between the PHP code on the server and the client. Also implements all core FirePHP features. + + + Christoph Dorn + cadorn + christoph@christophdorn.com + yes + + + %%DATE%% + + %%VERSION%% + 0.3 + + + + %%STABILITY%% + stable + + + MIT + + No Notes + + + + + + + + + + + + + + + + + 4.0 + + + 1.4.5 + + + + + + + diff --git a/htdocs/includes/firephp/firephp-core/workspace/tpl/readme.tpl.md b/htdocs/includes/firephp/firephp-core/workspace/tpl/readme.tpl.md new file mode 100644 index 00000000000..01264662e85 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/tpl/readme.tpl.md @@ -0,0 +1,17 @@ +FirePHPCore Server Library +========================== + +Status: stable + +Version: [%%VERSION%%](https://github.com/firephp/firephp-core/tree/v%%VERSION%%) + +This archive contains the *FirePHPCore* PHP server library. + +Links +----- + + * Documentation: http://docs.sourcemint.org/firephp.org/firephp/1/-docs/ + * Install: http://docs.sourcemint.org/firephp.org/firephp/1/-docs/Configuration/Traditional + * Support: http://docs.sourcemint.org/firephp.org/firephp/1/-docs/OpenSource#support + * Author: [Christoph Dorn](http://www.christophdorn.com/) + * License: [MIT License](http://www.opensource.org/licenses/mit-license.php) From b1168d223a09846865fe28d01c2b0f34b78b222b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Sep 2015 17:52:34 +0200 Subject: [PATCH 105/205] NEW Introduce table llx_overwrite_trans to be able to overwrite translations by simple database edition. --- htdocs/core/class/translate.class.php | 185 ++++++++++++++++-- .../install/mysql/migration/3.8.0-3.9.0.sql | 10 + .../mysql/tables/llx_overwrite_trans.sql | 27 +++ 3 files changed, 208 insertions(+), 14 deletions(-) create mode 100644 htdocs/install/mysql/tables/llx_overwrite_trans.sql diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php index e477bdeb714..27bcb64da3c 100644 --- a/htdocs/core/class/translate.class.php +++ b/htdocs/core/class/translate.class.php @@ -29,17 +29,17 @@ */ class Translate { - var $dir; // Directories that contains /langs subdirectory + var $dir; // Directories that contains /langs subdirectory - var $defaultlang; // Current language for current user - var $direction = 'ltr'; // Left to right or Right to left - var $charset_output='UTF-8'; // Codage used by "trans" method outputs + var $defaultlang; // Current language for current user + var $direction = 'ltr'; // Left to right or Right to left + var $charset_output='UTF-8'; // Codage used by "trans" method outputs - var $tab_translate=array(); // Array of all translations key=>value - private $_tab_loaded=array(); // Array to store result after loading each language file + var $tab_translate=array(); // Array of all translations key=>value + private $_tab_loaded=array(); // Array to store result after loading each language file - var $cache_labels=array(); // Cache for labels return by getLabelFromKey method - var $cache_currencies=array(); // Cache to store currency symbols + var $cache_labels=array(); // Cache for labels return by getLabelFromKey method + var $cache_currencies=array(); // Cache to store currency symbols @@ -157,9 +157,11 @@ class Translate * @param int $forcelangdir To force a different lang directory * @return int <0 if KO, 0 if already loaded or loading not required, >0 if OK */ - function Load($domain,$alt=0,$stopafterdirection=0,$forcelangdir='') + function load($domain,$alt=0,$stopafterdirection=0,$forcelangdir='') { - global $conf; + global $conf,$db; + + if (count($this->tab_translate) == 0) $this->loadFromDatabase($db); // Nothing was loaded yet, so we load database. // Check parameters if (empty($domain)) @@ -239,7 +241,7 @@ class Translate $tmparray=dol_getcache($usecachekey); if (is_array($tmparray) && count($tmparray)) { - $this->tab_translate=array_merge($tmparray,$this->tab_translate); // Already found values tab_translate overwrites duplicates + $this->tab_translate+=$tmparray; // Faster than array_merge($tmparray,$this->tab_translate). Note: If a valuer already exists into tab_translate, value into tmparaay is not added. //print $newdomain."\n"; //var_dump($this->tab_translate); if ($alt == 2) $fileread=1; @@ -329,11 +331,12 @@ class Translate if (empty($this->_tab_loaded[$newdomain])) $this->_tab_loaded[$newdomain]=2; // Marque ce fichier comme non trouve } - - // Overwrite translation + // This part is deprecated and replaced with table llx_overwrite_trans + // Kept for backward compatibility. $overwritekey='MAIN_OVERWRITE_TRANS_'.$this->defaultlang; if (! empty($conf->global->$overwritekey)) // Overwrite translation with key1:newstring1,key2:newstring2 { + // Overwrite translation with param MAIN_OVERWRITE_TRANS_xx_XX $tmparray=explode(',', $conf->global->$overwritekey); foreach($tmparray as $tmp) { @@ -342,13 +345,167 @@ class Translate } } - // Check to be sure that SeparatorDecimal differs from SeparatorThousand + + + // Check to be sure that SeparatorDecimal differs from SeparatorThousand if (! empty($this->tab_translate["SeparatorDecimal"]) && ! empty($this->tab_translate["SeparatorThousand"]) && $this->tab_translate["SeparatorDecimal"] == $this->tab_translate["SeparatorThousand"]) $this->tab_translate["SeparatorThousand"]=''; return 1; } + /** + * Load translation key-value from database into a memory array. + * If data already loaded, do nothing. + * All data in translation array are stored in UTF-8 format. + * tab_loaded is completed with $domain key. + * rule "we keep first entry found with we keep last entry found" so it is probably not what you want to do. + * + * Value for hash are: 1:Loaded from disk, 2:Not found, 3:Loaded from cache + * + * @param Database $db Database handler + * @return int <0 if KO, 0 if already loaded or loading not required, >0 if OK + */ + function loadFromDatabase($db) + { + global $conf; + + $domain='database'; + + if ($this->defaultlang == 'none_NONE') return 0; // Special language code to not translate keys + + // Check parameters + if (empty($db)) return 0; // Database handler can't be used + + //dol_syslog("Translate::Load Start domain=".$domain." alt=".$alt." forcelangdir=".$forcelangdir." this->defaultlang=".$this->defaultlang); + + $newdomain = $domain; + $modulename = ''; + + // Check cache + if (! empty($this->_tab_loaded[$newdomain])) // File already loaded for this domain + { + //dol_syslog("Translate::Load already loaded for newdomain=".$newdomain); + return 0; + } + + $this->_tab_loaded[$newdomain] = 1; // We want to be sure this function is called once only. + + $fileread=0; + $langofdir=(empty($forcelangdir)?$this->defaultlang:$forcelangdir); + + // Redefine alt + $alt=2; + + if (empty($langofdir)) // This may occurs when load is called without setting the language and without providing a value for forcelangdir + { + dol_syslog("Error: ".get_class($this)."::Load was called but language was not set yet with langs->setDefaultLang(). Nothing will be loaded.", LOG_WARNING); + return -1; + } + + // TODO Move cache read out of loop on dirs or at least filelangexists + $found=false; + + // Enable caching of lang file in memory (not by default) + $usecachekey=''; + // Using a memcached server + if (! empty($conf->memcached->enabled) && ! empty($conf->global->MEMCACHED_SERVER)) + { + $usecachekey=$newdomain.'_'.$langofdir.'_'.md5($file_lang); // Should not contains special chars + } + // Using cache with shmop. Speed gain: 40ms - Memory overusage: 200ko (Size of session cache file) + else if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x02)) + { + $usecachekey=$newdomain; + } + + if ($usecachekey) + { + //dol_syslog('Translate::Load we will cache result into usecachekey '.$usecachekey); + //global $aaa; $aaa+=1; + //print $aaa." ".$usecachekey."\n"; + require_once DOL_DOCUMENT_ROOT .'/core/lib/memory.lib.php'; + $tmparray=dol_getcache($usecachekey); + if (is_array($tmparray) && count($tmparray)) + { + $this->tab_translate+=$tmparray; // Faster than array_merge($tmparray,$this->tab_translate). Note: If a valuer already exists into tab_translate, value into tmparaay is not added. + //print $newdomain."\n"; + //var_dump($this->tab_translate); + if ($alt == 2) $fileread=1; + $found=true; // Found in dolibarr PHP cache + } + } + + if (! $found) + { + // Overwrite translation with database read + $sql="SELECT transkey, transvalue FROM ".MAIN_DB_PREFIX."overwrite_trans where lang='".$this->defaultlang."'"; + $resql=$db->query($sql); + + if ($resql) + { + $num = $db->num_rows($resql); + if ($num) + { + if ($usecachekey) $tabtranslatedomain=array(); // To save lang content in cache + + $i = 0; + while ($i < $num) // Ex: Need 225ms for all fgets on all lang file for Third party page. Same speed than file_get_contents + { + $obj=$db->fetch_object($resql); + + $key=$obj->transkey; + $value=$obj->transvalue; + + //print "Domain=$domain, found a string for $tab[0] with value $tab[1]
"; + if (empty($this->tab_translate[$key])) // If translation was already found, we must not continue, even if MAIN_FORCELANGDIR is set (MAIN_FORCELANGDIR is to replace lang dir, not to overwrite entries) + { + $value=trim(preg_replace('/\\n/',"\n",$value)); + + $this->tab_translate[$key]=$value; + if ($usecachekey) $tabtranslatedomain[$key]=$value; // To save lang content in cache + } + + $i++; + } + + $fileread=1; + + // TODO Move cache write out of loop on dirs + // To save lang content for usecachekey into cache + if ($usecachekey && count($tabtranslatedomain)) + { + $ressetcache=dol_setcache($usecachekey,$tabtranslatedomain); + if ($ressetcache < 0) + { + $error='Failed to set cache for usecachekey='.$usecachekey.' result='.$ressetcache; + dol_syslog($error, LOG_ERR); + } + } + } + } + else + { + dol_print_error($db); + } + } + + if ($alt == 2) + { + if ($fileread) $this->_tab_loaded[$newdomain]=1; // Set domain file as loaded + + if (empty($this->_tab_loaded[$newdomain])) $this->_tab_loaded[$newdomain]=2; // Marque ce cas comme non trouve (no lines found for language) + } + + // Check to be sure that SeparatorDecimal differs from SeparatorThousand + if (! empty($this->tab_translate["SeparatorDecimal"]) && ! empty($this->tab_translate["SeparatorThousand"]) + && $this->tab_translate["SeparatorDecimal"] == $this->tab_translate["SeparatorThousand"]) $this->tab_translate["SeparatorThousand"]=''; + + return 1; + } + + + /** * Return translated value of key for special keys ("Currency...", "Civility...", ...). * Search in lang file, then into database. Key must be any complete entry into lang file: CurrencyEUR, ... diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql index dc778fd0eca..f9e649dfaf5 100755 --- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql +++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql @@ -31,3 +31,13 @@ ALTER TABLE llx_accountingaccount RENAME TO llx_accounting_account; ALTER TABLE llx_societe ADD COLUMN model_pdf varchar(255); ALTER TABLE llx_societe_commerciaux ADD COLUMN import_key varchar(14) AFTER fk_user; + + +create table llx_overwrite_trans +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + lang varchar(5), -- en_US, fr_FR ... + transkey varchar(128), + transvalue text +)ENGINE=innodb; + diff --git a/htdocs/install/mysql/tables/llx_overwrite_trans.sql b/htdocs/install/mysql/tables/llx_overwrite_trans.sql new file mode 100644 index 00000000000..152fe5e7a0c --- /dev/null +++ b/htdocs/install/mysql/tables/llx_overwrite_trans.sql @@ -0,0 +1,27 @@ +-- ============================================================================ +-- Copyright (C) 2013 Laurent Destailleur +-- +-- 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 . +-- ============================================================================ + + +create table llx_overwrite_trans +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + lang varchar(5), -- en_US, fr_FR ... + transkey varchar(128), + transvalue text +)ENGINE=innodb; + + From 57521f628c35109cd6f88fd4693d7bb1375bc27a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Sep 2015 19:35:03 +0200 Subject: [PATCH 106/205] Fix bad path --- htdocs/core/class/html.form.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index f1492f9a5b4..c732b8cd673 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -3015,7 +3015,7 @@ class Form global $langs; $langs->load("categories"); - include_once DOL_DOCUMENT_ROOT.'/categories/class.categorie.class.php'; + include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $cat = new Categorie($this->db); $cate_arbo = $cat->get_full_arbo($type,$excludeafterid); @@ -4675,7 +4675,7 @@ class Form { global $db; - include_once DOL_DOCUMENT_ROOT.'/categories/class.categorie.class.php'; + include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $cat = new Categorie($db); $categories = $cat->containing($id, $type); From 81b447dd0f9e714d9ad0e05694dc5f0b044f8f92 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Sep 2015 19:51:56 +0200 Subject: [PATCH 107/205] NEW Add color on categories --- htdocs/categories/class/categorie.class.php | 30 ++++++++++++++----- htdocs/categories/edit.php | 9 ++++++ htdocs/categories/viewcat.php | 10 ++++++- .../install/mysql/migration/3.8.0-3.9.0.sql | 1 + htdocs/install/mysql/tables/llx_categorie.sql | 4 +-- 5 files changed, 43 insertions(+), 11 deletions(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index e79abfd9d3d..acc569dcec3 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -116,6 +116,13 @@ class Categorie extends CommonObject var $fk_parent; var $label; var $description; + /** + * @var string Color + */ + var $color; + /** + * @var ??? + */ var $socid; /** * @var int Category type @@ -156,7 +163,7 @@ class Categorie extends CommonObject // Check parameters if (empty($id) && empty($label)) return -1; - $sql = "SELECT rowid, fk_parent, entity, label, description, fk_soc, visible, type"; + $sql = "SELECT rowid, fk_parent, entity, label, description, color, fk_soc, visible, type"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; if ($id) { @@ -180,6 +187,7 @@ class Categorie extends CommonObject $this->fk_parent = $res['fk_parent']; $this->label = $res['label']; $this->description = $res['description']; + $this->color = $res['color']; $this->socid = $res['fk_soc']; $this->visible = $res['visible']; $this->type = $res['type']; @@ -225,6 +233,7 @@ class Categorie extends CommonObject // Clean parameters $this->label = trim($this->label); $this->description = trim($this->description); + $this->color = trim($this->color); $this->import_key = trim($this->import_key); if (empty($this->visible)) $this->visible=0; $this->fk_parent = ($this->fk_parent != "" ? intval($this->fk_parent) : 0); @@ -244,6 +253,7 @@ class Categorie extends CommonObject $sql.= "fk_parent,"; $sql.= " label,"; $sql.= " description,"; + $sql.= " color,"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql.= "fk_soc,"; @@ -256,6 +266,7 @@ class Categorie extends CommonObject $sql.= $this->fk_parent.","; $sql.= "'".$this->db->escape($this->label)."',"; $sql.= "'".$this->db->escape($this->description)."',"; + $sql.= "'".$this->db->escape($this->color)."',"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql.= ($this->socid != -1 ? $this->socid : 'null').","; @@ -358,6 +369,7 @@ class Categorie extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."categorie"; $sql.= " SET label = '".$this->db->escape($this->label)."',"; $sql.= " description = '".$this->db->escape($this->description)."'"; + $sql.= " color = '".$this->db->escape($this->color)."'"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql .= ", fk_soc = ".($this->socid != -1 ? $this->socid : 'null'); @@ -562,14 +574,15 @@ class Categorie extends CommonObject if ($this->id == -1) return -2; // For backward compatibility - if ($type == 'societe') { + if ($type == 'societe') + { $type = 'customer'; - dol_syslog( get_class( $this ) . "::add_type(): type 'societe' is deprecated, please use 'customer' instead", - LOG_WARNING ); - } elseif ($type == 'fournisseur') { + dol_syslog(get_class($this) . "::add_type(): type 'societe' is deprecated, please use 'customer' instead", LOG_WARNING); + } + elseif ($type == 'fournisseur') + { $type = 'supplier'; - dol_syslog( get_class( $this ) . "::add_type(): type 'fournisseur' is deprecated, please use 'supplier' instead", - LOG_WARNING ); + dol_syslog(get_class($this) . "::add_type(): type 'fournisseur' is deprecated, please use 'supplier' instead", LOG_WARNING); } $this->db->begin(); @@ -876,7 +889,7 @@ class Categorie extends CommonObject $current_lang = $langs->getDefaultLang(); // Init $this->cats array - $sql = "SELECT DISTINCT c.rowid, c.label, c.description, c.fk_parent"; // Distinct reduce pb with old tables with duplicates + $sql = "SELECT DISTINCT c.rowid, c.label, c.description, c.color, c.fk_parent"; // Distinct reduce pb with old tables with duplicates if (! empty($conf->global->MAIN_MULTILANGS)) $sql.= ", t.label as label_trans, t.description as description_trans"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie as c"; if (! empty($conf->global->MAIN_MULTILANGS)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_lang as t ON t.fk_category=c.rowid AND t.lang='".$current_lang."'"; @@ -895,6 +908,7 @@ class Categorie extends CommonObject $this->cats[$obj->rowid]['fk_parent'] = $obj->fk_parent; $this->cats[$obj->rowid]['label'] = ! empty($obj->label_trans) ? $obj->label_trans : $obj->label; $this->cats[$obj->rowid]['description'] = ! empty($obj->description_trans) ? $obj->description_trans : $obj->description; + $this->cats[$obj->rowid]['color'] = $obj->color; $i++; } } diff --git a/htdocs/categories/edit.php b/htdocs/categories/edit.php index 362c2b324a1..228f02eb881 100644 --- a/htdocs/categories/edit.php +++ b/htdocs/categories/edit.php @@ -39,6 +39,7 @@ $confirm=GETPOST('confirm'); $socid=GETPOST('socid','int'); $label=GETPOST('label'); $description=GETPOST('description'); +$color=GETPOST('color','alpha'); $visible=GETPOST('visible'); $parent=GETPOST('parent'); @@ -71,6 +72,7 @@ if ($action == 'update' && $user->rights->categorie->creer) $categorie->label = $label; $categorie->description = dol_htmlcleanlastbr($description); + $categorie->color = $color; $categorie->socid = ($socid ? $socid : 'null'); $categorie->visible = $visible; @@ -152,6 +154,13 @@ $doleditor=new DolEditor('description',$object->description,'',200,'dolibarr_not $doleditor->Create(); print ''; +// Color +print '
'; +print ''; +print ''; + // Parent category print ''; // Description -print ''; +// Color +print ''; + $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)) { diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql index f9e649dfaf5..c2a1d7eb5ec 100755 --- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql +++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql @@ -32,6 +32,7 @@ ALTER TABLE llx_societe ADD COLUMN model_pdf varchar(255); ALTER TABLE llx_societe_commerciaux ADD COLUMN import_key varchar(14) AFTER fk_user; +ALTER TABLE llx_categorie ADD COLUMN color varchar(8); create table llx_overwrite_trans ( diff --git a/htdocs/install/mysql/tables/llx_categorie.sql b/htdocs/install/mysql/tables/llx_categorie.sql index 27cf35dd03d..708049b01bf 100644 --- a/htdocs/install/mysql/tables/llx_categorie.sql +++ b/htdocs/install/mysql/tables/llx_categorie.sql @@ -26,10 +26,10 @@ create table llx_categorie label varchar(255) NOT NULL, -- category name type tinyint DEFAULT 1 NOT NULL, -- category type (product, supplier, customer, member) description text, -- description of the category - fk_soc integer DEFAULT NULL, -- attribution of the category has a company (for product only) + color varchar(8), -- color + fk_soc integer DEFAULT NULL, -- not used by default. Used when option CATEGORY_ASSIGNED_TO_A_CUSTOMER is set. visible tinyint DEFAULT 1 NOT NULL, -- determine if the products are visible or not import_key varchar(14) -- Import key - )ENGINE=innodb; -- From c8e08392964d49f6ef9b7736413bb021221fc0e4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Sep 2015 20:00:54 +0200 Subject: [PATCH 108/205] NEW Add color on categories --- htdocs/categories/card.php | 9 +++++++++ htdocs/categories/class/categorie.class.php | 2 +- htdocs/categories/edit.php | 14 +++++++++----- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/htdocs/categories/card.php b/htdocs/categories/card.php index 814badf95a7..6c4c1a39bdd 100644 --- a/htdocs/categories/card.php +++ b/htdocs/categories/card.php @@ -29,6 +29,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; $langs->load("categories"); @@ -46,6 +47,7 @@ $urlfrom = GETPOST('urlfrom','alpha'); $socid=GETPOST('socid','int'); $label=GETPOST('label'); $description=GETPOST('description'); +$color=GETPOST('color'); $visible=GETPOST('visible'); $parent=GETPOST('parent'); @@ -124,6 +126,7 @@ if ($action == 'add' && $user->rights->categorie->creer) $object->label = $label; + $object->color = $color; $object->description = dol_htmlcleanlastbr($description); $object->socid = ($socid ? $socid : 'null'); $object->visible = $visible; @@ -210,6 +213,7 @@ if (($action == 'add' || $action == 'confirmed') && $user->rights->categorie->cr */ $form = new Form($db); +$formother = new FormOther($db); llxHeader("","",$langs->trans("Categories")); @@ -250,6 +254,11 @@ if ($user->rights->categorie->creer) $doleditor->Create(); print ''; + // Color + print ''; + // Parent category print '' ]; + for ( i = 0; i < childHtmlList.length; i++ ) { + var className = 'cke_dialog_ui_hbox_child', + styles = []; + if ( i === 0 ) + className = 'cke_dialog_ui_hbox_first'; + if ( i == childHtmlList.length - 1 ) + className = 'cke_dialog_ui_hbox_last'; + html.push( '' ); + } + html.push( '' ); + return html.join( '' ); + }; + + var attribs = { role: 'presentation' }; + elementDefinition && elementDefinition.align && ( attribs.align = elementDefinition.align ); + + CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition || { type: 'hbox' }, htmlList, 'table', styles, attribs, innerHTML ); + }, + + /** + * Vertical layout box for dialog UI elements. + * + * @class CKEDITOR.ui.dialog.vbox + * @extends CKEDITOR.ui.dialog.hbox + * @constructor Creates a vbox class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {Array} childObjList + * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container. + * @param {Array} childHtmlList + * Array of HTML code that correspond to the HTML output of all the + * objects in childObjList. + * @param {Array} htmlList Array of HTML code that this element will output to. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `width` (Optional) The width of the layout. + * * `heights` (Optional) The heights of individual cells. + * * `align` (Optional) The alignment of the layout. + * * `padding` (Optional) The padding width inside child cells. + * * `expand` (Optional) Whether the layout should expand + * vertically to fill its container. + */ + vbox: function( dialog, childObjList, childHtmlList, htmlList, elementDefinition ) { + if ( arguments.length < 3 ) + return; + + this._ || ( this._ = {} ); + + var children = this._.children = childObjList, + width = elementDefinition && elementDefinition.width || null, + heights = elementDefinition && elementDefinition.heights || null; + /** @ignore */ + var innerHTML = function() { + var html = [ '
'; - $out .= $langs->trans("Link") . ': '; + $out .= $langs->trans("URLToLink") . ': '; $out .= ''; $out .= '   ' . $langs->trans("Label") . ': '; $out .= ''; @@ -200,7 +201,9 @@ class FormFile if (empty($res)) { + print '
'; print $out; + print '
'; } print $hookmanager->resPrint; diff --git a/htdocs/langs/en_US/link.lang b/htdocs/langs/en_US/link.lang index 8b1efb75ef3..6880d4d86a0 100644 --- a/htdocs/langs/en_US/link.lang +++ b/htdocs/langs/en_US/link.lang @@ -6,3 +6,4 @@ ErrorFileNotLinked=The file could not be linked LinkRemoved=The link %s has been removed ErrorFailedToDeleteLink= Failed to remove link '%s' ErrorFailedToUpdateLink= Failed to update link '%s' +URLToLink=URL to link \ No newline at end of file diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index ce4764373db..b88fcb187de 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -603,7 +603,10 @@ div.ficheaddleft { padding-top: 1px; padding-bottom: 1px; } - +div.attacharea { + padding-top: 10px; + padding-bottom: 10px; +} /* ============================================================================== */ /* Menu top et 1ere ligne tableau */ From fc91e553ad98e8316936f6356bcbbff8a278edbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Fri, 11 Sep 2015 17:37:58 +0200 Subject: [PATCH 057/205] Setup FirePHP like ChromePHP --- COPYRIGHT | 1 + composer.json | 3 +- composer.lock | 38 +++++++- .../modules/syslog/mod_syslog_firephp.php | 93 +++++++++++-------- 4 files changed, 96 insertions(+), 39 deletions(-) diff --git a/COPYRIGHT b/COPYRIGHT index c38873a2f07..534770f0f75 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -16,6 +16,7 @@ AdoDb-Date 0.33 Modified BSD License Yes ChromePHP 4.1.0 Apache Software License 2.0 Yes Return server log to chrome browser console CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG EvalMath 1.0 BSD Yes Safe math expressions evaluation +FirePHPCore 0.4.0 MIT License Yes Send logs to Firefox Firebug console FPDI 1.5.2 Apache Software License 2.0 Yes PDF templates management GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package) Mobiledetect 2.8.3 MIT License Yes Detect mobile devices browsers diff --git a/composer.json b/composer.json index cddc166bb42..80e55b6a221 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,8 @@ "phpoffice/phpexcel": "1.8.0", "restler/framework": "^3.0", "tecnick.com/tcpdf": "6.2.6", - "raven/raven": "^0.12.0" + "raven/raven": "^0.12.0", + "firephp/firephp-core": "^0.4.0" }, "suggest": { "ext-mysqlnd": "To use with MySQL or MariaDB", diff --git a/composer.lock b/composer.lock index 81c767d5e9b..f178ec4f419 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "2ab34d0ff69b48500c20621330c1bfd7", + "hash": "f441e6348ae7862942693cab10810418", "packages": [ { "name": "ccampbell/chromephp", @@ -90,6 +90,42 @@ ], "time": "2014-02-26 15:34:37" }, + { + "name": "firephp/firephp-core", + "version": "v0.4.0", + "source": { + "type": "git", + "url": "https://github.com/firephp/firephp-core.git", + "reference": "fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firephp/firephp-core/zipball/fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf", + "reference": "fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/FirePHPCore/FirePHP.class.php", + "lib/FirePHPCore/fb.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com", + "homepage": "http://christophdorn.com" + } + ], + "description": "Traditional FirePHPCore library for sending PHP variables to the browser.", + "homepage": "https://github.com/firephp/firephp-core", + "time": "2013-04-23 15:28:20" + }, { "name": "mobiledetect/mobiledetectlib", "version": "2.8.3", diff --git a/htdocs/core/modules/syslog/mod_syslog_firephp.php b/htdocs/core/modules/syslog/mod_syslog_firephp.php index 08c0b91efc6..fa6111c80a3 100644 --- a/htdocs/core/modules/syslog/mod_syslog_firephp.php +++ b/htdocs/core/modules/syslog/mod_syslog_firephp.php @@ -1,4 +1,20 @@ + * Copyright (C) 2015 Raphaël Doursenaud + * + * 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 . + */ require_once DOL_DOCUMENT_ROOT.'/core/modules/syslog/logHandler.php'; @@ -7,7 +23,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/syslog/logHandler.php'; */ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface { - var $code = 'firephp'; + public $code = 'firephp'; + private static $firephp_include_path = '/includes/firephp/firephp-core/lib/'; + private static $firephp_class_path = 'FirePHPCore/FirePHP.class.php'; /** * Return name of logger @@ -38,7 +56,7 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface { global $langs; - return $this->isActive()?'':$langs->trans('ClassNotFoundIntoPathWarning','FirePHPCore/FirePHP.class.php'); + return $this->isActive()?'':$langs->trans('ClassNotFoundIntoPathWarning', self::$firephp_class_path); } /** @@ -48,42 +66,48 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface */ public function isActive() { + global $conf; try { - set_include_path('/usr/share/php/'); - $res = @include_once 'FirePHPCore/FirePHP.class.php'; - restore_include_path(); - if ($res) - { - return 1; - } + if (empty($conf->global->SYSLOG_FIREPHP_INCLUDEPATH)) { + $conf->global->SYSLOG_FIREPHP_INCLUDEPATH = DOL_DOCUMENT_ROOT . self::$firephp_include_path; + } + set_include_path($conf->global->SYSLOG_FIREPHP_INCLUDEPATH); + $res = @include_once self::$firephp_class_path; + restore_include_path(); + if ($res) { + return 1; + } else { + return 0; + } } catch(Exception $e) { - print ''."\n"; + print ''."\n"; } return -1; } - ///** - // * Return array of configuration data - // * - // * @return array Return array of configuration data - // */ - // public function configure() - // { - // global $langs; + /** + * Return array of configuration data + * + * @return array Return array of configuration data + */ + public function configure() + { + global $langs; - // return array( - // array( - // 'name' => $langs->trans('IncludePath'), - // 'constant' => 'SYSLOG_FIREPHP_INCLUDEPATH', - // 'default' => '/usr/share/php', - // 'attr' => 'size="40"' - // ) - // ); - // } + return array( + array( + 'name' => $langs->trans('IncludePath', 'SYSLOG_FIREPHP_INCLUDEPATH'), + 'constant' => 'SYSLOG_FIREPHP_INCLUDEPATH', + 'default' => DOL_DOCUMENT_ROOT . self::$firephp_include_path, + 'attr' => 'size="60"', + 'example' => '/usr/share/php, ' . DOL_DOCUMENT_ROOT . self::$firephp_include_path + ) + ); + } /** * Return if configuration is valid @@ -92,20 +116,15 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface */ public function checkConfiguration() { - global $langs; + global $conf, $langs; $errors = array(); - $oldinclude = get_include_path(); - set_include_path('/usr/share/php/'); - - if (!file_exists('FirePHPCore/FirePHP.class.php')) + if (!file_exists($conf->global->SYSLOG_FIREPHP_INCLUDEPATH . self::$firephp_class_path)) { - $errors[] = $langs->trans("ErrorFailedToOpenFile", 'FirePhp.php'); + $errors[] = $langs->trans("ErrorFailedToOpenFile", self::$firephp_class_path); } - set_include_path($oldinclude); - return $errors; } @@ -129,8 +148,8 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface // Warning FirePHPCore must be into PHP include path. It is not possible to use into require_once() a constant from // database or config file because we must be able to log data before database or config file read. $oldinclude=get_include_path(); - set_include_path('/usr/share/php/'); - include_once 'FirePHPCore/FirePHP.class.php'; + set_include_path($conf->global->SYSLOG_FIREPHP_INCLUDEPATH); + include_once self::$firephp_class_path; set_include_path($oldinclude); ob_start(); // To be sure headers are not flushed until all page is completely processed $firephp = FirePHP::getInstance(true); From 6318b12aeba94c247443f7892b9ba891c5cb3b84 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Sep 2015 20:36:45 +0200 Subject: [PATCH 058/205] Fix confirmation of scripts make scripts not working with cron --- .../company/sync_contacts_dolibarr2ldap.php | 35 ++++++++++++------- .../members/sync_members_dolibarr2ldap.php | 25 ++++++++----- .../members/sync_members_ldap2dolibarr.php | 13 ++++--- scripts/user/sync_groups_ldap2dolibarr.php | 12 ++++--- scripts/user/sync_users_ldap2dolibarr.php | 13 ++++--- 5 files changed, 64 insertions(+), 34 deletions(-) diff --git a/scripts/company/sync_contacts_dolibarr2ldap.php b/scripts/company/sync_contacts_dolibarr2ldap.php index 8a582a77f74..2223cd1ca8f 100755 --- a/scripts/company/sync_contacts_dolibarr2ldap.php +++ b/scripts/company/sync_contacts_dolibarr2ldap.php @@ -34,12 +34,6 @@ if (substr($sapi_type, 0, 3) == 'cgi') { exit(-1); } -if (! isset($argv[1]) || ! $argv[1]) { - print "Usage: $script_file now\n"; - exit(-1); -} -$now=$argv[1]; - require_once($path."../../htdocs/master.inc.php"); require_once(DOL_DOCUMENT_ROOT."/contact/class/contact.class.php"); @@ -49,6 +43,7 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php"); // Global variables $version=DOL_VERSION; $error=0; +$confirmed=0; /* @@ -59,6 +54,18 @@ $error=0; print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n"; dol_syslog($script_file." launched with arg ".join(',',$argv)); +if (! isset($argv[1]) || ! $argv[1]) { + print "Usage: $script_file now [-y]\n"; + exit(-1); +} + +foreach($argv as $key => $val) +{ + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; +} + +$now=$argv[1]; + print "Mails sending disabled (useless in batch mode)\n"; $conf->global->MAIN_DISABLE_ALL_MAILS=1; // On bloque les mails print "\n"; @@ -77,12 +84,16 @@ print "login=".$conf->global->LDAP_ADMIN_DN."\n"; print "pass=".preg_replace('/./i','*',$conf->global->LDAP_ADMIN_PASS)."\n"; print "DN target=".$conf->global->LDAP_CONTACT_DN."\n"; print "\n"; -print "Press a key to confirm...\n"; -$input = trim(fgets(STDIN)); -print "Warning, this operation may result in data loss if it failed.\n"; -print "Be sure to have a backup of your LDAP database (With OpenLDAP: slapcat > save.ldif).\n"; -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); + +if (! $confirmed) +{ + print "Press a key to confirm...\n"; + $input = trim(fgets(STDIN)); + print "Warning, this operation may result in data loss if it failed.\n"; + print "Be sure to have a backup of your LDAP database (With OpenLDAP: slapcat > save.ldif).\n"; + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} /* if (! $conf->global->LDAP_CONTACT_ACTIVE) diff --git a/scripts/members/sync_members_dolibarr2ldap.php b/scripts/members/sync_members_dolibarr2ldap.php index 13529561a80..bfe16330b79 100755 --- a/scripts/members/sync_members_dolibarr2ldap.php +++ b/scripts/members/sync_members_dolibarr2ldap.php @@ -43,7 +43,7 @@ $langs->load("main"); // Global variables $version=DOL_VERSION; $error=0; - +$confirmed=0; /* @@ -55,9 +55,15 @@ print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n"; dol_syslog($script_file." launched with arg ".join(',',$argv)); if (! isset($argv[1]) || ! $argv[1]) { - print "Usage: $script_file now\n"; + print "Usage: $script_file now [-y]\n"; exit(-1); } + +foreach($argv as $key => $val) +{ + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; +} + $now=$argv[1]; print "Mails sending disabled (useless in batch mode)\n"; @@ -78,13 +84,16 @@ print "login=".$conf->global->LDAP_ADMIN_DN."\n"; print "pass=".preg_replace('/./i','*',$conf->global->LDAP_ADMIN_PASS)."\n"; print "DN target=".$conf->global->LDAP_MEMBER_DN."\n"; print "\n"; -print "Press a key to confirm...\n"; -$input = trim(fgets(STDIN)); -print "Warning, this operation may result in data loss if it failed.\n"; -print "Be sure to have a backup of your LDAP database (With OpenLDAP: slapcat > save.ldif).\n"; -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); +if (! $confirmed) +{ + print "Press a key to confirm...\n"; + $input = trim(fgets(STDIN)); + print "Warning, this operation may result in data loss if it failed.\n"; + print "Be sure to have a backup of your LDAP database (With OpenLDAP: slapcat > save.ldif).\n"; + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} /* if (! $conf->global->LDAP_MEMBER_ACTIVE) diff --git a/scripts/members/sync_members_ldap2dolibarr.php b/scripts/members/sync_members_ldap2dolibarr.php index 4ed5e36f696..cf18a75e508 100755 --- a/scripts/members/sync_members_ldap2dolibarr.php +++ b/scripts/members/sync_members_ldap2dolibarr.php @@ -48,7 +48,7 @@ $langs->load("errors"); $version=DOL_VERSION; $error=0; $forcecommit=0; - +$confirmed=0; /* @@ -94,7 +94,7 @@ $required_fields=array_unique(array_values(array_filter($required_fields, "dolVa if (! isset($argv[2]) || ! is_numeric($argv[2])) { - print "Usage: $script_file (nocommitiferror|commitiferror) id_member_type [--server=ldapserverhost]\n"; + print "Usage: $script_file (nocommitiferror|commitiferror) id_member_type [--server=ldapserverhost] [-y]\n"; exit(-1); } @@ -103,6 +103,7 @@ foreach($argv as $key => $val) { if ($val == 'commitiferror') $forcecommit=1; if (preg_match('/--server=([^\s]+)$/',$val,$reg)) $conf->global->LDAP_SERVER_HOST=$reg[1]; + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; } print "Mails sending disabled (useless in batch mode)\n"; @@ -139,9 +140,11 @@ if ($typeid <= 0) } -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); - +if (! $confirmed) +{ + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} // Load table of correspondence of countries $hashlib2rowid=array(); diff --git a/scripts/user/sync_groups_ldap2dolibarr.php b/scripts/user/sync_groups_ldap2dolibarr.php index 93406276ead..b48a4af974e 100755 --- a/scripts/user/sync_groups_ldap2dolibarr.php +++ b/scripts/user/sync_groups_ldap2dolibarr.php @@ -49,6 +49,7 @@ $langs->load("errors"); $version=DOL_VERSION; $error=0; $forcecommit=0; +$confirmed=0; /* @@ -73,7 +74,7 @@ $required_fields=array_unique(array_values(array_filter($required_fields, "dolVa if (! isset($argv[1])) { //print "Usage: $script_file (nocommitiferror|commitiferror) [id_group]\n"; - print "Usage: $script_file (nocommitiferror|commitiferror) [--server=ldapserverhost] [--excludeuser=user1,user2...]\n"; + print "Usage: $script_file (nocommitiferror|commitiferror) [--server=ldapserverhost] [--excludeuser=user1,user2...] [-y]\n"; exit(-1); } @@ -82,6 +83,7 @@ foreach($argv as $key => $val) if ($val == 'commitiferror') $forcecommit=1; if (preg_match('/--server=([^\s]+)$/',$val,$reg)) $conf->global->LDAP_SERVER_HOST=$reg[1]; if (preg_match('/--excludeuser=([^\s]+)$/',$val,$reg)) $excludeuser=explode(',',$reg[1]); + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; } print "Mails sending disabled (useless in batch mode)\n"; @@ -105,9 +107,11 @@ print "commitiferror=".$forcecommit."\n"; print "Mapped LDAP fields=".join(',',$required_fields)."\n"; print "\n"; -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); - +if (! $confirmed) +{ + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} if (empty($conf->global->LDAP_GROUP_DN)) { diff --git a/scripts/user/sync_users_ldap2dolibarr.php b/scripts/user/sync_users_ldap2dolibarr.php index 296db5ec0b2..53a48cc03ca 100755 --- a/scripts/user/sync_users_ldap2dolibarr.php +++ b/scripts/user/sync_users_ldap2dolibarr.php @@ -48,7 +48,7 @@ $version=DOL_VERSION; $error=0; $forcecommit=0; $excludeuser=array(); - +$confirmed=0; /* * Main @@ -85,7 +85,7 @@ $required_fields = array( $required_fields=array_unique(array_values(array_filter($required_fields, "dolValidElement"))); if (! isset($argv[1])) { - print "Usage: $script_file (nocommitiferror|commitiferror) [--server=ldapserverhost] [--excludeuser=user1,user2...]\n"; + print "Usage: $script_file (nocommitiferror|commitiferror) [--server=ldapserverhost] [--excludeuser=user1,user2...] [-y]\n"; exit(-1); } @@ -94,6 +94,7 @@ foreach($argv as $key => $val) if ($val == 'commitiferror') $forcecommit=1; if (preg_match('/--server=([^\s]+)$/',$val,$reg)) $conf->global->LDAP_SERVER_HOST=$reg[1]; if (preg_match('/--excludeuser=([^\s]+)$/',$val,$reg)) $excludeuser=explode(',',$reg[1]); + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; } print "Mails sending disabled (useless in batch mode)\n"; @@ -118,9 +119,11 @@ print "excludeuser=".join(',',$excludeuser)."\n"; print "Mapped LDAP fields=".join(',',$required_fields)."\n"; print "\n"; -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); - +if (! $confirmed) +{ + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} if (empty($conf->global->LDAP_USER_DN)) { From c6081f0fa2063324f9b040742ab6181bd3be3ceb Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Fri, 11 Sep 2015 20:38:32 +0200 Subject: [PATCH 059/205] Fix multientity stock management (F.Henry followup) --- htdocs/product/class/product.class.php | 2 +- htdocs/product/stock/class/entrepot.class.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 13fc195ff06..41c73a227a4 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -2994,7 +2994,7 @@ class Product extends CommonObject $sql = "SELECT ps.reel, ps.fk_entrepot, ps.pmp, ps.rowid"; $sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps"; $sql.= ", ".MAIN_DB_PREFIX."entrepot as w"; - $sql.= " WHERE w.entity IN (".getEntity('warehouse', 1).")"; + $sql.= " WHERE w.entity IN (".getEntity('stock', 1).")"; $sql.= " AND w.rowid = ps.fk_entrepot"; $sql.= " AND ps.fk_product = ".$this->id; diff --git a/htdocs/product/stock/class/entrepot.class.php b/htdocs/product/stock/class/entrepot.class.php index 61c88abcaa5..b65c01f6840 100644 --- a/htdocs/product/stock/class/entrepot.class.php +++ b/htdocs/product/stock/class/entrepot.class.php @@ -358,7 +358,7 @@ class Entrepot extends CommonObject $sql = "SELECT rowid, label"; $sql.= " FROM ".MAIN_DB_PREFIX."entrepot"; - $sql.= " WHERE entity IN (".getEntity('warehouse', 1).")"; + $sql.= " WHERE entity IN (".getEntity('stock', 1).")"; $sql.= " AND statut = ".$status; $result = $this->db->query($sql); From 5bc74ad6ea9c30167ae4ad757816c578f7e294ba Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 11:23:44 +0200 Subject: [PATCH 060/205] Fix SQL injections #3300 --- .../class/askpricesupplier.class.php | 6 ++-- htdocs/comm/propal/class/propal.class.php | 6 ++-- htdocs/commande/class/commande.class.php | 8 ++--- htdocs/compta/facture/class/facture.class.php | 4 +-- htdocs/contact/class/contact.class.php | 4 +-- htdocs/fichinter/class/fichinter.class.php | 4 +-- .../class/fournisseur.commande.class.php | 4 +-- htdocs/product/class/product.class.php | 8 ++--- htdocs/societe/class/societe.class.php | 32 +++++++++---------- 9 files changed, 38 insertions(+), 38 deletions(-) diff --git a/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php b/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php index 2854a0a0d4b..bee62cb384d 100644 --- a/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php +++ b/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php @@ -757,8 +757,8 @@ class AskPriceSupplier extends CommonObject $sql.= $this->socid; $sql.= ", 0"; $sql.= ", ".$this->remise; - $sql.= ", ".($this->remise_percent?$this->remise_percent:'null'); - $sql.= ", ".($this->remise_absolue?$this->remise_absolue:'null'); + $sql.= ", ".($this->remise_percent?$this->db->escape($this->remise_percent):'null'); + $sql.= ", ".($this->remise_absolue?$this->db->escape($this->remise_absolue):'null'); $sql.= ", 0"; $sql.= ", 0"; $sql.= ", '".$this->db->idate($now)."'"; @@ -766,7 +766,7 @@ class AskPriceSupplier extends CommonObject $sql.= ", ".($user->id > 0 ? "'".$user->id."'":"null"); $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; - $sql.= ", '".$this->modelpdf."'"; + $sql.= ", '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".$this->cond_reglement_id; $sql.= ", ".$this->mode_reglement_id; $sql.= ", ".($this->fk_account>0?$this->fk_account:'NULL'); diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 77c4e5c6f76..421b2506e73 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -858,8 +858,8 @@ class Propal extends CommonObject $sql.= $this->socid; $sql.= ", 0"; $sql.= ", ".$this->remise; - $sql.= ", ".($this->remise_percent?$this->remise_percent:'null'); - $sql.= ", ".($this->remise_absolue?$this->remise_absolue:'null'); + $sql.= ", ".($this->remise_percent?$this->db->escape($this->remise_percent):'null'); + $sql.= ", ".($this->remise_absolue?$this->db->escape($this->remise_absolue):'null'); $sql.= ", 0"; $sql.= ", 0"; $sql.= ", '".$this->db->idate($this->date)."'"; @@ -868,7 +868,7 @@ class Propal extends CommonObject $sql.= ", ".($user->id > 0 ? "'".$user->id."'":"null"); $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; - $sql.= ", '".$this->modelpdf."'"; + $sql.= ", '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".($this->fin_validite!=''?"'".$this->db->idate($this->fin_validite)."'":"null"); $sql.= ", ".$this->cond_reglement_id; $sql.= ", ".$this->mode_reglement_id; diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index d6d93c17bd8..32fe2d52726 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -745,13 +745,13 @@ class Commande extends CommonOrder $sql.= " VALUES ('(PROV)',".$this->socid.", '".$this->db->idate($now)."', ".$user->id; $sql.= ", ".($this->fk_project>0?$this->fk_project:"null"); $sql.= ", '".$this->db->idate($date)."'"; - $sql.= ", ".($this->source>=0 && $this->source != '' ?$this->source:'null'); + $sql.= ", ".($this->source>=0 && $this->source != '' ?$this->db->escape($this->source):'null'); $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; $sql.= ", ".($this->ref_ext?"'".$this->db->escape($this->ref_ext)."'":"null"); $sql.= ", ".($this->ref_client?"'".$this->db->escape($this->ref_client)."'":"null"); $sql.= ", ".($this->ref_int?"'".$this->db->escape($this->ref_int)."'":"null"); - $sql.= ", '".$this->modelpdf."'"; + $sql.= ", '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".($this->cond_reglement_id>0?"'".$this->cond_reglement_id."'":"null"); $sql.= ", ".($this->mode_reglement_id>0?"'".$this->mode_reglement_id."'":"null"); $sql.= ", ".($this->fk_account>0?$this->fk_account:'NULL'); @@ -760,8 +760,8 @@ class Commande extends CommonOrder $sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null"); $sql.= ", ".($this->fk_delivery_address>0?$this->fk_delivery_address:'NULL'); $sql.= ", ".($this->shipping_method_id>0?$this->shipping_method_id:'NULL'); - $sql.= ", ".($this->remise_absolue>0?$this->remise_absolue:'NULL'); - $sql.= ", ".($this->remise_percent>0?$this->remise_percent:0); + $sql.= ", ".($this->remise_absolue>0?$this->db->escape($this->remise_absolue):'NULL'); + $sql.= ", ".($this->remise_percent>0?$this->db->escape($this->remise_percent):0); $sql.= ", ".(int) $this->fk_incoterms; $sql.= ", '".$this->db->escape($this->location_incoterms)."'"; $sql.= ", ".$conf->entity; diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 98afb750fd6..73da2cfce2f 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -332,7 +332,7 @@ class Facture extends CommonInvoice $sql.= "'(PROV)'"; $sql.= ", ".$conf->entity; $sql.= ", ".($this->ref_ext?"'".$this->db->escape($this->ref_ext)."'":"null"); - $sql.= ", '".$this->type."'"; + $sql.= ", '".$this->db->escape($this->type)."'"; $sql.= ", '".$socid."'"; $sql.= ", '".$this->db->idate($now)."'"; $sql.= ", ".($this->remise_absolue>0?$this->remise_absolue:'NULL'); @@ -348,7 +348,7 @@ class Facture extends CommonInvoice $sql.= ", ".($this->fk_project?$this->fk_project:"null"); $sql.= ", ".$this->cond_reglement_id; $sql.= ", ".$this->mode_reglement_id; - $sql.= ", '".$this->db->idate($datelim)."', '".$this->modelpdf."'"; + $sql.= ", '".$this->db->idate($datelim)."', '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".($this->situation_cycle_ref?"'".$this->db->escape($this->situation_cycle_ref)."'":"null"); $sql.= ", ".($this->situation_counter?"'".$this->db->escape($this->situation_counter)."'":"null"); $sql.= ", ".($this->situation_final?$this->situation_final:0); diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index dc3c7fc3640..f3c0b9bd3f5 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -168,9 +168,9 @@ class Contact extends CommonObject $sql.= " ".($user->id > 0 ? "'".$user->id."'":"null").","; $sql.= " ".$this->priv.","; $sql.= " ".$this->statut.","; - $sql.= " ".(! empty($this->canvas)?"'".$this->canvas."'":"null").","; + $sql.= " ".(! empty($this->canvas)?"'".$this->db->escape($this->canvas)."'":"null").","; $sql.= " ".$conf->entity.","; - $sql.= "'".$this->db->escape($this->ref_ext)."',"; + $sql.= "'".$this->db->escape($this->ref_ext)."',"; $sql.= " ".(! empty($this->import_key)?"'".$this->import_key."'":"null"); $sql.= ")"; diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index 5e88cc94243..d0bcee286d0 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -149,11 +149,11 @@ class Fichinter extends CommonObject $sql.= " VALUES ("; $sql.= $this->socid; $sql.= ", '".$this->db->idate($now)."'"; - $sql.= ", '".$this->ref."'"; + $sql.= ", '".$this->db->escape($this->ref)."'"; $sql.= ", ".$conf->entity; $sql.= ", ".$user->id; $sql.= ", ".($this->description?"'".$this->db->escape($this->description)."'":"null"); - $sql.= ", '".$this->modelpdf."'"; + $sql.= ", '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".($this->fk_project ? $this->fk_project : 0); $sql.= ", ".($this->fk_contrat ? $this->fk_contrat : 0); $sql.= ", ".$this->statut; diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 5e207f0b4b6..233c0510b3a 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -1002,7 +1002,7 @@ class CommandeFournisseur extends CommonOrder $sql.= ") "; $sql.= " VALUES ("; $sql.= "''"; - $sql.= ", '".$this->ref_supplier."'"; + $sql.= ", '".$this->db->escape($this->ref_supplier)."'"; $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; $sql.= ", ".$conf->entity; @@ -1011,7 +1011,7 @@ class CommandeFournisseur extends CommonOrder $sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null"); $sql.= ", ".$user->id; $sql.= ", 0"; - $sql.= ", " . $this->source; + $sql.= ", ".$this->db->escape($this->source); $sql.= ", '".$conf->global->COMMANDE_SUPPLIER_ADDON_PDF."'"; $sql.= ", ".($this->mode_reglement_id > 0 ? $this->mode_reglement_id : 'null'); $sql.= ", ".($this->cond_reglement_id > 0 ? $this->cond_reglement_id : 'null'); diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 13368f652a9..7c2d089960a 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -694,7 +694,7 @@ class Product extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."product"; $sql.= " SET label = '" . $this->db->escape($this->label) ."'"; - $sql.= ", ref = '" . $this->ref ."'"; + $sql.= ", ref = '" . $this->db->escape($this->ref) ."'"; $sql.= ", ref_ext = ".(! empty($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null"); $sql.= ", tva_tx = " . $this->tva_tx; $sql.= ", recuperableonly = " . $this->tva_npr; @@ -722,9 +722,9 @@ class Product extends CommonObject $sql.= ", customcode = '" . $this->db->escape($this->customcode) ."'"; $sql.= ", fk_country = " . ($this->country_id > 0 ? $this->country_id : 'null'); $sql.= ", note = ".(isset($this->note) ? "'" .$this->db->escape($this->note)."'" : 'null'); - $sql.= ", duration = '" . $this->duration_value . $this->duration_unit ."'"; - $sql.= ", accountancy_code_buy = '" . $this->accountancy_code_buy."'"; - $sql.= ", accountancy_code_sell= '" . $this->accountancy_code_sell."'"; + $sql.= ", duration = '" . $this->db->escape($this->duration_value . $this->duration_unit) ."'"; + $sql.= ", accountancy_code_buy = '" . $this->db->escape($this->accountancy_code_buy)."'"; + $sql.= ", accountancy_code_sell= '" . $this->db->escape($this->accountancy_code_sell)."'"; $sql.= ", desiredstock = " . ((isset($this->desiredstock) && $this->desiredstock != '') ? $this->desiredstock : "null"); $sql.= ", fk_unit= " . (!$this->fk_unit ? 'NULL' : $this->fk_unit); $sql.= " WHERE rowid = " . $id; diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index c3dfeb7b226..81698196f20 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -461,14 +461,14 @@ class Societe extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, name_alias, entity, datec, fk_user_creat, canvas, status, ref_int, ref_ext, fk_stcomm, fk_incoterms, location_incoterms ,import_key)"; $sql.= " VALUES ('".$this->db->escape($this->name)."', '".$this->db->escape($this->name_alias)."', ".$conf->entity.", '".$this->db->idate($now)."'"; $sql.= ", ".(! empty($user->id) ? "'".$user->id."'":"null"); - $sql.= ", ".(! empty($this->canvas) ? "'".$this->canvas."'":"null"); + $sql.= ", ".(! empty($this->canvas) ? "'".$this->db->escape($this->canvas)."'":"null"); $sql.= ", ".$this->status; - $sql.= ", ".(! empty($this->ref_int) ? "'".$this->ref_int."'":"null"); - $sql.= ", ".(! empty($this->ref_ext) ? "'".$this->ref_ext."'":"null"); + $sql.= ", ".(! empty($this->ref_int) ? "'".$this->db->escape($this->ref_int)."'":"null"); + $sql.= ", ".(! empty($this->ref_ext) ? "'".$this->db->escape($this->ref_ext)."'":"null"); $sql.= ", 0"; $sql.= ", ".(int) $this->fk_incoterms; $sql.= ", '".$this->db->escape($this->location_incoterms)."'"; - $sql.= ", ".(! empty($this->import_key) ? "'".$this->import_key."'":"null").")"; + $sql.= ", ".(! empty($this->import_key) ? "'".$this->db->escape($this->import_key)."'":"null").")"; dol_syslog(get_class($this)."::create", LOG_DEBUG); $result=$this->db->query($sql); @@ -789,7 +789,7 @@ class Societe extends CommonObject $sql .= ",ref_ext = " .(! empty($this->ref_ext)?"'".$this->db->escape($this->ref_ext) ."'":"null"); $sql .= ",address = '" . $this->db->escape($this->address) ."'"; - $sql .= ",zip = ".(! empty($this->zip)?"'".$this->zip."'":"null"); + $sql .= ",zip = ".(! empty($this->zip)?"'".$this->db->escape($this->zip)."'":"null"); $sql .= ",town = ".(! empty($this->town)?"'".$this->db->escape($this->town)."'":"null"); $sql .= ",fk_departement = '" . (! empty($this->state_id)?$this->state_id:'0') ."'"; @@ -841,17 +841,17 @@ class Societe extends CommonObject $sql .= ",prefix_comm = ".(! empty($this->prefix_comm)?"'".$this->db->escape($this->prefix_comm)."'":"null"); - $sql .= ",fk_effectif = ".(! empty($this->effectif_id)?"'".$this->effectif_id."'":"null"); + $sql .= ",fk_effectif = ".(! empty($this->effectif_id)?"'".$this->db->escape($this->effectif_id)."'":"null"); - $sql .= ",fk_typent = ".(! empty($this->typent_id)?"'".$this->typent_id."'":"0"); + $sql .= ",fk_typent = ".(! empty($this->typent_id)?"'".$this->db->escape($this->typent_id)."'":"0"); - $sql .= ",fk_forme_juridique = ".(! empty($this->forme_juridique_code)?"'".$this->forme_juridique_code."'":"null"); + $sql .= ",fk_forme_juridique = ".(! empty($this->forme_juridique_code)?"'".$this->db->escape($this->forme_juridique_code)."'":"null"); $sql .= ",client = " . (! empty($this->client)?$this->client:0); $sql .= ",fournisseur = " . (! empty($this->fournisseur)?$this->fournisseur:0); - $sql .= ",barcode = ".(! empty($this->barcode)?"'".$this->barcode."'":"null"); - $sql .= ",default_lang = ".(! empty($this->default_lang)?"'".$this->default_lang."'":"null"); - $sql .= ",logo = ".(! empty($this->logo)?"'".$this->logo."'":"null"); + $sql .= ",barcode = ".(! empty($this->barcode)?"'".$this->db->escape($this->barcode)."'":"null"); + $sql .= ",default_lang = ".(! empty($this->default_lang)?"'".$this->db->escape($this->default_lang)."'":"null"); + $sql .= ",logo = ".(! empty($this->logo)?"'".$this->db->escape($this->logo)."'":"null"); $sql .= ",webservices_url = ".(! empty($this->webservices_url)?"'".$this->db->escape($this->webservices_url)."'":"null"); $sql .= ",webservices_key = ".(! empty($this->webservices_key)?"'".$this->db->escape($this->webservices_key)."'":"null"); @@ -1531,7 +1531,7 @@ class Societe extends CommonObject // Positionne remise courante $sql = "UPDATE ".MAIN_DB_PREFIX."societe "; - $sql.= " SET remise_client = '".$remise."'"; + $sql.= " SET remise_client = '".$this->db->escape($remise)."'"; $sql.= " WHERE rowid = " . $this->id .";"; $resql=$this->db->query($sql); if (! $resql) @@ -1544,7 +1544,7 @@ class Societe extends CommonObject // Ecrit trace dans historique des remises $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_remise"; $sql.= " (datec, fk_soc, remise_client, note, fk_user_author)"; - $sql.= " VALUES ('".$this->db->idate($now)."', ".$this->id.", '".$remise."',"; + $sql.= " VALUES ('".$this->db->idate($now)."', ".$this->id.", '".$this->db->escape($remise)."',"; $sql.= " '".$this->db->escape($note)."',"; $sql.= " ".$user->id; $sql.= ")"; @@ -1694,7 +1694,7 @@ class Societe extends CommonObject $now=dol_now(); $sql = "UPDATE ".MAIN_DB_PREFIX."societe"; - $sql .= " SET price_level = '".$price_level."'"; + $sql .= " SET price_level = '".$this->db->escape($price_level)."'"; $sql .= " WHERE rowid = " . $this->id; if (! $this->db->query($sql)) @@ -1705,7 +1705,7 @@ class Societe extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_prices"; $sql .= " (datec, fk_soc, price_level, fk_user_author)"; - $sql .= " VALUES ('".$this->db->idate($now)."',".$this->id.",'".$price_level."',".$user->id.")"; + $sql .= " VALUES ('".$this->db->idate($now)."',".$this->id.",'".$this->db->escape($price_level)."',".$user->id.")"; if (! $this->db->query($sql)) { @@ -3242,7 +3242,7 @@ class Societe extends CommonObject * @param User $user User making change * @return int <0 if KO, >0 if OK */ - function set_OutstandingBill (User $user) + function set_OutstandingBill(User $user) { if ($this->id) { From 06d19a5a40dad1236775e718e0d66d73a04574f6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 11:33:22 +0200 Subject: [PATCH 061/205] Work on a new widget --- htdocs/core/ajax/selectsearchbox.php | 48 +++++++++++ htdocs/core/class/html.form.class.php | 115 +++++++++++++------------- htdocs/langs/en_US/main.lang | 3 +- htdocs/public/test/test_forms.php | 32 +++---- 4 files changed, 124 insertions(+), 74 deletions(-) create mode 100644 htdocs/core/ajax/selectsearchbox.php diff --git a/htdocs/core/ajax/selectsearchbox.php b/htdocs/core/ajax/selectsearchbox.php new file mode 100644 index 00000000000..c7a1c7f6d30 --- /dev/null +++ b/htdocs/core/ajax/selectsearchbox.php @@ -0,0 +1,48 @@ + + * + * 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/core/ajax/selectsearchbox.php + * \ingroup core + * \brief This script returns content of possible search + */ + + +// This script is called with a POST method. +// Directory to scan (full path) is inside POST['dir']. + +if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1); // Disables token renewal +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); +if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); +if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); +if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); + +$res=@include '../../main.inc.php'; +include_once DOL_DOCUMENT_ROOT.'/core/lib/json.lib.php'; + + +$search_boxvalue=GETPOST('q'); + +$arrayresult=array('a'=>'aaaa', 'b'=>'bbbb'); + +if ($conf->projet->enabled) +{ + $arrayresult['searchintoproject']=$langs->trans("SearchIntoProject", $search_boxvalue); +} +print dol_json_encode($arrayresult); + +if (is_object($db)) $db->close(); diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index fe4852d839b..5f75eccade6 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4500,70 +4500,71 @@ class Form * Return a HTML select string, built from an array of key+value but content returned into select come from an Ajax call of an URL. * Note: Do not apply langs->trans function on returned content, content may be entity encoded twice. * - * @param string $htmlname Name of html select area - * @param string $url Url - * @param string $id Preselected key - * @param int $show_empty 0 no empty value allowed, 1 to add an empty value into list (value is '' or ' '). - * @param int $key_in_label 1 pour afficher la key dans la valeur "[key] value" - * @param int $value_as_key 1 to use value as key - * @param string $moreparam Add more parameters onto the select tag - * @param int $translate Translate and encode value - * @param int $maxlen Length maximum for labels - * @param int $disabled Html select box is disabled - * @param int $sort 'ASC' or 'DESC' = Sort on label, '' or 'NONE' = Do not sort - * @param string $morecss Add more class to css styles - * @param int $addjscombo Add js combo - * @return string HTML select string. + * @param string $htmlname Name of html select area + * @param string $url Url + * @param string $id Preselected key + * @param string $moreparam Add more parameters onto the select tag + * @param string $moreparamtourl Add more parameters onto the Ajax called URL + * @param int $disabled Html select box is disabled + * @param int $minimumInputLength Minimum Input Length + * @param string $morecss Add more class to css styles + * @return string HTML select string. */ - static function selectArrayAjax($htmlname, $url, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $moreparam='', $translate=0, $maxlen=0, $disabled=0, $sort='', $morecss='', $addjscombo=0) + static function selectArrayAjax($htmlname, $url, $id='', $moreparam='', $moreparamtourl='', $disabled=0, $minimumInputLength=1, $morecss='') { $out = ''; - // Add code for jquery to use select2 - if ($addjscombo && empty($conf->dol_use_jmobile)) - { - $tmpplugin='select2'; - $out.=' - '; - } - else - { - // TODO get all values from $url into $array + $tmpplugin='select2'; + $out.=' + '; - $out.=self::selectarray('.'.$htmlname, $array, $id, $show_empty, $key_in_label, $value_as_key, '', $translate, $maxlen, $disabled, $sort, '', 0); + $out.=''; + return $out; } diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 6a37ad3ae78..e5390bcdfee 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -747,4 +747,5 @@ ShortFriday=F ShortSaturday=S ShortSunday=S SelectMailModel=Select email template -SetRef=Set ref \ No newline at end of file +SetRef=Set ref +SearchIntoProject=Search %s into projects \ No newline at end of file diff --git a/htdocs/public/test/test_forms.php b/htdocs/public/test/test_forms.php index a6a361620e9..5e7b2f2434f 100644 --- a/htdocs/public/test/test_forms.php +++ b/htdocs/public/test/test_forms.php @@ -45,18 +45,9 @@ print '

'."\n"; print "Test 3: We must have here 1970-01-01 00:00:00 selected (fields are mandatory)
\n"; $form->select_date(dol_get_first_day(1970,1,false), 'test3', 1, 1, 0); -/*print '

'."\n"; - -print "Test 4c: a select with ajax refresh
\n"; -//$array=array(0=>'',1=>'Search into xxx',2=>'Search into yyy',3=>'Search into zzz'); -$array=array(); -$selected=-1; -print $form->selectArrayAjax('testselectc', DOL_URL_ROOT.'/core/ajax/selecsearchbox.php', $selected, 1, 0, 0, 'style="min-width: 250px;"', 0, 0, 0, '', '', 1); -*/ - print '

'."\n"; -// Test4: a select +// Test4a: a select print "Test 4a: a select
\n"; $array=array(1=>'Value 1',2=>'Value 2',3=>'Value 3 ith a very long text. aze eazeae e ae aeae a e a ea ea ea e a e aea e ae aeaeaeaze.'); $selected=3; @@ -73,20 +64,29 @@ print $form->selectarray('selectarray',$array); print '

'."\n"; -// Test4d: form->select_thirdparty -print "Test 4d: Select thirdparty
\n"; +print "Test 4d: a select with ajax refresh
\n"; +//$array=array(0=>'',1=>'Search into xxx',2=>'Search into yyy',3=>'Search into zzz'); +$array=array(); +$selected=-1; +print $form->selectArrayAjax('testselectc', DOL_URL_ROOT.'/core/ajax/selectsearchbox.php', $selected, 'style="min-width: 250px;"', '', 0, 1, ''); + + +print '

'."\n"; + +// Test5a: form->select_thirdparty +print "Test 5a: Select thirdparty
\n"; print $form->select_company(0,'thirdpartytest'); print '

'."\n"; -// Test4e: form->select_product -print "Test 4e: Select product (using ajax)
\n"; +// Test5b: form->select_product +print "Test 5b: Select product (using ajax)
\n"; $form->select_produits(0,'producttest'); print '

'."\n"; -// Test5: a multiselect -print "Test 5: a multiselect
\n"; +// Test5c: a multiselect +print "Test 5c: a multiselect
\n"; $array=array(1=>'Value 1',2=>'Value 2',3=>'Value 3'); $arrayselected=array(1,3); print $form->multiselectarray('testmulti', $array, $arrayselected, '', 0, '', 0, 250); From 309e1604e1d80e2e4d85e9962265c5790d778b65 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Sep 2015 07:52:06 +0200 Subject: [PATCH 062/205] Fix migration missing for leave request module Fix permission label for expense report and leave request --- htdocs/core/menus/init_menu_auguria.sql | 2 +- htdocs/core/modules/DolibarrModules.class.php | 12 +- .../core/modules/modExpenseReport.class.php | 2 +- htdocs/core/modules/modHoliday.class.php | 82 ----------- htdocs/holiday/list.php | 2 +- htdocs/install/upgrade2.php | 134 +++++++++++------- htdocs/langs/en_US/admin.lang | 10 +- htdocs/langs/en_US/holiday.lang | 6 - htdocs/langs/en_US/install.lang | 2 +- htdocs/langs/fr_FR/holiday.lang | 6 - 10 files changed, 101 insertions(+), 157 deletions(-) diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index b75bc8b21f1..091e94f91bc 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -299,7 +299,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5200__+MAX_llx_menu__, 'members', 'cat', 13__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&type=3', 'MembersCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5201__+MAX_llx_menu__, 'members', '', 5200__+MAX_llx_menu__, '/categories/card.php?action=create&type=3', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__); -- HRM - Holiday -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/index.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/list.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5001__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/card.php?&action=request', 'MenuAddCP', 1, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5002__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/define_holiday.php?&action=request', 'MenuConfCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5003__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/view_log.php?&action=request', 'MenuLogCP', 1, 'holiday', '$user->rights->holiday->view_log', '', 0, 3, __ENTITY__); diff --git a/htdocs/core/modules/DolibarrModules.class.php b/htdocs/core/modules/DolibarrModules.class.php index de2870d7a9f..c886741fc41 100644 --- a/htdocs/core/modules/DolibarrModules.class.php +++ b/htdocs/core/modules/DolibarrModules.class.php @@ -1686,11 +1686,13 @@ print $sql; /** * Function called when module is enabled. - * The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database. + * The init function adds tabs, constants, boxes, permissions and menus (defined in constructor) into Dolibarr database. * It also creates data directories * - * @param string $options Options when enabling module ('', 'noboxes') - * @return int 1 if OK, 0 if KO + * @param string $options Options when enabling module ('', 'newboxdefonly', 'noboxes') + * 'noboxes' = Do not insert boxes + * 'newboxdefonly' = For boxes, insert def of boxes only and not boxes activation + * @return int 1 if OK, 0 if KO */ public function init($options = '') { @@ -1699,11 +1701,11 @@ print $sql; /** * Function called when module is disabled. - * Remove from database constants, boxes and permissions from Dolibarr database. + * The remove function removes tabs, constants, boxes, permissions and menus from Dolibarr database. * Data directories are not deleted * * @param string $options Options when enabling module ('', 'noboxes') - * @return int 1 if OK, 0 if KO + * @return int 1 if OK, 0 if KO */ public function remove($options = '') { diff --git a/htdocs/core/modules/modExpenseReport.class.php b/htdocs/core/modules/modExpenseReport.class.php index 690ca7ba87e..123f4fe4aa0 100644 --- a/htdocs/core/modules/modExpenseReport.class.php +++ b/htdocs/core/modules/modExpenseReport.class.php @@ -139,7 +139,7 @@ class modExpenseReport extends DolibarrModules $this->rights_class = 'expensereport'; $this->rights[1][0] = 771; - $this->rights[1][1] = 'Read expense reports (own and his subordinates)'; + $this->rights[1][1] = 'Read expense reports (yours and your subordinates)'; $this->rights[1][2] = 'r'; $this->rights[1][3] = 1; $this->rights[1][4] = 'lire'; diff --git a/htdocs/core/modules/modHoliday.class.php b/htdocs/core/modules/modHoliday.class.php index 988391bca42..b4517b4bfbe 100644 --- a/htdocs/core/modules/modHoliday.class.php +++ b/htdocs/core/modules/modHoliday.class.php @@ -180,88 +180,6 @@ class modHoliday extends DolibarrModules $r=0; - /* Move to HRM menu - // Add here entries to declare new menus - $this->menu[$r]=array( 'fk_menu'=>0, // Put 0 if this is a top menu - 'type'=>'top', // This is a Top menu entry - 'titre'=>'CPTitreMenu', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday', - 'url'=>'/holiday/index.php', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>100, - 'enabled'=>'1', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->write', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday', // Put 0 if this is a top menu - 'type'=>'left', // This is a Top menu entry - 'titre'=>'CPTitreMenu', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday', - 'url'=>'/holiday/index.php?mainmenu=holiday&leftmenu=holiday', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>100, - 'enabled'=>'1', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->write', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry) - 'type'=>'left', // This is a Left menu entry - 'titre'=>'MenuAddCP', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday_add', - 'url'=>'/holiday/card.php?mainmenu=holiday&action=request', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>101, - 'enabled'=>'$conf->holiday->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->write', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry) - 'type'=>'left', // This is a Left menu entry - 'titre'=>'MenuConfCP', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday_conf', - 'url'=>'/holiday/define_holiday.php?mainmenu=holiday&action=request', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>102, - 'enabled'=>'$conf->holiday->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->define_holiday', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry) - 'type'=>'left', // This is a Left menu entry - 'titre'=>'MenuLogCP', - 'mainmenu'=>'holiday_def', - 'url'=>'/holiday/view_log.php?mainmenu=holiday&action=request', - 'leftmenu'=>'holiday', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>103, - 'enabled'=>'$conf->holiday->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->view_log', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; - $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=holiday,fk_leftmenu=holiday', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry) - 'type'=>'left', // This is a Left menu entry - 'titre'=>'MenuReportMonth', - 'mainmenu'=>'holiday', - 'leftmenu'=>'holiday_report', - 'url'=>'/holiday/month_report.php?mainmenu=holiday&action=request', - 'langs'=>'holiday', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>104, - 'enabled'=>'$conf->holiday->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->holiday->view_log', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; -*/ - // Exports $r=1; diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index c350fb003e6..4e10fbf925c 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -18,7 +18,7 @@ */ /** - * \file htdocs/holiday/index.php + * \file htdocs/holiday/list.php * \ingroup holiday * \brief List of holiday. */ diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 214a6c54fbf..f42e55cb697 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -366,29 +366,29 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) migrate_event_assignement($db,$langs,$conf); } - // Scripts for lat version + // Scripts for last version $afterversionarray=explode('.','3.7.9'); $beforeversionarray=explode('.','3.8.9'); if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) { // Reload modules (this must be always and only into last targeted version) $listofmodule=array( - 'MAIN_MODULE_AGENDA', - 'MAIN_MODULE_BARCODE', - 'MAIN_MODULE_CRON', - 'MAIN_MODULE_COMMANDE', - 'MAIN_MODULE_DEPLACEMENT', - 'MAIN_MODULE_DON', - 'MAIN_MODULE_ECM', - 'MAIN_MODULE_FACTURE', - 'MAIN_MODULE_FOURNISSEUR', - 'MAIN_MODULE_HOLIDAY', - 'MAIN_MODULE_OPENSURVEY', - 'MAIN_MODULE_PAYBOX', - 'MAIN_MODULE_PRODUIT', - 'MAIN_MODULE_SOCIETE', - 'MAIN_MODULE_SERVICE', - 'MAIN_MODULE_USER' + 'MAIN_MODULE_AGENDA'=>'newboxdefonly', + 'MAIN_MODULE_BARCODE'=>'newboxdefonly', + 'MAIN_MODULE_CRON'=>'newboxdefonly', + 'MAIN_MODULE_COMMANDE'=>'newboxdefonly', + 'MAIN_MODULE_DEPLACEMENT'=>'newboxdefonly', + 'MAIN_MODULE_DON'=>'newboxdefonly', + 'MAIN_MODULE_ECM'=>'newboxdefonly', + 'MAIN_MODULE_FACTURE'=>'newboxdefonly', + 'MAIN_MODULE_FOURNISSEUR'=>'newboxdefonly', + 'MAIN_MODULE_HOLIDAY'=>'newboxdefonly', + 'MAIN_MODULE_OPENSURVEY'=>'newboxdefonly', + 'MAIN_MODULE_PAYBOX'=>'newboxdefonly', + 'MAIN_MODULE_PRODUIT'=>'newboxdefonly', + 'MAIN_MODULE_SOCIETE'=>'newboxdefonly', + 'MAIN_MODULE_SERVICE'=>'newboxdefonly', + 'MAIN_MODULE_USER'=>'newboxdefonly' ); migrate_reload_modules($db,$langs,$conf,$listofmodule); @@ -3750,30 +3750,33 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) { dolibarr_install_syslog("upgrade2::migrate_reload_modules"); - // Module to reload if no info is provided + // If no info is provided, we reload all modules with mode newboxdefonly. if (count($listofmodule) == 0) { $listofmodule=array( - 'MAIN_MODULE_AGENDA', - 'MAIN_MODULE_SOCIETE', - 'MAIN_MODULE_PRODUIT', - 'MAIN_MODULE_SERVICE', - 'MAIN_MODULE_COMMANDE', - 'MAIN_MODULE_FACTURE', - 'MAIN_MODULE_FOURNISSEUR', - 'MAIN_MODULE_USER', - 'MAIN_MODULE_DEPLACEMENT', - 'MAIN_MODULE_DON', - 'MAIN_MODULE_ECM', - 'MAIN_MODULE_PAYBOX', - 'MAIN_MODULE_OPENSURVEY' + 'MAIN_MODULE_AGENDA'=>'newboxdefonly', + 'MAIN_MODULE_SOCIETE'=>'newboxdefonly', + 'MAIN_MODULE_PRODUIT'=>'newboxdefonly', + 'MAIN_MODULE_SERVICE'=>'newboxdefonly', + 'MAIN_MODULE_COMMANDE'=>'newboxdefonly', + 'MAIN_MODULE_FACTURE'=>'newboxdefonly', + 'MAIN_MODULE_FOURNISSEUR'=>'newboxdefonly', + 'MAIN_MODULE_HOLIDAY'=>'newboxdefonly', + 'MAIN_MODULE_USER'=>'newboxdefonly', + 'MAIN_MODULE_DEPLACEMENT'=>'newboxdefonly', + 'MAIN_MODULE_DON'=>'newboxdefonly', + 'MAIN_MODULE_ECM'=>'newboxdefonly', + 'MAIN_MODULE_PAYBOX'=>'newboxdefonly', + 'MAIN_MODULE_OPENSURVEY'=>'newboxdefonly' ); } - foreach($listofmodule as $moduletoreload) + foreach($listofmodule as $moduletoreload => $reloadmode) { if (empty($moduletoreload) || empty($conf->global->$moduletoreload)) continue; + $mod=null; + if ($moduletoreload == 'MAIN_MODULE_AGENDA') { dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Agenda module"); @@ -3781,7 +3784,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modAgenda($db); $mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_BARCODE') @@ -3791,7 +3794,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modBarcode($db); $mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_CRON') @@ -3801,7 +3804,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modCron($db); $mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_SOCIETE') @@ -3811,7 +3814,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modSociete($db); $mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_PRODUIT') // Permission has changed into 2.7 @@ -3821,7 +3824,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modProduct($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_SERVICE') // Permission has changed into 2.7 @@ -3832,7 +3835,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modService($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_COMMANDE') // Permission has changed into 2.9 @@ -3843,7 +3846,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modCommande($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_FACTURE') // Permission has changed into 2.9 @@ -3853,7 +3856,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modFacture($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_FOURNISSEUR') // Permission has changed into 2.9 @@ -3863,7 +3866,17 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modFournisseur($db); //$mod->remove('noboxes'); - $mod->init('newboxdefonly'); + $mod->init($reloadmode); + } + } + if ($moduletoreload == 'MAIN_MODULE_HOLIDAY') // Permission and tabs has changed into 3.8 + { + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Leave Request module"); + $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modHoliday.class.php'; + if ($res) { + $mod=new modHoliday($db); + $mod->remove('noboxes'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_DEPLACEMENT') // Permission has changed into 3.0 @@ -3872,8 +3885,8 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modDeplacement.class.php'; if ($res) { $mod=new modDeplacement($db); - //$mod->remove('noboxes'); // We need to remove because a permission id has been removed - $mod->init('newboxdefonly'); + //$mod->remove('noboxes'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_DON') // Permission has changed into 3.0 @@ -3882,8 +3895,8 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modDon.class.php'; if ($res) { $mod=new modDon($db); - //$mod->remove('noboxes'); // We need to remove because a permission id has been removed - $mod->init('newboxdefonly'); + //$mod->remove('noboxes'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_ECM') // Permission has changed into 3.0 and 3.1 @@ -3893,7 +3906,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modECM($db); $mod->remove('noboxes'); // We need to remove because a permission id has been removed - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_PAYBOX') // Permission has changed into 3.0 @@ -3903,7 +3916,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modPaybox($db); $mod->remove('noboxes'); // We need to remove because id of module has changed - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_OPENSURVEY') // Permission has changed into 3.0 @@ -3913,7 +3926,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($res) { $mod=new modOpenSurvey($db); $mod->remove('noboxes'); // We need to remove because menu entries has changed - $mod->init('newboxdefonly'); + $mod->init($reloadmode); } } if ($moduletoreload == 'MAIN_MODULE_USER') // Permission has changed into 3.0 @@ -3922,11 +3935,20 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modUser.class.php'; if ($res) { $mod=new modUser($db); - //$mod->remove('noboxes'); // We need to remove because id of module has changed - $mod->init('newboxdefonly'); + //$mod->remove('noboxes'); + $mod->init($reloadmode); } } + if (! empty($mod) && is_object($mod)) + { + print '
'; + print ''.$langs->trans('Upgrade').': '; + print $langs->trans('MigrationReloadModule')." ".$mod->getName(); + print ""; + print "
\n"; + print '
'; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index a30c76e19d0..0b4b399e31f 100755 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -635,7 +635,7 @@ Permission162=Create/modify contracts/subscriptions Permission163=Activate a service/subscription of a contract Permission164=Disable a service/subscription of a contract Permission165=Delete contracts/subscriptions -Permission171=Read trips and expenses (own and his subordinates) +Permission171=Read trips and expenses (yours and your subordinates) Permission172=Create/modify trips and expenses Permission173=Delete trips and expenses Permission174=Read all trips and expenses @@ -730,7 +730,7 @@ Permission538=Export services Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations -Permission771=Read expense reports (own and his subordinates) +Permission771=Read expense reports (yours and your subordinates) Permission772=Create/modify expense reports Permission773=Delete expense reports Permission774=Read all expense reports (even for user not subordinates) @@ -767,6 +767,12 @@ Permission1237=Export supplier orders and their details Permission1251=Run mass imports of external data into database (data load) Permission1321=Export customer invoices, attributes and payments Permission1421=Export customer orders and attributes +Permission20001=Read leave requests (yours and your subordinates) +Permission20002=Create/modify your leave requests +Permission20003=Delete leave requests +Permission20004=Read all leave requests (even user not subordinates) +Permission20005=Create/modify leave requests for everybody +Permission20006=Admin leave requests (setup and update balance) Permission23001=Read Scheduled job Permission23002=Create/update Scheduled job Permission23003=Delete Scheduled job diff --git a/htdocs/langs/en_US/holiday.lang b/htdocs/langs/en_US/holiday.lang index 9bf90c3d01c..725336d8790 100644 --- a/htdocs/langs/en_US/holiday.lang +++ b/htdocs/langs/en_US/holiday.lang @@ -140,11 +140,5 @@ HolidaysRefused=Request denied HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason : HolidaysCanceled=Canceled leaved request HolidaysCanceledBody=Your leave request for %s to %s has been canceled. -Permission20001=Read you own leave requests -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read leave requests for everybody -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) NewByMonth=Added per month GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leaves to setup the different types of leaves. \ No newline at end of file diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index fada78c04c6..6ec3ca2d14a 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -209,6 +209,6 @@ MigrationActioncommElement=Update data on actions MigrationPaymentMode=Data migration for payment mode MigrationCategorieAssociation=Migration of categories MigrationEvents=Migration of events to add event owner into assignement table - +MigrationReloadModule=Reload module %s ShowNotAvailableOptions=Show not available options HideNotAvailableOptions=Hide not available options diff --git a/htdocs/langs/fr_FR/holiday.lang b/htdocs/langs/fr_FR/holiday.lang index c3dfa31de07..d201181188d 100644 --- a/htdocs/langs/fr_FR/holiday.lang +++ b/htdocs/langs/fr_FR/holiday.lang @@ -140,11 +140,5 @@ HolidaysRefused=Accès refusé HolidaysRefusedBody=Votre demande de congés payés %s à %s vient d'être refusée pour le motif suivant : HolidaysCanceled=Abandonner la demande de congés HolidaysCanceledBody=Votre demande de congés du %s au %s a été annulée. -Permission20001=Lire ses propres demandes de congès -Permission20002=Créer/modifier ses demandes de congés -Permission20003=Supprimer la demande de Congés -Permission20004=Lire les demandes de congès de tout le monde -Permission20005=Créer/modifier les congés pour tout le monde -Permission20006=Administration des demande de congès (configuration et mise à jour du solde) NewByMonth=Ajouté par mois GoIntoDictionaryHolidayTypes=Aller dans Accueil - Configuration - Dictionnaires - Type de congés pour configurer les différents types de congés. From 0bfccc7255e4dff1ddf7a426290ee1528d482b6a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Sep 2015 08:32:40 +0200 Subject: [PATCH 063/205] Fix print into form to attach file must be into return. --- htdocs/core/class/html.formfile.class.php | 9 ++++++--- htdocs/langs/en_US/link.lang | 1 + htdocs/theme/eldy/style.css.php | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 47723a05cbc..59a418d73a2 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -75,6 +75,7 @@ class FormFile global $conf,$langs, $hookmanager; $hookmanager->initHooks(array('formfile')); + if (! empty($conf->browser->layout) && $conf->browser->layout != 'classic') $useajax=0; if ((! empty($conf->global->MAIN_USE_JQUERY_FILEUPLOAD) && $useajax) || ($useajax==2)) @@ -86,13 +87,13 @@ class FormFile return $this->_formAjaxFileUpload($object); } else - { + { $maxlength=$size; $out = "\n\n\n"; if (empty($title)) $title=$langs->trans("AttachANewFile"); - if ($title != 'none') print_titre($title); + if ($title != 'none') $out.=load_fiche_titre($title, null, null); $out .= ''; $out .= ''; @@ -178,7 +179,7 @@ class FormFile $out .= ''; $out .= ''; $out .= ''; @@ -907,6 +911,10 @@ if ($step == 4 && $datatoexport) $tablename=getablenamefromfield($code,$sqlmaxforexport); $htmltext =''.$langs->trans("Name").": ".$text.'
'; $htmltext.=''.$langs->trans("Table")." -> ".$langs->trans("Field").": ".$tablename." -> ".preg_replace('/^.*\./','',$code)."
"; + if (! empty($objexport->array_export_examplevalues[0][$code])) + { + $htmltext.=$langs->trans("SourceExample").': '.$objexport->array_export_examplevalues[0][$code].'
'; + } print $form->textwithpicto($text,$htmltext); //print ' ('.$code.')'; print ''; From 637855485eb224ddef03155b6d0c6848f38a452e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sat, 12 Sep 2015 17:28:32 +0200 Subject: [PATCH 070/205] FIX #3423 Not possible update values of extrafields in Facture Close #3423 --- htdocs/compta/facture.php | 114 +++++++++++++++++--------------------- 1 file changed, 51 insertions(+), 63 deletions(-) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index a4a3c8a1e83..21cfacbc139 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -1718,61 +1718,7 @@ if (empty($reshook)) else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors'); $action = ''; } - } - - include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php'; - - if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->facture->creer) - { - if ($action == 'addcontact') - { - $result = $object->fetch($id); - - if ($result > 0 && $id > 0) { - $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid')); - $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]); - } - - if ($result >= 0) { - header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id); - exit(); - } else { - if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') { - $langs->load("errors"); - setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors'); - } else { - setEventMessage($object->error, 'errors'); - } - } - } - - // bascule du statut d'un contact - else if ($action == 'swapstatut') - { - if ($object->fetch($id)) { - $result = $object->swapContactStatus(GETPOST('ligne')); - } else { - dol_print_error($db); - } - } - - // Efface un contact - else if ($action == 'deletecontact') - { - $object->fetch($id); - $result = $object->delete_contact($lineid); - - if ($result >= 0) { - header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id); - exit(); - } else { - dol_print_error($db); - } - } - - - if ($action == 'update_extras') - { + } elseif ($action == 'update_extras') { // Fill array 'array_options' with data from add form $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute')); @@ -1784,18 +1730,60 @@ if (empty($reshook)) $hookmanager->initHooks(array('invoicedao')); $parameters = array('id' => $object->id); $reshook = $hookmanager->executeHooks('insertExtraFields', $parameters, $object, $action); // Note that $action and $object may have been modified by - // some hooks + // some hooks if (empty($reshook)) { - $result = $object->insertExtraFields(); - if ($result < 0) { - $error ++; - } - } else if ($reshook < 0) + $result = $object->insertExtraFields(); + if ($result < 0) { $error ++; + } + } else if ($reshook < 0) + $error ++; + } + + if ($error) + $action = 'edit_extras'; + } + + include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php'; + + if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->facture->creer) { + if ($action == 'addcontact') { + $result = $object->fetch($id); + + if ($result > 0 && $id > 0) { + $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid')); + $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]); } - if ($error) - $action = 'edit_extras'; + if ($result >= 0) { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit(); + } else { + if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') { + $langs->load("errors"); + setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors'); + } else { + setEventMessage($object->error, 'errors'); + } + } + } // bascule du statut d'un contact + elseif ($action == 'swapstatut') { + if ($object->fetch($id)) { + $result = $object->swapContactStatus(GETPOST('ligne')); + } else { + dol_print_error($db); + } + } // Efface un contact + elseif ($action == 'deletecontact') { + $object->fetch($id); + $result = $object->delete_contact($lineid); + + if ($result >= 0) { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit(); + } else { + dol_print_error($db); + } } } } From 67b7345e8311a753ce27625a812189ff4d0fb19d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 18:00:19 +0200 Subject: [PATCH 071/205] Fix the feature to log a cheque as returned. Fix duplicate parameter mainmenu and leftmenu into url --- htdocs/compta/paiement/card.php | 15 +-- htdocs/compta/paiement/cheque/card.php | 96 ++++++++++++++----- .../cheque/class/remisecheque.class.php | 57 ++++++++--- htdocs/compta/paiement/cheque/list.php | 4 +- .../compta/paiement/class/paiement.class.php | 8 +- htdocs/core/menus/standard/auguria.lib.php | 4 +- htdocs/core/menus/standard/eldy.lib.php | 2 +- htdocs/langs/en_US/banks.lang | 8 +- htdocs/langs/en_US/main.lang | 2 +- 9 files changed, 141 insertions(+), 55 deletions(-) diff --git a/htdocs/compta/paiement/card.php b/htdocs/compta/paiement/card.php index d0e15307be5..71d32404c94 100644 --- a/htdocs/compta/paiement/card.php +++ b/htdocs/compta/paiement/card.php @@ -201,27 +201,27 @@ if ($action == 'valide') print '
'; - $out .= $langs->trans("Link") . ': '; + $out .= $langs->trans("URLToLink") . ': '; $out .= ''; $out .= '   ' . $langs->trans("Label") . ': '; $out .= ''; @@ -200,7 +201,9 @@ class FormFile if (empty($res)) { + print '
'; print $out; + print '
'; } print $hookmanager->resPrint; diff --git a/htdocs/langs/en_US/link.lang b/htdocs/langs/en_US/link.lang index 8b1efb75ef3..6880d4d86a0 100644 --- a/htdocs/langs/en_US/link.lang +++ b/htdocs/langs/en_US/link.lang @@ -6,3 +6,4 @@ ErrorFileNotLinked=The file could not be linked LinkRemoved=The link %s has been removed ErrorFailedToDeleteLink= Failed to remove link '%s' ErrorFailedToUpdateLink= Failed to update link '%s' +URLToLink=URL to link \ No newline at end of file diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index ce4764373db..b88fcb187de 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -603,7 +603,10 @@ div.ficheaddleft { padding-top: 1px; padding-bottom: 1px; } - +div.attacharea { + padding-top: 10px; + padding-bottom: 10px; +} /* ============================================================================== */ /* Menu top et 1ere ligne tableau */ From 75eae394f14353faf64cec1f5d71f5ca7e532461 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Sep 2015 20:36:45 +0200 Subject: [PATCH 064/205] Fix confirmation of scripts make scripts not working with cron --- .../company/sync_contacts_dolibarr2ldap.php | 35 ++++++++++++------- .../members/sync_members_dolibarr2ldap.php | 25 ++++++++----- .../members/sync_members_ldap2dolibarr.php | 13 ++++--- scripts/user/sync_groups_ldap2dolibarr.php | 12 ++++--- scripts/user/sync_users_ldap2dolibarr.php | 13 ++++--- 5 files changed, 64 insertions(+), 34 deletions(-) diff --git a/scripts/company/sync_contacts_dolibarr2ldap.php b/scripts/company/sync_contacts_dolibarr2ldap.php index 8a582a77f74..2223cd1ca8f 100755 --- a/scripts/company/sync_contacts_dolibarr2ldap.php +++ b/scripts/company/sync_contacts_dolibarr2ldap.php @@ -34,12 +34,6 @@ if (substr($sapi_type, 0, 3) == 'cgi') { exit(-1); } -if (! isset($argv[1]) || ! $argv[1]) { - print "Usage: $script_file now\n"; - exit(-1); -} -$now=$argv[1]; - require_once($path."../../htdocs/master.inc.php"); require_once(DOL_DOCUMENT_ROOT."/contact/class/contact.class.php"); @@ -49,6 +43,7 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php"); // Global variables $version=DOL_VERSION; $error=0; +$confirmed=0; /* @@ -59,6 +54,18 @@ $error=0; print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n"; dol_syslog($script_file." launched with arg ".join(',',$argv)); +if (! isset($argv[1]) || ! $argv[1]) { + print "Usage: $script_file now [-y]\n"; + exit(-1); +} + +foreach($argv as $key => $val) +{ + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; +} + +$now=$argv[1]; + print "Mails sending disabled (useless in batch mode)\n"; $conf->global->MAIN_DISABLE_ALL_MAILS=1; // On bloque les mails print "\n"; @@ -77,12 +84,16 @@ print "login=".$conf->global->LDAP_ADMIN_DN."\n"; print "pass=".preg_replace('/./i','*',$conf->global->LDAP_ADMIN_PASS)."\n"; print "DN target=".$conf->global->LDAP_CONTACT_DN."\n"; print "\n"; -print "Press a key to confirm...\n"; -$input = trim(fgets(STDIN)); -print "Warning, this operation may result in data loss if it failed.\n"; -print "Be sure to have a backup of your LDAP database (With OpenLDAP: slapcat > save.ldif).\n"; -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); + +if (! $confirmed) +{ + print "Press a key to confirm...\n"; + $input = trim(fgets(STDIN)); + print "Warning, this operation may result in data loss if it failed.\n"; + print "Be sure to have a backup of your LDAP database (With OpenLDAP: slapcat > save.ldif).\n"; + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} /* if (! $conf->global->LDAP_CONTACT_ACTIVE) diff --git a/scripts/members/sync_members_dolibarr2ldap.php b/scripts/members/sync_members_dolibarr2ldap.php index 13529561a80..bfe16330b79 100755 --- a/scripts/members/sync_members_dolibarr2ldap.php +++ b/scripts/members/sync_members_dolibarr2ldap.php @@ -43,7 +43,7 @@ $langs->load("main"); // Global variables $version=DOL_VERSION; $error=0; - +$confirmed=0; /* @@ -55,9 +55,15 @@ print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n"; dol_syslog($script_file." launched with arg ".join(',',$argv)); if (! isset($argv[1]) || ! $argv[1]) { - print "Usage: $script_file now\n"; + print "Usage: $script_file now [-y]\n"; exit(-1); } + +foreach($argv as $key => $val) +{ + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; +} + $now=$argv[1]; print "Mails sending disabled (useless in batch mode)\n"; @@ -78,13 +84,16 @@ print "login=".$conf->global->LDAP_ADMIN_DN."\n"; print "pass=".preg_replace('/./i','*',$conf->global->LDAP_ADMIN_PASS)."\n"; print "DN target=".$conf->global->LDAP_MEMBER_DN."\n"; print "\n"; -print "Press a key to confirm...\n"; -$input = trim(fgets(STDIN)); -print "Warning, this operation may result in data loss if it failed.\n"; -print "Be sure to have a backup of your LDAP database (With OpenLDAP: slapcat > save.ldif).\n"; -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); +if (! $confirmed) +{ + print "Press a key to confirm...\n"; + $input = trim(fgets(STDIN)); + print "Warning, this operation may result in data loss if it failed.\n"; + print "Be sure to have a backup of your LDAP database (With OpenLDAP: slapcat > save.ldif).\n"; + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} /* if (! $conf->global->LDAP_MEMBER_ACTIVE) diff --git a/scripts/members/sync_members_ldap2dolibarr.php b/scripts/members/sync_members_ldap2dolibarr.php index 4ed5e36f696..cf18a75e508 100755 --- a/scripts/members/sync_members_ldap2dolibarr.php +++ b/scripts/members/sync_members_ldap2dolibarr.php @@ -48,7 +48,7 @@ $langs->load("errors"); $version=DOL_VERSION; $error=0; $forcecommit=0; - +$confirmed=0; /* @@ -94,7 +94,7 @@ $required_fields=array_unique(array_values(array_filter($required_fields, "dolVa if (! isset($argv[2]) || ! is_numeric($argv[2])) { - print "Usage: $script_file (nocommitiferror|commitiferror) id_member_type [--server=ldapserverhost]\n"; + print "Usage: $script_file (nocommitiferror|commitiferror) id_member_type [--server=ldapserverhost] [-y]\n"; exit(-1); } @@ -103,6 +103,7 @@ foreach($argv as $key => $val) { if ($val == 'commitiferror') $forcecommit=1; if (preg_match('/--server=([^\s]+)$/',$val,$reg)) $conf->global->LDAP_SERVER_HOST=$reg[1]; + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; } print "Mails sending disabled (useless in batch mode)\n"; @@ -139,9 +140,11 @@ if ($typeid <= 0) } -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); - +if (! $confirmed) +{ + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} // Load table of correspondence of countries $hashlib2rowid=array(); diff --git a/scripts/user/sync_groups_ldap2dolibarr.php b/scripts/user/sync_groups_ldap2dolibarr.php index 93406276ead..b48a4af974e 100755 --- a/scripts/user/sync_groups_ldap2dolibarr.php +++ b/scripts/user/sync_groups_ldap2dolibarr.php @@ -49,6 +49,7 @@ $langs->load("errors"); $version=DOL_VERSION; $error=0; $forcecommit=0; +$confirmed=0; /* @@ -73,7 +74,7 @@ $required_fields=array_unique(array_values(array_filter($required_fields, "dolVa if (! isset($argv[1])) { //print "Usage: $script_file (nocommitiferror|commitiferror) [id_group]\n"; - print "Usage: $script_file (nocommitiferror|commitiferror) [--server=ldapserverhost] [--excludeuser=user1,user2...]\n"; + print "Usage: $script_file (nocommitiferror|commitiferror) [--server=ldapserverhost] [--excludeuser=user1,user2...] [-y]\n"; exit(-1); } @@ -82,6 +83,7 @@ foreach($argv as $key => $val) if ($val == 'commitiferror') $forcecommit=1; if (preg_match('/--server=([^\s]+)$/',$val,$reg)) $conf->global->LDAP_SERVER_HOST=$reg[1]; if (preg_match('/--excludeuser=([^\s]+)$/',$val,$reg)) $excludeuser=explode(',',$reg[1]); + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; } print "Mails sending disabled (useless in batch mode)\n"; @@ -105,9 +107,11 @@ print "commitiferror=".$forcecommit."\n"; print "Mapped LDAP fields=".join(',',$required_fields)."\n"; print "\n"; -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); - +if (! $confirmed) +{ + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} if (empty($conf->global->LDAP_GROUP_DN)) { diff --git a/scripts/user/sync_users_ldap2dolibarr.php b/scripts/user/sync_users_ldap2dolibarr.php index 296db5ec0b2..53a48cc03ca 100755 --- a/scripts/user/sync_users_ldap2dolibarr.php +++ b/scripts/user/sync_users_ldap2dolibarr.php @@ -48,7 +48,7 @@ $version=DOL_VERSION; $error=0; $forcecommit=0; $excludeuser=array(); - +$confirmed=0; /* * Main @@ -85,7 +85,7 @@ $required_fields = array( $required_fields=array_unique(array_values(array_filter($required_fields, "dolValidElement"))); if (! isset($argv[1])) { - print "Usage: $script_file (nocommitiferror|commitiferror) [--server=ldapserverhost] [--excludeuser=user1,user2...]\n"; + print "Usage: $script_file (nocommitiferror|commitiferror) [--server=ldapserverhost] [--excludeuser=user1,user2...] [-y]\n"; exit(-1); } @@ -94,6 +94,7 @@ foreach($argv as $key => $val) if ($val == 'commitiferror') $forcecommit=1; if (preg_match('/--server=([^\s]+)$/',$val,$reg)) $conf->global->LDAP_SERVER_HOST=$reg[1]; if (preg_match('/--excludeuser=([^\s]+)$/',$val,$reg)) $excludeuser=explode(',',$reg[1]); + if (preg_match('/-y$/',$val,$reg)) $confirmed=1; } print "Mails sending disabled (useless in batch mode)\n"; @@ -118,9 +119,11 @@ print "excludeuser=".join(',',$excludeuser)."\n"; print "Mapped LDAP fields=".join(',',$required_fields)."\n"; print "\n"; -print "Hit Enter to continue or CTRL+C to stop...\n"; -$input = trim(fgets(STDIN)); - +if (! $confirmed) +{ + print "Hit Enter to continue or CTRL+C to stop...\n"; + $input = trim(fgets(STDIN)); +} if (empty($conf->global->LDAP_USER_DN)) { From 36632593c04afd8536c6fa83fc180d0785c81b18 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 11:23:44 +0200 Subject: [PATCH 065/205] Fix SQL injections #3300 --- .../class/askpricesupplier.class.php | 6 ++-- htdocs/comm/propal/class/propal.class.php | 6 ++-- htdocs/commande/class/commande.class.php | 8 ++--- htdocs/compta/facture/class/facture.class.php | 4 +-- htdocs/contact/class/contact.class.php | 4 +-- htdocs/fichinter/class/fichinter.class.php | 4 +-- .../class/fournisseur.commande.class.php | 4 +-- htdocs/product/class/product.class.php | 8 ++--- htdocs/societe/class/societe.class.php | 32 +++++++++---------- 9 files changed, 38 insertions(+), 38 deletions(-) diff --git a/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php b/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php index 2854a0a0d4b..bee62cb384d 100644 --- a/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php +++ b/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php @@ -757,8 +757,8 @@ class AskPriceSupplier extends CommonObject $sql.= $this->socid; $sql.= ", 0"; $sql.= ", ".$this->remise; - $sql.= ", ".($this->remise_percent?$this->remise_percent:'null'); - $sql.= ", ".($this->remise_absolue?$this->remise_absolue:'null'); + $sql.= ", ".($this->remise_percent?$this->db->escape($this->remise_percent):'null'); + $sql.= ", ".($this->remise_absolue?$this->db->escape($this->remise_absolue):'null'); $sql.= ", 0"; $sql.= ", 0"; $sql.= ", '".$this->db->idate($now)."'"; @@ -766,7 +766,7 @@ class AskPriceSupplier extends CommonObject $sql.= ", ".($user->id > 0 ? "'".$user->id."'":"null"); $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; - $sql.= ", '".$this->modelpdf."'"; + $sql.= ", '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".$this->cond_reglement_id; $sql.= ", ".$this->mode_reglement_id; $sql.= ", ".($this->fk_account>0?$this->fk_account:'NULL'); diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 77c4e5c6f76..421b2506e73 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -858,8 +858,8 @@ class Propal extends CommonObject $sql.= $this->socid; $sql.= ", 0"; $sql.= ", ".$this->remise; - $sql.= ", ".($this->remise_percent?$this->remise_percent:'null'); - $sql.= ", ".($this->remise_absolue?$this->remise_absolue:'null'); + $sql.= ", ".($this->remise_percent?$this->db->escape($this->remise_percent):'null'); + $sql.= ", ".($this->remise_absolue?$this->db->escape($this->remise_absolue):'null'); $sql.= ", 0"; $sql.= ", 0"; $sql.= ", '".$this->db->idate($this->date)."'"; @@ -868,7 +868,7 @@ class Propal extends CommonObject $sql.= ", ".($user->id > 0 ? "'".$user->id."'":"null"); $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; - $sql.= ", '".$this->modelpdf."'"; + $sql.= ", '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".($this->fin_validite!=''?"'".$this->db->idate($this->fin_validite)."'":"null"); $sql.= ", ".$this->cond_reglement_id; $sql.= ", ".$this->mode_reglement_id; diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 4a037ba486a..767bf294d6f 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -745,13 +745,13 @@ class Commande extends CommonOrder $sql.= " VALUES ('(PROV)',".$this->socid.", '".$this->db->idate($now)."', ".$user->id; $sql.= ", ".($this->fk_project>0?$this->fk_project:"null"); $sql.= ", '".$this->db->idate($date)."'"; - $sql.= ", ".($this->source>=0 && $this->source != '' ?$this->source:'null'); + $sql.= ", ".($this->source>=0 && $this->source != '' ?$this->db->escape($this->source):'null'); $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; $sql.= ", ".($this->ref_ext?"'".$this->db->escape($this->ref_ext)."'":"null"); $sql.= ", ".($this->ref_client?"'".$this->db->escape($this->ref_client)."'":"null"); $sql.= ", ".($this->ref_int?"'".$this->db->escape($this->ref_int)."'":"null"); - $sql.= ", '".$this->modelpdf."'"; + $sql.= ", '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".($this->cond_reglement_id>0?"'".$this->cond_reglement_id."'":"null"); $sql.= ", ".($this->mode_reglement_id>0?"'".$this->mode_reglement_id."'":"null"); $sql.= ", ".($this->fk_account>0?$this->fk_account:'NULL'); @@ -760,8 +760,8 @@ class Commande extends CommonOrder $sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null"); $sql.= ", ".($this->fk_delivery_address>0?$this->fk_delivery_address:'NULL'); $sql.= ", ".($this->shipping_method_id>0?$this->shipping_method_id:'NULL'); - $sql.= ", ".($this->remise_absolue>0?$this->remise_absolue:'NULL'); - $sql.= ", ".($this->remise_percent>0?$this->remise_percent:0); + $sql.= ", ".($this->remise_absolue>0?$this->db->escape($this->remise_absolue):'NULL'); + $sql.= ", ".($this->remise_percent>0?$this->db->escape($this->remise_percent):0); $sql.= ", ".(int) $this->fk_incoterms; $sql.= ", '".$this->db->escape($this->location_incoterms)."'"; $sql.= ", ".$conf->entity; diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index f1718bfe5d3..f0668bb0987 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -332,7 +332,7 @@ class Facture extends CommonInvoice $sql.= "'(PROV)'"; $sql.= ", ".$conf->entity; $sql.= ", ".($this->ref_ext?"'".$this->db->escape($this->ref_ext)."'":"null"); - $sql.= ", '".$this->type."'"; + $sql.= ", '".$this->db->escape($this->type)."'"; $sql.= ", '".$socid."'"; $sql.= ", '".$this->db->idate($now)."'"; $sql.= ", ".($this->remise_absolue>0?$this->remise_absolue:'NULL'); @@ -348,7 +348,7 @@ class Facture extends CommonInvoice $sql.= ", ".($this->fk_project?$this->fk_project:"null"); $sql.= ", ".$this->cond_reglement_id; $sql.= ", ".$this->mode_reglement_id; - $sql.= ", '".$this->db->idate($datelim)."', '".$this->modelpdf."'"; + $sql.= ", '".$this->db->idate($datelim)."', '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".($this->situation_cycle_ref?"'".$this->db->escape($this->situation_cycle_ref)."'":"null"); $sql.= ", ".($this->situation_counter?"'".$this->db->escape($this->situation_counter)."'":"null"); $sql.= ", ".($this->situation_final?$this->situation_final:0); diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index dc3c7fc3640..f3c0b9bd3f5 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -168,9 +168,9 @@ class Contact extends CommonObject $sql.= " ".($user->id > 0 ? "'".$user->id."'":"null").","; $sql.= " ".$this->priv.","; $sql.= " ".$this->statut.","; - $sql.= " ".(! empty($this->canvas)?"'".$this->canvas."'":"null").","; + $sql.= " ".(! empty($this->canvas)?"'".$this->db->escape($this->canvas)."'":"null").","; $sql.= " ".$conf->entity.","; - $sql.= "'".$this->db->escape($this->ref_ext)."',"; + $sql.= "'".$this->db->escape($this->ref_ext)."',"; $sql.= " ".(! empty($this->import_key)?"'".$this->import_key."'":"null"); $sql.= ")"; diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index 5e88cc94243..d0bcee286d0 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -149,11 +149,11 @@ class Fichinter extends CommonObject $sql.= " VALUES ("; $sql.= $this->socid; $sql.= ", '".$this->db->idate($now)."'"; - $sql.= ", '".$this->ref."'"; + $sql.= ", '".$this->db->escape($this->ref)."'"; $sql.= ", ".$conf->entity; $sql.= ", ".$user->id; $sql.= ", ".($this->description?"'".$this->db->escape($this->description)."'":"null"); - $sql.= ", '".$this->modelpdf."'"; + $sql.= ", '".$this->db->escape($this->modelpdf)."'"; $sql.= ", ".($this->fk_project ? $this->fk_project : 0); $sql.= ", ".($this->fk_contrat ? $this->fk_contrat : 0); $sql.= ", ".$this->statut; diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 9bd341e357c..9d77deff3ee 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -998,7 +998,7 @@ class CommandeFournisseur extends CommonOrder $sql.= ") "; $sql.= " VALUES ("; $sql.= "''"; - $sql.= ", '".$this->ref_supplier."'"; + $sql.= ", '".$this->db->escape($this->ref_supplier)."'"; $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; $sql.= ", ".$conf->entity; @@ -1007,7 +1007,7 @@ class CommandeFournisseur extends CommonOrder $sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null"); $sql.= ", ".$user->id; $sql.= ", 0"; - $sql.= ", " . $this->source; + $sql.= ", ".$this->db->escape($this->source); $sql.= ", '".$conf->global->COMMANDE_SUPPLIER_ADDON_PDF."'"; $sql.= ", ".($this->mode_reglement_id > 0 ? $this->mode_reglement_id : 'null'); $sql.= ", ".($this->cond_reglement_id > 0 ? $this->cond_reglement_id : 'null'); diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 13368f652a9..7c2d089960a 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -694,7 +694,7 @@ class Product extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."product"; $sql.= " SET label = '" . $this->db->escape($this->label) ."'"; - $sql.= ", ref = '" . $this->ref ."'"; + $sql.= ", ref = '" . $this->db->escape($this->ref) ."'"; $sql.= ", ref_ext = ".(! empty($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null"); $sql.= ", tva_tx = " . $this->tva_tx; $sql.= ", recuperableonly = " . $this->tva_npr; @@ -722,9 +722,9 @@ class Product extends CommonObject $sql.= ", customcode = '" . $this->db->escape($this->customcode) ."'"; $sql.= ", fk_country = " . ($this->country_id > 0 ? $this->country_id : 'null'); $sql.= ", note = ".(isset($this->note) ? "'" .$this->db->escape($this->note)."'" : 'null'); - $sql.= ", duration = '" . $this->duration_value . $this->duration_unit ."'"; - $sql.= ", accountancy_code_buy = '" . $this->accountancy_code_buy."'"; - $sql.= ", accountancy_code_sell= '" . $this->accountancy_code_sell."'"; + $sql.= ", duration = '" . $this->db->escape($this->duration_value . $this->duration_unit) ."'"; + $sql.= ", accountancy_code_buy = '" . $this->db->escape($this->accountancy_code_buy)."'"; + $sql.= ", accountancy_code_sell= '" . $this->db->escape($this->accountancy_code_sell)."'"; $sql.= ", desiredstock = " . ((isset($this->desiredstock) && $this->desiredstock != '') ? $this->desiredstock : "null"); $sql.= ", fk_unit= " . (!$this->fk_unit ? 'NULL' : $this->fk_unit); $sql.= " WHERE rowid = " . $id; diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 7de6fdec844..0145ff10b1c 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -461,14 +461,14 @@ class Societe extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, name_alias, entity, datec, fk_user_creat, canvas, status, ref_int, ref_ext, fk_stcomm, fk_incoterms, location_incoterms ,import_key)"; $sql.= " VALUES ('".$this->db->escape($this->name)."', '".$this->db->escape($this->name_alias)."', ".$conf->entity.", '".$this->db->idate($now)."'"; $sql.= ", ".(! empty($user->id) ? "'".$user->id."'":"null"); - $sql.= ", ".(! empty($this->canvas) ? "'".$this->canvas."'":"null"); + $sql.= ", ".(! empty($this->canvas) ? "'".$this->db->escape($this->canvas)."'":"null"); $sql.= ", ".$this->status; - $sql.= ", ".(! empty($this->ref_int) ? "'".$this->ref_int."'":"null"); - $sql.= ", ".(! empty($this->ref_ext) ? "'".$this->ref_ext."'":"null"); + $sql.= ", ".(! empty($this->ref_int) ? "'".$this->db->escape($this->ref_int)."'":"null"); + $sql.= ", ".(! empty($this->ref_ext) ? "'".$this->db->escape($this->ref_ext)."'":"null"); $sql.= ", 0"; $sql.= ", ".(int) $this->fk_incoterms; $sql.= ", '".$this->db->escape($this->location_incoterms)."'"; - $sql.= ", ".(! empty($this->import_key) ? "'".$this->import_key."'":"null").")"; + $sql.= ", ".(! empty($this->import_key) ? "'".$this->db->escape($this->import_key)."'":"null").")"; dol_syslog(get_class($this)."::create", LOG_DEBUG); $result=$this->db->query($sql); @@ -789,7 +789,7 @@ class Societe extends CommonObject $sql .= ",ref_ext = " .(! empty($this->ref_ext)?"'".$this->db->escape($this->ref_ext) ."'":"null"); $sql .= ",address = '" . $this->db->escape($this->address) ."'"; - $sql .= ",zip = ".(! empty($this->zip)?"'".$this->zip."'":"null"); + $sql .= ",zip = ".(! empty($this->zip)?"'".$this->db->escape($this->zip)."'":"null"); $sql .= ",town = ".(! empty($this->town)?"'".$this->db->escape($this->town)."'":"null"); $sql .= ",fk_departement = '" . (! empty($this->state_id)?$this->state_id:'0') ."'"; @@ -841,17 +841,17 @@ class Societe extends CommonObject $sql .= ",prefix_comm = ".(! empty($this->prefix_comm)?"'".$this->db->escape($this->prefix_comm)."'":"null"); - $sql .= ",fk_effectif = ".(! empty($this->effectif_id)?"'".$this->effectif_id."'":"null"); + $sql .= ",fk_effectif = ".(! empty($this->effectif_id)?"'".$this->db->escape($this->effectif_id)."'":"null"); - $sql .= ",fk_typent = ".(! empty($this->typent_id)?"'".$this->typent_id."'":"0"); + $sql .= ",fk_typent = ".(! empty($this->typent_id)?"'".$this->db->escape($this->typent_id)."'":"0"); - $sql .= ",fk_forme_juridique = ".(! empty($this->forme_juridique_code)?"'".$this->forme_juridique_code."'":"null"); + $sql .= ",fk_forme_juridique = ".(! empty($this->forme_juridique_code)?"'".$this->db->escape($this->forme_juridique_code)."'":"null"); $sql .= ",client = " . (! empty($this->client)?$this->client:0); $sql .= ",fournisseur = " . (! empty($this->fournisseur)?$this->fournisseur:0); - $sql .= ",barcode = ".(! empty($this->barcode)?"'".$this->barcode."'":"null"); - $sql .= ",default_lang = ".(! empty($this->default_lang)?"'".$this->default_lang."'":"null"); - $sql .= ",logo = ".(! empty($this->logo)?"'".$this->logo."'":"null"); + $sql .= ",barcode = ".(! empty($this->barcode)?"'".$this->db->escape($this->barcode)."'":"null"); + $sql .= ",default_lang = ".(! empty($this->default_lang)?"'".$this->db->escape($this->default_lang)."'":"null"); + $sql .= ",logo = ".(! empty($this->logo)?"'".$this->db->escape($this->logo)."'":"null"); $sql .= ",webservices_url = ".(! empty($this->webservices_url)?"'".$this->db->escape($this->webservices_url)."'":"null"); $sql .= ",webservices_key = ".(! empty($this->webservices_key)?"'".$this->db->escape($this->webservices_key)."'":"null"); @@ -1530,7 +1530,7 @@ class Societe extends CommonObject // Positionne remise courante $sql = "UPDATE ".MAIN_DB_PREFIX."societe "; - $sql.= " SET remise_client = '".$remise."'"; + $sql.= " SET remise_client = '".$this->db->escape($remise)."'"; $sql.= " WHERE rowid = " . $this->id .";"; $resql=$this->db->query($sql); if (! $resql) @@ -1543,7 +1543,7 @@ class Societe extends CommonObject // Ecrit trace dans historique des remises $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_remise"; $sql.= " (datec, fk_soc, remise_client, note, fk_user_author)"; - $sql.= " VALUES ('".$this->db->idate($now)."', ".$this->id.", '".$remise."',"; + $sql.= " VALUES ('".$this->db->idate($now)."', ".$this->id.", '".$this->db->escape($remise)."',"; $sql.= " '".$this->db->escape($note)."',"; $sql.= " ".$user->id; $sql.= ")"; @@ -1693,7 +1693,7 @@ class Societe extends CommonObject $now=dol_now(); $sql = "UPDATE ".MAIN_DB_PREFIX."societe"; - $sql .= " SET price_level = '".$price_level."'"; + $sql .= " SET price_level = '".$this->db->escape($price_level)."'"; $sql .= " WHERE rowid = " . $this->id; if (! $this->db->query($sql)) @@ -1704,7 +1704,7 @@ class Societe extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_prices"; $sql .= " (datec, fk_soc, price_level, fk_user_author)"; - $sql .= " VALUES ('".$this->db->idate($now)."',".$this->id.",'".$price_level."',".$user->id.")"; + $sql .= " VALUES ('".$this->db->idate($now)."',".$this->id.",'".$this->db->escape($price_level)."',".$user->id.")"; if (! $this->db->query($sql)) { @@ -3241,7 +3241,7 @@ class Societe extends CommonObject * @param User $user User making change * @return int <0 if KO, >0 if OK */ - function set_OutstandingBill (User $user) + function set_OutstandingBill(User $user) { if ($this->id) { From 1966d75cedb0a1ce79a5840c0e44b27fbf414b86 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 12:50:55 +0200 Subject: [PATCH 066/205] FIX #3490 --- .../fourn/class/fournisseur.facture.class.php | 18 +++++++++++------- htdocs/fourn/facture/card.php | 11 ++++++----- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 5e24417f618..892ee14e0f8 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -266,7 +266,7 @@ class FactureFournisseur extends CommonInvoice { if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used { - $result=$this->insertExtraFields(); + $result=$this->insertExtraFields(); // This also set $this->error or $this->errors if errors are found if ($result < 0) { $error++; @@ -274,11 +274,15 @@ class FactureFournisseur extends CommonInvoice } } else if ($reshook < 0) $error++; - // Call trigger - $result=$this->call_trigger('BILL_SUPPLIER_CREATE',$user); - if ($result < 0) $error++; - // End call triggers - + + if (! $error) + { + // Call trigger + $result=$this->call_trigger('BILL_SUPPLIER_CREATE',$user); + if ($result < 0) $error++; + // End call triggers + } + if (! $error) { $this->db->commit(); @@ -307,7 +311,7 @@ class FactureFournisseur extends CommonInvoice } else { - $this->error=$this->db->error(); + $this->error=$this->db->lasterror(); $this->db->rollback(); return -2; } diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 6032a7a5036..c39128218d5 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -364,7 +364,7 @@ if (empty($reshook)) if(empty($object->date_echeance)) $object->date_echeance = $object->calculate_date_lim_reglement(); // If creation from another object of another module - if ($_POST['origin'] && $_POST['originid']) + if (! $error && $_POST['origin'] && $_POST['originid']) { // Parse element/subelement (ex: project_task) $element = $subelement = $_POST['origin']; @@ -468,17 +468,17 @@ if (empty($reshook)) $error++; } } - // If some invoice's lines already known - else + else if (! $error) { $id = $object->create($user); if ($id < 0) { $error++; } - + if (! $error) { + // If some invoice's lines already known for ($i = 1 ; $i < 9 ; $i++) { $label = $_POST['label'.$i]; @@ -513,7 +513,8 @@ if (empty($reshook)) { $langs->load("errors"); $db->rollback(); - setEventMessage($langs->trans($object->error), 'errors'); + + setEventMessages($object->error, $object->errors, 'errors'); $action='create'; $_GET['socid']=$_POST['socid']; } From c785f8cfb12afc5a3324c87093cb18413c4a3580 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 12:52:07 +0200 Subject: [PATCH 067/205] Fix duplicate translation/encoding on setEventMessage --- dev/skeletons/skeleton_page.php | 4 ++-- htdocs/comm/action/card.php | 2 +- htdocs/core/lib/functions.lib.php | 15 +++++++++------ htdocs/expensereport/card.php | 2 +- htdocs/ftp/index.php | 2 +- htdocs/holiday/define_holiday.php | 6 +++--- htdocs/projet/activity/perday.php | 8 ++++---- htdocs/projet/activity/perweek.php | 6 +++--- htdocs/user/card.php | 2 +- 9 files changed, 25 insertions(+), 22 deletions(-) diff --git a/dev/skeletons/skeleton_page.php b/dev/skeletons/skeleton_page.php index a74088b3702..68987ca410e 100644 --- a/dev/skeletons/skeleton_page.php +++ b/dev/skeletons/skeleton_page.php @@ -149,7 +149,7 @@ if (empty($reshook)) if (empty($object->ref)) { $error++; - setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors'); } if (! $error) @@ -180,7 +180,7 @@ if (empty($reshook)) if ($result > 0) { // Delete OK - setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); + setEventMessages("RecordDeleted", null, 'mesgs'); header("Location: ".dol_buildpath('/buildingmanagement/list.php',1)); exit; } diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index b442a6266ec..8eef2b06b8b 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -407,7 +407,7 @@ if ($action == 'update') if (! $datef && $percentage == 100) { $error++; $donotclearsession=1; - setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DateEnd")),$object->errors,'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired",$langs->transnoentitiesnoconv("DateEnd")),$object->errors,'errors'); $action = 'edit'; } diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 93d15eb74f4..ae920333ac6 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4385,15 +4385,17 @@ function dol_htmloutput_events() /** * Get formated messages to output (Used to show messages on html output). + * This include also the translation of the message key. * - * @param string $mesgstring Message string - * @param array $mesgarray Messages array + * @param string $mesgstring Message string or message key + * @param string[] $mesgarray Array of message strings or message keys * @param string $style Style of message output ('ok' or 'error') * @param int $keepembedded Set to 1 in error message must be kept embedded into its html place (this disable jnotify) * @return string Return html output * * @see dol_print_error * @see dol_htmloutput_errors + * @see setEventMessages */ function get_htmloutput_mesg($mesgstring='',$mesgarray='', $style='ok', $keepembedded=0) { @@ -4478,14 +4480,15 @@ function get_htmloutput_errors($mesgstring='', $mesgarray='', $keepembedded=0) /** * Print formated messages to output (Used to show messages on html output). * - * @param string $mesgstring Message - * @param array $mesgarray Messages array - * @param string $style Which style to use ('ok', 'warning', 'error') - * @param int $keepembedded Set to 1 if message must be kept embedded into its html place (this disable jnotify) + * @param string $mesgstring Message string or message key + * @param string[] $mesgarray Array of message strings or message keys + * @param string $style Which style to use ('ok', 'warning', 'error') + * @param int $keepembedded Set to 1 if message must be kept embedded into its html place (this disable jnotify) * @return void * * @see dol_print_error * @see dol_htmloutput_errors + * @see setEventMessages */ function dol_htmloutput_mesg($mesgstring='',$mesgarray='', $style='ok', $keepembedded=0) { diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 1eb5d8d47ba..7220e869350 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -709,7 +709,7 @@ if ($action == "confirm_brouillonner" && GETPOST('confirm')=="yes" && $id > 0 && } else { - setEventMessages($langs->transnoentitiesnoconv("NOT_AUTHOR"), '', 'errors'); + setEventMessages("NOT_AUTHOR", '', 'errors'); } } diff --git a/htdocs/ftp/index.php b/htdocs/ftp/index.php index 9b0c2a36e0e..afcb32811a9 100644 --- a/htdocs/ftp/index.php +++ b/htdocs/ftp/index.php @@ -341,7 +341,7 @@ if ($action == 'download') } else { - setEventMessages($langs->trans('FailedToGetFile',$remotefile), null, 'errors'); + setEventMessages($langs->transnoentitiesnoconv('FailedToGetFile',$remotefile), null, 'errors'); } } diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php index c0179c55bd0..3c5d9f40ab4 100644 --- a/htdocs/holiday/define_holiday.php +++ b/htdocs/holiday/define_holiday.php @@ -102,7 +102,7 @@ if ($action == 'update' && isset($_POST['update_cp'])) } } - if (! $error) setEventMessages($langs->trans('UpdateConfCPOK'), '', 'mesgs'); + if (! $error) setEventMessages('UpdateConfCPOK', '', 'mesgs'); } elseif($action == 'add_event') { @@ -122,7 +122,7 @@ elseif($action == 'add_event') if ($error) { - setEventMessages($langs->trans('ErrorAddEventToUserCP'), '', 'errors'); + setEventMessages('ErrorAddEventToUserCP', '', 'errors'); } else { @@ -135,7 +135,7 @@ elseif($action == 'add_event') $holiday->updateSoldeCP($userCP,$new_holiday); - setEventMessages($langs->trans('AddEventToUserOkCP'), '', 'mesgs'); + setEventMessages('AddEventToUserOkCP', '', 'mesgs'); } } diff --git a/htdocs/projet/activity/perday.php b/htdocs/projet/activity/perday.php index f8e106a7e7e..93305dbc63c 100644 --- a/htdocs/projet/activity/perday.php +++ b/htdocs/projet/activity/perday.php @@ -96,12 +96,12 @@ if ($action == 'assign') } else { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); $error++; } if (! GETPOST('type')) { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); $error++; } if (! $error) @@ -126,7 +126,7 @@ if ($action == 'assign') if (! $error) { - setEventMessages($langs->trans("TaskAssignedToEnterTime"), null); + setEventMessages("TaskAssignedToEnterTime", null); } $action=''; @@ -180,7 +180,7 @@ if ($action == 'addtime' && $user->rights->projet->creer) } else { - setEventMessages($langs->trans("ErrorBadDate"), null, 'errors'); + setEventMessages("ErrorBadDate", null, 'errors'); $error++; break; } diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php index 619803ecbc3..6201c601d18 100644 --- a/htdocs/projet/activity/perweek.php +++ b/htdocs/projet/activity/perweek.php @@ -108,12 +108,12 @@ if ($action == 'assign') } else { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); $error++; } if (! GETPOST('type')) { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); $error++; } if (! $error) @@ -138,7 +138,7 @@ if ($action == 'assign') if (! $error) { - setEventMessages($langs->trans("TaskAssignedToEnterTime"), null); + setEventMessages("TaskAssignedToEnterTime", null); } $action=''; diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 79c4a123022..f545e325712 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -482,7 +482,7 @@ if ($action == 'update' && ! $_POST["cancel"]) { $error++; $langs->load("errors"); - setEventMessages($langs->trans("ErrorFailedToCreateDir", $dir), $mesgs, 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFailedToCreateDir", $dir), $mesgs, 'errors'); } } } From a5c6582bc1ad8b80d400b33a0661ad1980fb234d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 12:52:07 +0200 Subject: [PATCH 068/205] Fix duplicate translation/encoding on setEventMessage Conflicts: htdocs/ftp/index.php --- dev/skeletons/skeleton_page.php | 4 ++-- htdocs/comm/action/card.php | 2 +- htdocs/core/lib/functions.lib.php | 15 +++++++++------ htdocs/expensereport/card.php | 2 +- htdocs/ftp/index.php | 3 +-- htdocs/holiday/define_holiday.php | 6 +++--- htdocs/projet/activity/perday.php | 8 ++++---- htdocs/projet/activity/perweek.php | 6 +++--- htdocs/user/card.php | 2 +- 9 files changed, 25 insertions(+), 23 deletions(-) diff --git a/dev/skeletons/skeleton_page.php b/dev/skeletons/skeleton_page.php index 3d0454f5423..2dd9f08e18f 100644 --- a/dev/skeletons/skeleton_page.php +++ b/dev/skeletons/skeleton_page.php @@ -152,7 +152,7 @@ if (empty($reshook)) if (empty($object->ref)) { $error++; - setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors'); } if (! $error) @@ -183,7 +183,7 @@ if (empty($reshook)) if ($result > 0) { // Delete OK - setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); + setEventMessages("RecordDeleted", null, 'mesgs'); header("Location: ".dol_buildpath('/buildingmanagement/list.php',1)); exit; } diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index b442a6266ec..8eef2b06b8b 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -407,7 +407,7 @@ if ($action == 'update') if (! $datef && $percentage == 100) { $error++; $donotclearsession=1; - setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DateEnd")),$object->errors,'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired",$langs->transnoentitiesnoconv("DateEnd")),$object->errors,'errors'); $action = 'edit'; } diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index f5dc621aaf3..4672f7a88e2 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4385,15 +4385,17 @@ function dol_htmloutput_events() /** * Get formated messages to output (Used to show messages on html output). + * This include also the translation of the message key. * - * @param string $mesgstring Message string - * @param array $mesgarray Messages array + * @param string $mesgstring Message string or message key + * @param string[] $mesgarray Array of message strings or message keys * @param string $style Style of message output ('ok' or 'error') * @param int $keepembedded Set to 1 in error message must be kept embedded into its html place (this disable jnotify) * @return string Return html output * * @see dol_print_error * @see dol_htmloutput_errors + * @see setEventMessages */ function get_htmloutput_mesg($mesgstring='',$mesgarray='', $style='ok', $keepembedded=0) { @@ -4478,14 +4480,15 @@ function get_htmloutput_errors($mesgstring='', $mesgarray='', $keepembedded=0) /** * Print formated messages to output (Used to show messages on html output). * - * @param string $mesgstring Message - * @param array $mesgarray Messages array - * @param string $style Which style to use ('ok', 'warning', 'error') - * @param int $keepembedded Set to 1 if message must be kept embedded into its html place (this disable jnotify) + * @param string $mesgstring Message string or message key + * @param string[] $mesgarray Array of message strings or message keys + * @param string $style Which style to use ('ok', 'warning', 'error') + * @param int $keepembedded Set to 1 if message must be kept embedded into its html place (this disable jnotify) * @return void * * @see dol_print_error * @see dol_htmloutput_errors + * @see setEventMessages */ function dol_htmloutput_mesg($mesgstring='',$mesgarray='', $style='ok', $keepembedded=0) { diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 1eb5d8d47ba..7220e869350 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -709,7 +709,7 @@ if ($action == "confirm_brouillonner" && GETPOST('confirm')=="yes" && $id > 0 && } else { - setEventMessages($langs->transnoentitiesnoconv("NOT_AUTHOR"), '', 'errors'); + setEventMessages("NOT_AUTHOR", '', 'errors'); } } diff --git a/htdocs/ftp/index.php b/htdocs/ftp/index.php index 4da37cde779..7a376263656 100644 --- a/htdocs/ftp/index.php +++ b/htdocs/ftp/index.php @@ -339,8 +339,7 @@ if ($_REQUEST['action'] == 'download') } else { - //TODO: Translate - setEventMessage('Failed to get file '.$remotefile, 'errors'); + setEventMessages($langs->transnoentitiesnoconv('FailedToGetFile',$remotefile), null, 'errors'); } } diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php index c0179c55bd0..3c5d9f40ab4 100644 --- a/htdocs/holiday/define_holiday.php +++ b/htdocs/holiday/define_holiday.php @@ -102,7 +102,7 @@ if ($action == 'update' && isset($_POST['update_cp'])) } } - if (! $error) setEventMessages($langs->trans('UpdateConfCPOK'), '', 'mesgs'); + if (! $error) setEventMessages('UpdateConfCPOK', '', 'mesgs'); } elseif($action == 'add_event') { @@ -122,7 +122,7 @@ elseif($action == 'add_event') if ($error) { - setEventMessages($langs->trans('ErrorAddEventToUserCP'), '', 'errors'); + setEventMessages('ErrorAddEventToUserCP', '', 'errors'); } else { @@ -135,7 +135,7 @@ elseif($action == 'add_event') $holiday->updateSoldeCP($userCP,$new_holiday); - setEventMessages($langs->trans('AddEventToUserOkCP'), '', 'mesgs'); + setEventMessages('AddEventToUserOkCP', '', 'mesgs'); } } diff --git a/htdocs/projet/activity/perday.php b/htdocs/projet/activity/perday.php index f8e106a7e7e..93305dbc63c 100644 --- a/htdocs/projet/activity/perday.php +++ b/htdocs/projet/activity/perday.php @@ -96,12 +96,12 @@ if ($action == 'assign') } else { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); $error++; } if (! GETPOST('type')) { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); $error++; } if (! $error) @@ -126,7 +126,7 @@ if ($action == 'assign') if (! $error) { - setEventMessages($langs->trans("TaskAssignedToEnterTime"), null); + setEventMessages("TaskAssignedToEnterTime", null); } $action=''; @@ -180,7 +180,7 @@ if ($action == 'addtime' && $user->rights->projet->creer) } else { - setEventMessages($langs->trans("ErrorBadDate"), null, 'errors'); + setEventMessages("ErrorBadDate", null, 'errors'); $error++; break; } diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php index 619803ecbc3..6201c601d18 100644 --- a/htdocs/projet/activity/perweek.php +++ b/htdocs/projet/activity/perweek.php @@ -108,12 +108,12 @@ if ($action == 'assign') } else { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Task")), '', 'errors'); $error++; } if (! GETPOST('type')) { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), '', 'errors'); $error++; } if (! $error) @@ -138,7 +138,7 @@ if ($action == 'assign') if (! $error) { - setEventMessages($langs->trans("TaskAssignedToEnterTime"), null); + setEventMessages("TaskAssignedToEnterTime", null); } $action=''; diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 79c4a123022..f545e325712 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -482,7 +482,7 @@ if ($action == 'update' && ! $_POST["cancel"]) { $error++; $langs->load("errors"); - setEventMessages($langs->trans("ErrorFailedToCreateDir", $dir), $mesgs, 'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFailedToCreateDir", $dir), $mesgs, 'errors'); } } } From 97096536b1d179e328d8c311ccf6e9d0766776ec Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 15:19:19 +0200 Subject: [PATCH 069/205] Fix #2526 The filter on type numeric is ok now. Sometimes we used "Number", sometimes "Numeric". I moved to "Numeric" everywhere to solve bug and added a warning in log if an unknow value is still used in code. --- htdocs/core/modules/export/export_excel.modules.php | 2 +- htdocs/core/modules/modAdherent.class.php | 2 +- htdocs/core/modules/modAgenda.class.php | 2 +- htdocs/core/modules/modBanque.class.php | 6 +++--- htdocs/core/modules/modCommande.class.php | 4 ++-- htdocs/core/modules/modDeplacement.class.php | 2 +- htdocs/core/modules/modExpedition.class.php | 4 ++-- htdocs/core/modules/modFacture.class.php | 4 ++-- htdocs/core/modules/modFournisseur.class.php | 12 ++++++------ htdocs/core/modules/modProduct.class.php | 8 ++++---- htdocs/core/modules/modProjet.class.php | 2 +- htdocs/core/modules/modSalaries.class.php | 2 +- htdocs/core/modules/modService.class.php | 8 ++++---- htdocs/core/modules/modSociete.class.php | 7 ++++--- htdocs/core/modules/modStock.class.php | 4 ++-- htdocs/core/modules/modTax.class.php | 2 +- htdocs/exports/class/export.class.php | 6 ++++-- htdocs/exports/export.php | 10 +++++++++- 18 files changed, 49 insertions(+), 38 deletions(-) diff --git a/htdocs/core/modules/export/export_excel.modules.php b/htdocs/core/modules/export/export_excel.modules.php index a59eb881e83..ede00733695 100644 --- a/htdocs/core/modules/export/export_excel.modules.php +++ b/htdocs/core/modules/export/export_excel.modules.php @@ -284,7 +284,7 @@ class ExportExcel extends ModeleExports else { $this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, $outputlangs->transnoentities($alias)); - if (! empty($array_types[$code]) && in_array($array_types[$code],array('Date','Number','TextAuto'))) // Set autowidth for some types + if (! empty($array_types[$code]) && in_array($array_types[$code],array('Date','Numeric','TextAuto'))) // Set autowidth for some types { $this->workbook->getActiveSheet()->getColumnDimension($this->column2Letter($this->col + 1))->setAutoSize(true); } diff --git a/htdocs/core/modules/modAdherent.class.php b/htdocs/core/modules/modAdherent.class.php index 1090e8b6939..ca9011a5684 100644 --- a/htdocs/core/modules/modAdherent.class.php +++ b/htdocs/core/modules/modAdherent.class.php @@ -175,7 +175,7 @@ class modAdherent extends DolibarrModules $this->export_label[$r]='MembersAndSubscriptions'; $this->export_permission[$r]=array(array("adherent","export")); $this->export_fields_array[$r]=array('a.rowid'=>'Id','a.civility'=>"UserTitle",'a.lastname'=>"Lastname",'a.firstname'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'d.nom'=>"State",'co.code'=>"CountryCode",'co.label'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note_public'=>"NotePublic",'a.note_private'=>"NotePrivate",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount'); - $this->export_TypeFields_array[$r]=array('a.civility'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.zip'=>"Text",'a.town'=>"Text",'d.nom'=>"Text",'co.code'=>'Text','co.label'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.birth'=>"Date",'a.statut'=>"Status",'a.note_public'=>"Text",'a.note_private'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number'); + $this->export_TypeFields_array[$r]=array('a.civility'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.zip'=>"Text",'a.town'=>"Text",'d.nom'=>"Text",'co.code'=>'Text','co.label'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.birth'=>"Date",'a.statut'=>"Status",'a.note_public'=>"Text",'a.note_private'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Numeric'); $this->export_entities_array[$r]=array('a.rowid'=>'member','a.civility'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.address'=>"member",'a.zip'=>"member",'a.town'=>"member",'d.nom'=>"member",'co.code'=>"member",'co.label'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.birth'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note_public'=>"member",'a.note_private'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription'); // Add extra fields diff --git a/htdocs/core/modules/modAgenda.class.php b/htdocs/core/modules/modAgenda.class.php index 819ee0c1206..f7694ecc9f6 100644 --- a/htdocs/core/modules/modAgenda.class.php +++ b/htdocs/core/modules/modAgenda.class.php @@ -376,7 +376,7 @@ class modAgenda extends DolibarrModules 'co.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6', 's.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode','s.tva_intra'=>'VATIntra'); $this->export_TypeFields_array[$r]=array('ac.ref_ext'=>"Text",'ac.datec'=>"Date",'ac.datep'=>"Date", - 'ac.datep2'=>"Date",'ac.label'=>"Text",'ac.note'=>"Text",'ac.percent'=>"Number", + 'ac.datep2'=>"Date",'ac.label'=>"Text",'ac.note'=>"Text",'ac.percent'=>"Numeric", 'ac.durationp'=>"Duree", 'cac.libelle'=>"List:c_actioncomm:libelle:id", 's.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text', diff --git a/htdocs/core/modules/modBanque.class.php b/htdocs/core/modules/modBanque.class.php index 9222a38ff26..efb242aca94 100644 --- a/htdocs/core/modules/modBanque.class.php +++ b/htdocs/core/modules/modBanque.class.php @@ -144,7 +144,7 @@ class modBanque extends DolibarrModules $this->export_label[$r]='Ecritures bancaires et releves'; $this->export_permission[$r]=array(array("banque","export")); $this->export_fields_array[$r]=array('b.rowid'=>'IdTransaction','ba.ref'=>'AccountRef','ba.label'=>'AccountLabel','b.datev'=>'DateValue','b.dateo'=>'DateOperation','b.label'=>'Label','b.num_chq'=>'ChequeOrTransferNumber','b.fk_bordereau'=>'ChequeBordereau','-b.amount'=>'Debit','b.amount'=>'Credit','b.num_releve'=>'AccountStatement','b.datec'=>"DateCreation","bu.url_id"=>"IdThirdParty","s.nom"=>"ThirdParty","s.code_compta"=>"CustomerAccountancyCode","s.code_compta_fournisseur"=>"SupplierAccountancyCode"); - $this->export_TypeFields_array[$r]=array('ba.ref'=>'Text','ba.label'=>'Text','b.datev'=>'Date','b.dateo'=>'Date','b.label'=>'Text','b.num_chq'=>'Text','b.fk_bordereau'=>'Text','-b.amount'=>'Number','b.amount'=>'Number','b.num_releve'=>'Text','b.datec'=>"Date","bu.url_id"=>"Text","s.nom"=>"Text","s.code_compta"=>"Text","s.code_compta_fournisseur"=>"Text"); + $this->export_TypeFields_array[$r]=array('ba.ref'=>'Text','ba.label'=>'Text','b.datev'=>'Date','b.dateo'=>'Date','b.label'=>'Text','b.num_chq'=>'Text','b.fk_bordereau'=>'Text','-b.amount'=>'Numeric','b.amount'=>'Numeric','b.num_releve'=>'Text','b.datec'=>"Date","bu.url_id"=>"Text","s.nom"=>"Text","s.code_compta"=>"Text","s.code_compta_fournisseur"=>"Text"); $this->export_entities_array[$r]=array('b.rowid'=>'account','ba.ref'=>'account','ba.label'=>'account','b.datev'=>'account','b.dateo'=>'account','b.label'=>'account','b.num_chq'=>'account','b.fk_bordereau'=>'account','-b.amount'=>'account','b.amount'=>'account','b.num_releve'=>'account','b.datec'=>"account","bu.url_id"=>"company","s.nom"=>"company","s.code_compta"=>"company","s.code_compta_fournisseur"=>"company"); $this->export_special_array[$r]=array('-b.amount'=>'NULLIFNEG','b.amount'=>'NULLIFNEG'); if (empty($conf->fournisseur->enabled)) @@ -167,8 +167,8 @@ class modBanque extends DolibarrModules $this->export_fields_array[$r]=array("bch.rowid"=>"bordereauid","bch.number"=>"Numero","bch.ref_ext"=>"RefExt",'ba.ref'=>'AccountRef','ba.label'=>'AccountLabel','b.datev'=>'DateValue','b.num_chq'=>'ChequeOrTransferNumber','b.amount'=>'Credit','b.num_releve'=>'AccountStatement','b.datec'=>"DateCreation", "bch.date_bordereau"=>"Date","bch.amount"=>"Total","bch.nbcheque"=>"NbCheque","bu.url_id"=>"IdThirdParty","s.nom"=>"ThirdParty","f.facnumber"=>"InvoiceRef" ); - $this->export_TypeFields_array[$r]=array('ba.ref'=>'Text','ba.label'=>'Text','b.datev'=>'Date','b.num_chq'=>'Text','b.amount'=>'Number','b.num_releve'=>'Text','b.datec'=>"Date", - "bch.date_bordereau"=>"Date","bch.rowid"=>"Number","bch.number"=>"Number","bch.ref_ext"=>"Text","bch.amount"=>"Number","bch.nbcheque"=>"NumBer","bu.url_id"=>"Text","s.nom"=>"Text","f.facnumber"=>"Text" + $this->export_TypeFields_array[$r]=array('ba.ref'=>'Text','ba.label'=>'Text','b.datev'=>'Date','b.num_chq'=>'Text','b.amount'=>'Numeric','b.num_releve'=>'Text','b.datec'=>"Date", + "bch.date_bordereau"=>"Date","bch.rowid"=>"Numeric","bch.number"=>"Numeric","bch.ref_ext"=>"Text","bch.amount"=>"Numeric","bch.nbcheque"=>"Numeric","bu.url_id"=>"Text","s.nom"=>"Text","f.facnumber"=>"Text" ); $this->export_entities_array[$r]=array('ba.ref'=>'account','ba.label'=>'account','b.datev'=>'account','b.num_chq'=>'account','b.amount'=>'account','b.num_releve'=>'account','b.datec'=>"account", "bu.url_id"=>"company","s.nom"=>"company","s.code_compta"=>"company","s.code_compta_fournisseur"=>"company","f.facnumber"=>"invoice"); diff --git a/htdocs/core/modules/modCommande.class.php b/htdocs/core/modules/modCommande.class.php index 4289bd54932..da2f7d794ed 100644 --- a/htdocs/core/modules/modCommande.class.php +++ b/htdocs/core/modules/modCommande.class.php @@ -178,8 +178,8 @@ class modCommande extends DolibarrModules $this->export_label[$r]='CustomersOrdersAndOrdersLines'; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("commande","commande","export")); $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','co.label'=>'Country','co.code'=>"CountryCode",'s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','c.rowid'=>"Id",'c.ref'=>"Ref",'c.ref_client'=>"RefCustomer",'c.fk_soc'=>"IdCompany",'c.date_creation'=>"DateCreation",'c.date_commande'=>"OrderDate",'c.amount_ht'=>"Amount",'c.remise_percent'=>"GlobalDiscount",'c.total_ht'=>"TotalHT",'c.total_ttc'=>"TotalTTC",'c.facture'=>"Billed",'c.fk_statut'=>'Status','c.note_public'=>"Note",'c.date_livraison'=>'DeliveryDate','c.fk_user_author'=>'CreatedById','uc.login'=>'CreatedByLogin','c.fk_user_valid'=>'ValidatedById','uv.login'=>'ValidatedByLogin','cd.rowid'=>'LineId','cd.label'=>"Label",'cd.description'=>"LineDescription",'cd.product_type'=>'TypeOfLineServiceOrProduct','cd.tva_tx'=>"LineVATRate",'cd.qty'=>"LineQty",'cd.total_ht'=>"LineTotalHT",'cd.total_tva'=>"LineTotalVAT",'cd.total_ttc'=>"LineTotalTTC",'p.rowid'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel'); - //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Number",'c.remise_percent'=>"Number",'c.total_ht'=>"Number",'c.total_ttc'=>"Number",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','cd.description'=>"Text",'cd.product_type'=>'Boolean','cd.tva_tx'=>"Number",'cd.qty'=>"Number",'cd.total_ht'=>"Number",'cd.total_tva'=>"Number",'cd.total_ttc'=>"Number",'p.rowid'=>'List:product:ref','p.ref'=>'Text','p.label'=>'Text'); - $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Number",'c.remise_percent'=>"Number",'c.total_ht'=>"Number",'c.total_ttc'=>"Number",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','cd.description'=>"Text",'cd.product_type'=>'Boolean','cd.tva_tx'=>"Number",'cd.qty'=>"Number",'cd.total_ht'=>"Number",'cd.total_tva'=>"Number",'cd.total_ttc'=>"Number",'p.rowid'=>'List:product:ref','p.ref'=>'Text','p.label'=>'Text'); + //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Numeric",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total_ttc'=>"Numeric",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','cd.description'=>"Text",'cd.product_type'=>'Boolean','cd.tva_tx'=>"Numeric",'cd.qty'=>"Numeric",'cd.total_ht'=>"Numeric",'cd.total_tva'=>"Numeric",'cd.total_ttc'=>"Numeric",'p.rowid'=>'List:product:ref','p.ref'=>'Text','p.label'=>'Text'); + $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Numeric",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total_ttc'=>"Numeric",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','cd.description'=>"Text",'cd.product_type'=>'Boolean','cd.tva_tx'=>"Numeric",'cd.qty'=>"Numeric",'cd.total_ht'=>"Numeric",'cd.total_tva'=>"Numeric",'cd.total_ttc'=>"Numeric",'p.rowid'=>'List:product:ref','p.ref'=>'Text','p.label'=>'Text'); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','co.label'=>'company','co.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.siret'=>'company','c.rowid'=>"order",'c.ref'=>"order",'c.ref_client'=>"order",'c.fk_soc'=>"order",'c.date_creation'=>"order",'c.date_commande'=>"order",'c.amount_ht'=>"order",'c.remise_percent'=>"order",'c.total_ht'=>"order",'c.total_ttc'=>"order",'c.facture'=>"order",'c.fk_statut'=>"order",'c.note'=>"order",'c.date_livraison'=>"order",'cd.rowid'=>'order_line','cd.label'=>"order_line",'cd.description'=>"order_line",'cd.product_type'=>'order_line','cd.tva_tx'=>"order_line",'cd.qty'=>"order_line",'cd.total_ht'=>"order_line",'cd.total_tva'=>"order_line",'cd.total_ttc'=>"order_line",'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product'); $this->export_dependencies_array[$r]=array('order_line'=>'cd.rowid','product'=>'cd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them diff --git a/htdocs/core/modules/modDeplacement.class.php b/htdocs/core/modules/modDeplacement.class.php index 08f21ae6c63..35601f664bd 100644 --- a/htdocs/core/modules/modDeplacement.class.php +++ b/htdocs/core/modules/modDeplacement.class.php @@ -115,7 +115,7 @@ class modDeplacement extends DolibarrModules $this->export_label[$r]='ListTripsAndExpenses'; $this->export_permission[$r]=array(array("deplacement","export")); $this->export_fields_array[$r]=array('u.login'=>'Login','u.lastname'=>'Lastname','u.firstname'=>'Firstname','d.rowid'=>"TripId",'d.type'=>"Type",'d.km'=>"FeesKilometersOrAmout",'d.dated'=>"Date",'d.note_private'=>'NotePrivate','d.note_public'=>'NotePublic','s.nom'=>'ThirdParty'); - $this->export_TypeFields_array[$r]=array('u.rowid'=>'List:user:name','u.login'=>'Text','u.lastname'=>'Text','u.firstname'=>'Text','d.type'=>"Text",'d.km'=>"Number",'d.dated'=>"Date",'d.note_private'=>'Text','d.note_public'=>'Text','s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text'); + $this->export_TypeFields_array[$r]=array('u.rowid'=>'List:user:name','u.login'=>'Text','u.lastname'=>'Text','u.firstname'=>'Text','d.type'=>"Text",'d.km'=>"Numeric",'d.dated'=>"Date",'d.note_private'=>'Text','d.note_public'=>'Text','s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text'); $this->export_entities_array[$r]=array('u.login'=>'user','u.lastname'=>'user','u.firstname'=>'user','d.rowid'=>"trip",'d.type'=>"trip",'d.km'=>"trip",'d.dated'=>"trip",'d.note_private'=>'trip','d.note_public'=>'trip','s.nom'=>'company'); $this->export_dependencies_array[$r]=array('trip'=>'d.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them diff --git a/htdocs/core/modules/modExpedition.class.php b/htdocs/core/modules/modExpedition.class.php index 6e019849ae2..55776f38fd8 100644 --- a/htdocs/core/modules/modExpedition.class.php +++ b/htdocs/core/modules/modExpedition.class.php @@ -218,8 +218,8 @@ class modExpedition extends DolibarrModules $this->export_label[$r]='Shipments'; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("expedition","shipment","export")); $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','co.label'=>'Country','co.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','c.rowid'=>"Id",'c.ref'=>"Ref",'c.ref_customer'=>"RefCustomer",'c.fk_soc'=>"IdCompany",'c.date_creation'=>"DateCreation",'c.date_delivery'=>"DateSending",'c.tracking_number'=>"TrackingNumber",'c.height'=>"Height",'c.width'=>"Width",'c.size'=>"Depth",'c.size_units'=>'SizeUnits','c.weight'=>"Weight",'c.weight_units'=>"WeightUnits",'c.fk_statut'=>'Status','c.note_public'=>"NotePublic",'ed.rowid'=>'LineId','cd.description'=>'Description','ed.qty'=>"Qty",'p.rowid'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel'); - //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Number",'c.remise_percent'=>"Number",'c.total_ht'=>"Number",'c.total_ttc'=>"Number",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','ed.qty'=>"Text"); - $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_customer'=>"Text",'c.date_creation'=>"Date",'c.date_delivery'=>"Date",'c.tracking_number'=>"Number",'c.height'=>"Number",'c.width'=>"Number",'c.weight'=>"Number",'c.fk_statut'=>'Status','c.note_public'=>"Text",'ed.qty'=>"Number"); + //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Numeric",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total_ttc'=>"Numeric",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','ed.qty'=>"Text"); + $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_customer'=>"Text",'c.date_creation'=>"Date",'c.date_delivery'=>"Date",'c.tracking_number'=>"Numeric",'c.height'=>"Numeric",'c.width'=>"Numeric",'c.weight'=>"Numeric",'c.fk_statut'=>'Status','c.note_public'=>"Text",'ed.qty'=>"Numeric"); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company','s.phone'=>'company','s.siren'=>'company','s.ape'=>'company','s.siret'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','c.rowid'=>"shipment",'c.ref'=>"shipment",'c.ref_customer'=>"shipment",'c.fk_soc'=>"shipment",'c.date_creation'=>"shipment",'c.date_delivery'=>"shipment",'c.tracking_number'=>'shipment','c.height'=>"shipment",'c.width'=>"shipment",'c.size'=>'shipment','c.size_units'=>'shipment','c.weight'=>"shipment",'c.weight_units'=>'shipment','c.fk_statut'=>"shipment",'c.note_public'=>"shipment",'ed.rowid'=>'shipment_line','cd.description'=>'shipment_line','ed.qty'=>"shipment_line",'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product'); $this->export_dependencies_array[$r]=array('shipment_line'=>'ed.rowid','product'=>'ed.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them diff --git a/htdocs/core/modules/modFacture.class.php b/htdocs/core/modules/modFacture.class.php index e00e271d03c..d6c34e511f7 100644 --- a/htdocs/core/modules/modFacture.class.php +++ b/htdocs/core/modules/modFacture.class.php @@ -242,8 +242,8 @@ class modFacture extends DolibarrModules $this->export_icon[$r]='bill'; $this->export_permission[$r]=array(array("facture","facture","export")); $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.date_lim_reglement'=>"DateDue",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note_private'=>"NotePrivate",'f.note_public'=>"NotePublic",'f.fk_user_author'=>'CreatedById','uc.login'=>'CreatedByLogin','f.fk_user_valid'=>'ValidatedById','uv.login'=>'ValidatedByLogin','p.rowid'=>'PaymentId','pf.amount'=>'AmountPayment','p.datep'=>'DatePayment','p.num_paiement'=>'PaymentNumber','pt.code'=>'PaymentMode','p.fk_bank'=>'IdTransaction'); - //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.rowid'=>"List:facture:facnumber",'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Number",'f.total_ttc'=>"Number",'f.tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'pf.amount'=>'Number','p.datep'=>'Date','p.num_paiement'=>'Number','p.fk_bank'=>'Number'); - $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.rowid'=>"List:facture:facnumber",'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Number",'f.total_ttc'=>"Number",'f.tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'pf.amount'=>'Number','p.datep'=>'Date','p.num_paiement'=>'Number','p.fk_bank'=>'Number'); + //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.rowid'=>"List:facture:facnumber",'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'pf.amount'=>'Numeric','p.datep'=>'Date','p.num_paiement'=>'Numeric','p.fk_bank'=>'Numeric'); + $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.rowid'=>"List:facture:facnumber",'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'pf.amount'=>'Numeric','p.datep'=>'Date','p.num_paiement'=>'Numeric','p.fk_bank'=>'Numeric'); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.date_lim_reglement'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_private'=>"invoice",'f.note_public'=>"invoice",'p.rowid'=>'payment','pf.amount'=>'payment','p.datep'=>'payment','p.num_paiement'=>'payment','pt.code'=>'payment','p.fk_bank'=>'payment','f.fk_user_author'=>'user','uc.login'=>'user','f.fk_user_valid'=>'user','uv.login'=>'user'); $this->export_dependencies_array[$r]=array('payment'=>'p.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them // Add extra fields diff --git a/htdocs/core/modules/modFournisseur.class.php b/htdocs/core/modules/modFournisseur.class.php index 0db347f0df2..b4cea361a82 100644 --- a/htdocs/core/modules/modFournisseur.class.php +++ b/htdocs/core/modules/modFournisseur.class.php @@ -281,8 +281,8 @@ class modFournisseur extends DolibarrModules $this->export_permission[$r]=array(array("fournisseur","facture","export")); $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.ref_supplier'=>"RefSupplier",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note_public'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.remise_percent'=>"Discount",'fd.total_ht'=>"LineTotalHT",'fd.total_ttc'=>"LineTotalTTC",'fd.tva'=>"LineTotalVAT",'fd.product_type'=>'TypeOfLineServiceOrProduct','fd.fk_product'=>'ProductId', 'p.ref'=>'ProductRef','p.label'=>'ProductLabel','p.accountancy_code_buy'=>'ProductAccountancyBuyCode','project.rowid'=>'ProjectId','project.ref'=>'ProjectRef','project.title'=>'ProjectLabel'); - //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Text",'fd.qty'=>"Number",'fd.total_ht'=>"Number",'fd.total_ttc'=>"Number",'fd.tva'=>"Number",'fd.product_type'=>'Number','fd.fk_product'=>'List:product:label','p.ref'=>'Text','p.label'=>'Text'); - $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Text",'fd.qty'=>"Number",'fd.total_ht'=>"Number",'fd.total_ttc'=>"Number",'fd.tva'=>"Number",'fd.product_type'=>'Number','fd.fk_product'=>'List:product:label', + //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Numeric",'f.total_ttc'=>"Numeric",'f.total_tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Text",'fd.qty'=>"Numeric",'fd.total_ht'=>"Numeric",'fd.total_ttc'=>"Numeric",'fd.tva'=>"Numeric",'fd.product_type'=>'Numeric','fd.fk_product'=>'List:product:label','p.ref'=>'Text','p.label'=>'Text'); + $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Numeric",'f.total_ttc'=>"Numeric",'f.total_tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Text",'fd.qty'=>"Numeric",'fd.total_ht'=>"Numeric",'fd.total_ttc'=>"Numeric",'fd.tva'=>"Numeric",'fd.product_type'=>'Numeric','fd.fk_product'=>'List:product:label', 'p.ref'=>'Text','p.label'=>'Text','project.ref'=>'Text','project.title'=>'Text'); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.ref'=>"invoice",'f.ref_supplier'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_public'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.remise_percent'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva'=>"invoice_line",'fd.product_type'=>'invoice_line','fd.fk_product'=>'product', 'p.ref'=>'product','p.label'=>'product','p.accountancy_code_buy'=>'product','project.rowid'=>'project','project.ref'=>'project','project.title'=>'project'); @@ -380,9 +380,9 @@ class modFournisseur extends DolibarrModules $this->export_permission[$r]=array(array("fournisseur","facture","export")); $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.ref_supplier'=>"RefSupplier",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note_public'=>"InvoiceNote",'p.rowid'=>'PaymentId','pf.amount'=>'AmountPayment', 'p.datep'=>'DatePayment','p.num_paiement'=>'PaymentNumber','project.rowid'=>'ProjectId','project.ref'=>'ProjectRef','project.title'=>'ProjectLabel'); - //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'pf.amount'=>'Number','p.datep'=>'Date','p.num_paiement'=>'Number'); - $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'pf.amount'=>'Number', - 'p.datep'=>'Date','p.num_paiement'=>'Number','project.ref'=>'Text','project.title'=>'Text'); + //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Numeric",'f.total_ttc'=>"Numeric",'f.total_tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'pf.amount'=>'Numeric','p.datep'=>'Date','p.num_paiement'=>'Numeric'); + $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Numeric",'f.total_ttc'=>"Numeric",'f.total_tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'pf.amount'=>'Numeric', + 'p.datep'=>'Date','p.num_paiement'=>'Numeric','project.ref'=>'Text','project.title'=>'Text'); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.ref'=>"invoice",'f.ref_supplier'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_public'=>"invoice",'p.rowid'=>'payment','pf.amount'=>'payment', 'p.datep'=>'payment','p.num_paiement'=>'payment','project.rowid'=>'project','project.ref'=>'project','project.title'=>'project'); $this->export_dependencies_array[$r]=array('payment'=>'p.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them @@ -447,7 +447,7 @@ class modFournisseur extends DolibarrModules unset($this->export_fields_array['f.date_approve2']); unset($this->export_fields_array['ua2.login']); } - $this->export_TypeFields_array[$r]=array('s.rowid'=>"company",'s.nom'=>'Text','s.address'=>'Text','s.cp'=>'Text','s.ville'=>'Text','c.code'=>'Text','s.tel'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.idprof5'=>'Text','s.idprof6'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.date_creation'=>"Date",'f.date_commande'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.tva'=>"Number",'f.fk_statut'=>'Status','f.date_approve'=>'Date','f.date_approve2'=>'Date','f.note_public'=>"Text",'f.note_private'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Number",'fd.qty'=>"Number",'fd.remise_percent'=>"Number",'fd.total_ht'=>"Number",'fd.total_ttc'=>"Number",'fd.total_tva'=>"Number",'fd.product_type'=>'Number','fd.fk_product'=>'List:product:label', + $this->export_TypeFields_array[$r]=array('s.rowid'=>"company",'s.nom'=>'Text','s.address'=>'Text','s.cp'=>'Text','s.ville'=>'Text','c.code'=>'Text','s.tel'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.idprof5'=>'Text','s.idprof6'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.date_creation'=>"Date",'f.date_commande'=>"Date",'f.total_ht'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.fk_statut'=>'Status','f.date_approve'=>'Date','f.date_approve2'=>'Date','f.note_public'=>"Text",'f.note_private'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Numeric",'fd.qty'=>"Numeric",'fd.remise_percent'=>"Numeric",'fd.total_ht'=>"Numeric",'fd.total_ttc'=>"Numeric",'fd.total_tva'=>"Numeric",'fd.product_type'=>'Numeric','fd.fk_product'=>'List:product:label', 'p.ref'=>'Text','p.label'=>'Text','project.ref'=>'Text','project.title'=>'Text'); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','ua1.login'=>'user','ua2.login'=>'user','fd.rowid'=>'order_line','fd.description'=>"order_line",'fd.tva_tx'=>"order_line",'fd.qty'=>"order_line",'fd.remise_percent'=>"order_line",'fd.total_ht'=>"order_line",'fd.total_ttc'=>"order_line",'fd.total_tva'=>"order_line",'fd.product_type'=>'order_line','fd.fk_product'=>'product', 'p.ref'=>'product','p.label'=>'product','project.rowid'=>'project','project.ref'=>'project','project.title'=>'project'); diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index d8c967b4f28..a466c004d4a 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -157,10 +157,10 @@ class modProduct extends DolibarrModules if (! empty($conf->stock->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.stock'=>'Stock','p.pmp'=>'PMPValue')); if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.barcode'=>'BarCode')); if (! empty($conf->fournisseur->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('s.nom'=>'Supplier','pf.ref_fourn'=>'SupplierRef','pf.unitprice'=>'SuppliersPrices')); - $this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Number",'p.surface'=>"Number",'p.volume'=>"Number",'p.weight'=>"Number",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Number",'p.price_ttc'=>"Number",'p.tva_tx'=>'Number','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date'); - if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.pmp'=>'Number')); + $this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date'); + if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.pmp'=>'Numeric')); if (! empty($conf->barcode->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.barcode'=>'Text')); - if (! empty($conf->fournisseur->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('s.nom'=>'Text','pf.ref_fourn'=>'Text','pf.unitprice'=>'Number')); + if (! empty($conf->fournisseur->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('s.nom'=>'Text','pf.ref_fourn'=>'Text','pf.unitprice'=>'Numeric')); $this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product",'p.label'=>"product",'p.description'=>"product",'p.url'=>"product",'p.accountancy_code_sell'=>'product','p.accountancy_code_sell'=>'product','p.note'=>"product",'p.length'=>"product",'p.surface'=>"product",'p.volume'=>"product",'p.weight'=>"product",'p.customcode'=>'product','p.price_base_type'=>"product",'p.price'=>"product",'p.price_ttc'=>"product",'p.tva_tx'=>"product",'p.tosell'=>"product",'p.tobuy'=>"product",'p.datec'=>"product",'p.tms'=>"product"); if (! empty($conf->stock->enabled)) $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r],array('p.stock'=>'product','p.pmp'=>'product')); if (! empty($conf->barcode->enabled)) $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r],array('p.barcode'=>'product')); @@ -222,7 +222,7 @@ class modProduct extends DolibarrModules 'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC", 'pr.tva_tx'=>'PriceLevelVATRate', 'pr.date_price'=>'DateCreation'); - //$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Number",'p.surface'=>"Number",'p.volume'=>"Number",'p.weight'=>"Number",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Number",'p.price_ttc'=>"Number",'p.tva_tx'=>'Number','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date'); + //$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date'); $this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product", 'pr.price_base_type'=>"product",'pr.price_level'=>"product",'pr.price'=>"product", 'pr.price_ttc'=>"product", diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php index ca66e861862..a4faa746c8e 100644 --- a/htdocs/core/modules/modProjet.class.php +++ b/htdocs/core/modules/modProjet.class.php @@ -193,7 +193,7 @@ class modProjet extends DolibarrModules $this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','s.fk_pays'=>'List:c_country:label', 's.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text', 'p.rowid'=>"List:projet:ref",'p.ref'=>"Text",'p.datec'=>"Date",'p.dateo'=>"Date",'p.datee'=>"Date",'p.fk_statut'=>'Status','p.description'=>"Text", - 'pt.dateo'=>"Date",'pt.datee'=>"Date",'pt.duration_effective'=>"Duree",'pt.planned_workload'=>"Number",'pt.progress'=>"Number",'pt.description'=>"Text", + 'pt.dateo'=>"Date",'pt.datee'=>"Date",'pt.duration_effective'=>"Duree",'pt.planned_workload'=>"Numeric",'pt.progress'=>"Numeric",'pt.description'=>"Text", 'ptt.task_date'=>'Date','ptt.task_duration'=>"Duree",'ptt.fk_user'=>"List:user:CONCAT(lastname,' ',firstname)",'ptt.note'=>"Text"); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company', diff --git a/htdocs/core/modules/modSalaries.class.php b/htdocs/core/modules/modSalaries.class.php index b4e349d7560..30bde8231a0 100644 --- a/htdocs/core/modules/modSalaries.class.php +++ b/htdocs/core/modules/modSalaries.class.php @@ -138,7 +138,7 @@ class modSalaries extends DolibarrModules $this->export_label[$r]='Salaries and payments'; $this->export_permission[$r]=array(array("salaries","export")); $this->export_fields_array[$r]=array('u.firstname'=>"Firstname",'u.lastname'=>"Lastname",'u.login'=>"Login",'u.salary'=>'CurrentSalary','p.datep'=>'DatePayment','p.datesp'=>'DateStartPeriod','p.dateep'=>'DateEndPeriod','p.amount'=>'AmountPayment','p.num_payment'=>'Numero','p.label'=>'Label','p.note'=>'Note'); - $this->export_TypeFields_array[$r]=array('u.firstname'=>"Text",'u.lastname'=>"Text",'u.login'=>'Text','u.salary'=>"Number",'p.datep'=>'Date','p.datesp'=>'Date','p.dateep'=>'Date','p.amount'=>'Number','p.num_payment'=>'Number','p.label'=>'Text'); + $this->export_TypeFields_array[$r]=array('u.firstname'=>"Text",'u.lastname'=>"Text",'u.login'=>'Text','u.salary'=>"Numeric",'p.datep'=>'Date','p.datesp'=>'Date','p.dateep'=>'Date','p.amount'=>'Numeric','p.num_payment'=>'Numeric','p.label'=>'Text'); $this->export_entities_array[$r]=array('u.firstname'=>'user','u.lastname'=>'user','u.login'=>'user','u.salary'=>'user','p.datep'=>'payment','p.datesp'=>'payment','p.dateep'=>'payment','p.amount'=>'payment','p.label'=>'payment','p.note'=>'payment','p.num_payment'=>'payment'); $this->export_sql_start[$r]='SELECT DISTINCT '; diff --git a/htdocs/core/modules/modService.class.php b/htdocs/core/modules/modService.class.php index 85ab2b03e7d..14f39535849 100644 --- a/htdocs/core/modules/modService.class.php +++ b/htdocs/core/modules/modService.class.php @@ -139,9 +139,9 @@ class modService extends DolibarrModules $this->export_permission[$r]=array(array("service","export")); $this->export_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label",'p.description'=>"Description",'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC",'p.tva_tx'=>'VATRate','p.tosell'=>"OnSell",'p.tobuy'=>"OnBuy",'p.duration'=>"Duration",'p.datec'=>'DateCreation','p.tms'=>'DateModification'); if (! empty($conf->stock->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.stock'=>'Stock')); - //$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.price_base_type'=>"Text",'p.price'=>"Number",'p.price_ttc'=>"Number",'p.tva_tx'=>'Number','p.tosell'=>"Boolean",'p.duration'=>"Duree",'p.datec'=>'Date','p.tms'=>'Date'); - $this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.price_base_type'=>"Text",'p.price'=>"Number",'p.price_ttc'=>"Number",'p.tva_tx'=>'Number','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.duration'=>"Duree",'p.datec'=>'Date','p.tms'=>'Date'); - if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.stock'=>'Number')); + //$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.duration'=>"Duree",'p.datec'=>'Date','p.tms'=>'Date'); + $this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.duration'=>"Duree",'p.datec'=>'Date','p.tms'=>'Date'); + if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.stock'=>'Numeric')); if (! empty($conf->barcode->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.barcode'=>'Text')); $this->export_entities_array[$r]=array('p.rowid'=>"service",'p.ref'=>"service",'p.label'=>"service",'p.description'=>"service",'p.accountancy_code_sell'=>'service','p.note'=>"service",'p.price_base_type'=>"service",'p.price'=>"service",'p.price_ttc'=>"service",'p.tva_tx'=>"service",'p.tosell'=>"service",'p.tobuy'=>"service",'p.duration'=>"service",'p.datec'=>"service",'p.tms'=>"service"); if (! empty($conf->stock->enabled)) $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r],array('p.stock'=>'service')); @@ -206,7 +206,7 @@ class modService extends DolibarrModules 'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC", 'pr.tva_tx'=>'PriceLevelVATRate', 'pr.date_price'=>'DateCreation'); - //$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Number",'p.surface'=>"Number",'p.volume'=>"Number",'p.weight'=>"Number",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Number",'p.price_ttc'=>"Number",'p.tva_tx'=>'Number','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date'); + //$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date'); $this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product", 'pr.price_base_type'=>"product",'pr.price_level'=>"product",'pr.price'=>"product", 'pr.price_ttc'=>"product", diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index e5b29043a30..fb8623695e6 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -266,10 +266,11 @@ class modSociete extends DolibarrModules $this->export_permission[$r]=array(array("societe","export")); $this->export_fields_array[$r]=array('s.rowid'=>"Id",'s.nom'=>"Name",'s.status'=>"Status",'s.client'=>"Customer",'s.fournisseur'=>"Supplier",'s.datec'=>"DateCreation",'s.tms'=>"DateLastModification",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode",'s.code_compta'=>"AccountancyCode",'s.code_compta_fournisseur'=>"SupplierAccountancyCode",'s.address'=>"Address",'s.zip'=>"Zip",'s.town'=>"Town",'c.label'=>"Country",'c.code'=>"CountryCode",'s.phone'=>"Phone",'s.fax'=>"Fax",'s.url'=>"Url",'s.email'=>"Email",'s.default_lang'=>"DefaultLang",'s.siren'=>"ProfId1",'s.siret'=>"ProfId2",'s.ape'=>"ProfId3",'s.idprof4'=>"ProfId4",'s.idprof5'=>"ProfId5",'s.idprof6'=>"ProfId6",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note_private'=>"NotePrivate",'s.note_public'=>"NotePublic",'t.libelle'=>"ThirdPartyType",'ce.code'=>"Staff","cfj.libelle"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel','st.code'=>'ProspectStatus','d.nom'=>'State'); if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; - //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Text",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.address'=>"Text",'s.zip'=>"Text",'s.town'=>"Text",'c.label'=>"List:c_country:label:label",'c.code'=>"Text",'s.phone'=>"Text",'s.fax'=>"Text",'s.url'=>"Text",'s.email'=>"Text",'s.default_lang'=>"Text",'s.siret'=>"Text",'s.siren'=>"Text",'s.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",'s.tva_intra'=>"Text",'s.capital'=>"Number",'s.note'=>"Text",'t.libelle'=>"Text",'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code','s.fk_stcomm'=>'List:c_stcomm:libelle:code','d.nom'=>'List:c_departements:nom:rowid'); - $this->export_TypeFields_array[$r]=array('s.nom'=>"Text",'s.status'=>"Number",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.code_compta'=>"Text",'s.code_compta_fournisseur'=>"Text",'s.address'=>"Text",'s.zip'=>"Text",'s.town'=>"Text",'c.label'=>"List:c_country:label:label",'c.code'=>"Text",'s.phone'=>"Text",'s.fax'=>"Text",'s.url'=>"Text",'s.email'=>"Text",'s.default_lang'=>"Text",'s.siret'=>"Text",'s.siren'=>"Text",'s.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",'s.tva_intra'=>"Text",'s.capital'=>"Number",'s.note_private'=>"Text",'s.note_public'=>"Text",'t.libelle'=>"Text",'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code','st.code'=>'List:c_stcomm:libelle:code','d.nom'=>'Text'); + //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Text",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.address'=>"Text",'s.zip'=>"Text",'s.town'=>"Text",'c.label'=>"List:c_country:label:label",'c.code'=>"Text",'s.phone'=>"Text",'s.fax'=>"Text",'s.url'=>"Text",'s.email'=>"Text",'s.default_lang'=>"Text",'s.siret'=>"Text",'s.siren'=>"Text",'s.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",'s.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note'=>"Text",'t.libelle'=>"Text",'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code','s.fk_stcomm'=>'List:c_stcomm:libelle:code','d.nom'=>'List:c_departements:nom:rowid'); + $this->export_TypeFields_array[$r]=array('s.nom'=>"Text",'s.status'=>"Numeric",'s.client'=>"Numeric",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.code_compta'=>"Text",'s.code_compta_fournisseur'=>"Text",'s.address'=>"Text",'s.zip'=>"Text",'s.town'=>"Text",'c.label'=>"List:c_country:label:label",'c.code'=>"Text",'s.phone'=>"Text",'s.fax'=>"Text",'s.url'=>"Text",'s.email'=>"Text",'s.default_lang'=>"Text",'s.siret'=>"Text",'s.siren'=>"Text",'s.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",'s.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note_private'=>"Text",'s.note_public'=>"Text",'t.libelle'=>"Text",'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code','st.code'=>'List:c_stcomm:libelle:code','d.nom'=>'Text'); $this->export_entities_array[$r]=array(); // We define here only fields that use another picto - // Add extra fields + $this->export_examplevalues_array[$r]=array('s.client'=>'0 (no customer no prospect)/1 (customer)/2 (prospect)/3 (customer and prospect)','s.fournisseur'=>'0 (not a supplier) or 1 (supplier)'); + // Add extra fields $sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'societe'"; $resql=$this->db->query($sql); if ($resql) // This can fail when class is used on old database (during migration for example) diff --git a/htdocs/core/modules/modStock.class.php b/htdocs/core/modules/modStock.class.php index 2b8e983372e..1d39ed6caf7 100644 --- a/htdocs/core/modules/modStock.class.php +++ b/htdocs/core/modules/modStock.class.php @@ -123,7 +123,7 @@ class modStock extends DolibarrModules $this->export_label[$r]="WarehousesAndProducts"; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("stock","lire")); $this->export_fields_array[$r]=array('e.rowid'=>'IdWarehouse','e.label'=>'LocationSummary','e.description'=>'DescWareHouse','e.lieu'=>'LieuWareHouse','e.address'=>'Address','e.zip'=>'Zip','e.town'=>'Town','p.rowid'=>"ProductId",'p.ref'=>"Ref",'p.fk_product_type'=>"Type",'p.label'=>"Label",'p.description'=>"Description",'p.note'=>"Note",'p.price'=>"Price",'p.tva_tx'=>'VAT','p.tosell'=>"OnSell",'p.duration'=>"Duration",'p.datec'=>'DateCreation','p.tms'=>'DateModification','ps.reel'=>'Stock'); - $this->export_TypeFields_array[$r]=array('e.rowid'=>'List:entrepot:label','e.label'=>'Text','e.lieu'=>'Text','e.address'=>'Text','e.zip'=>'Text','e.town'=>'Text','p.rowid'=>"List:product:label",'p.ref'=>"Text",'p.fk_product_type'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.note'=>"Text",'p.price'=>"Number",'p.tva_tx'=>'Number','p.tosell'=>"Boolean",'p.duration'=>"Duree",'p.datec'=>'Date','p.tms'=>'Date','ps.reel'=>'Number'); + $this->export_TypeFields_array[$r]=array('e.rowid'=>'List:entrepot:label','e.label'=>'Text','e.lieu'=>'Text','e.address'=>'Text','e.zip'=>'Text','e.town'=>'Text','p.rowid'=>"List:product:label",'p.ref'=>"Text",'p.fk_product_type'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.note'=>"Text",'p.price'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.duration'=>"Duree",'p.datec'=>'Date','p.tms'=>'Date','ps.reel'=>'Numeric'); $this->export_entities_array[$r]=array('e.rowid'=>'warehouse','e.label'=>'warehouse','e.description'=>'warehouse','e.lieu'=>'warehouse','e.address'=>'warehouse','e.zip'=>'warehouse','e.town'=>'warehouse','p.rowid'=>"product",'p.ref'=>"product",'p.fk_product_type'=>"product",'p.label'=>"product",'p.description'=>"product",'p.note'=>"product",'p.price'=>"product",'p.tva_tx'=>'product','p.tosell'=>"product",'p.duration'=>"product",'p.datec'=>'product','p.tms'=>'product','ps.reel'=>'stock'); $this->export_aggregate_array[$r]=array('ps.reel'=>'SUM'); // TODO Not used yet $this->export_dependencies_array[$r]=array('stock'=>array('p.rowid','e.rowid')); // We must keep this until the aggregate_array is used. To add unique key if we ask a field of a child to avoid the DISTINCT to discard them. @@ -143,7 +143,7 @@ class modStock extends DolibarrModules $this->export_label[$r]="WarehousesAndProductsBatchDetail"; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("stock","lire")); $this->export_fields_array[$r]=array('e.rowid'=>'IdWarehouse','e.label'=>'LocationSummary','e.description'=>'DescWareHouse','e.lieu'=>'LieuWareHouse','e.address'=>'Address','e.zip'=>'Zip','e.town'=>'Town','p.rowid'=>"ProductId",'p.ref'=>"Ref",'p.fk_product_type'=>"Type",'p.label'=>"Label",'p.description'=>"Description",'p.note'=>"Note",'p.price'=>"Price",'p.tva_tx'=>'VAT','p.tosell'=>"OnSell",'p.duration'=>"Duration",'p.datec'=>'DateCreation','p.tms'=>'DateModification','pb.rowid'=>'Id','pb.batch'=>'Batch','pb.eatby'=>'l_eatby','pb.sellby'=>'l_sellby','pb.qty'=>'Qty'); - $this->export_TypeFields_array[$r]=array('e.rowid'=>'List:entrepot:label','e.label'=>'Text','e.lieu'=>'Text','e.address'=>'Text','e.zip'=>'Text','e.town'=>'Text','p.rowid'=>"List:product:label",'p.ref'=>"Text",'p.fk_product_type'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.note'=>"Text",'p.price'=>"Number",'p.tva_tx'=>'Number','p.tosell'=>"Boolean",'p.duration'=>"Duree",'p.datec'=>'Date','p.tms'=>'Date','pb.batch'=>'Text','pb.eatby'=>'Date','pb.sellby'=>'Date','pb.qty'=>'Number'); + $this->export_TypeFields_array[$r]=array('e.rowid'=>'List:entrepot:label','e.label'=>'Text','e.lieu'=>'Text','e.address'=>'Text','e.zip'=>'Text','e.town'=>'Text','p.rowid'=>"List:product:label",'p.ref'=>"Text",'p.fk_product_type'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.note'=>"Text",'p.price'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.duration'=>"Duree",'p.datec'=>'Date','p.tms'=>'Date','pb.batch'=>'Text','pb.eatby'=>'Date','pb.sellby'=>'Date','pb.qty'=>'Numeric'); $this->export_entities_array[$r]=array('e.rowid'=>'warehouse','e.label'=>'warehouse','e.description'=>'warehouse','e.lieu'=>'warehouse','e.address'=>'warehouse','e.zip'=>'warehouse','e.town'=>'warehouse','p.rowid'=>"product",'p.ref'=>"product",'p.fk_product_type'=>"product",'p.label'=>"product",'p.description'=>"product",'p.note'=>"product",'p.price'=>"product",'p.tva_tx'=>'product','p.tosell'=>"product",'p.duration'=>"product",'p.datec'=>'product','p.tms'=>'product','pb.rowid'=>'batch','pb.batch'=>'batch','pb.eatby'=>'batch','pb.sellby'=>'batch','pb.qty'=>'batch'); $this->export_aggregate_array[$r]=array('ps.reel'=>'SUM'); // TODO Not used yet $this->export_dependencies_array[$r]=array('batch'=>array('pb.rowid')); // We must keep this until the aggregate_array is used. To add unique key if we ask a field of a child to avoid the DISTINCT to discard them. diff --git a/htdocs/core/modules/modTax.class.php b/htdocs/core/modules/modTax.class.php index 9e8ee7908d7..0c9b44bfcbd 100644 --- a/htdocs/core/modules/modTax.class.php +++ b/htdocs/core/modules/modTax.class.php @@ -126,7 +126,7 @@ class modTax extends DolibarrModules $this->export_label[$r]='Taxes et charges sociales, et leurs reglements'; $this->export_permission[$r]=array(array("tax","charges","export")); $this->export_fields_array[$r]=array('cc.libelle'=>"Type",'c.rowid'=>"IdSocialContribution",'c.libelle'=>"Label",'c.date_ech'=>'DateDue','c.periode'=>'Period','c.amount'=>"AmountExpected","c.paye"=>"Status",'p.rowid'=>'PaymentId','p.datep'=>'DatePayment','p.amount'=>'AmountPayment','p.num_paiement'=>'Numero'); - $this->export_TypeFields_array[$r]=array('cc.libelle'=>"List:c_chargesociales:libelle:id",'c.libelle'=>"Text",'c.date_ech'=>'Date','c.periode'=>'Period','c.amount'=>"Number","c.paye"=>"Boolean",'p.datep'=>'Date','p.amount'=>'Number','p.num_paiement'=>'Number'); + $this->export_TypeFields_array[$r]=array('cc.libelle'=>"List:c_chargesociales:libelle:id",'c.libelle'=>"Text",'c.date_ech'=>'Date','c.periode'=>'Period','c.amount'=>"Numeric","c.paye"=>"Boolean",'p.datep'=>'Date','p.amount'=>'Numeric','p.num_paiement'=>'Numeric'); $this->export_entities_array[$r]=array('cc.libelle'=>"tax_type",'c.rowid'=>"tax",'c.libelle'=>'tax','c.date_ech'=>'tax','c.periode'=>'tax','c.amount'=>"tax","c.paye"=>"tax",'p.rowid'=>'payment','p.datep'=>'payment','p.amount'=>'payment','p.num_paiement'=>'payment'); $this->export_sql_start[$r]='SELECT DISTINCT '; diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index ebfe3d31085..5602829a908 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -233,11 +233,11 @@ class Export } $sql.=$this->array_export_sql_end[$indice]; - //construction du filtrage si le parametrage existe + // Add the filtering into sql if a filtering array is provided if (is_array($array_filterValue) && !empty($array_filterValue)) { $sqlWhere=''; - // pour ne pas a gerer le nombre de condition + // Loop on each condition to add foreach ($array_filterValue as $key => $value) { if ($value != '') $sqlWhere.=" and ".$this->build_filterQuery($this->array_export_TypeFields[$indice][$key], $key, $array_filterValue[$key]); @@ -314,6 +314,8 @@ class Export else $szFilterQuery=" ".$NameField."='".$ValueField."'"; break; + default: + dol_syslog("Error we try to forge an sql export request with a condition on a field with type '".$InfoFieldList[0]."' (defined into module descriptor) but this type is unknown/not supported. It looks like a bug into module descriptor.", LOG_ERROR); } return $szFilterQuery; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index e37eadc76f6..7522a09bbf5 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -244,6 +244,7 @@ if ($action == 'builddoc') if ($result < 0) { setEventMessage($objexport->error, 'errors'); + $sqlusedforexport=$objexport->sqlusedforexport; } else { @@ -363,7 +364,6 @@ if ($step == 4 && $action == 'submitFormField') if (is_array($objexport->array_export_TypeFields[0])) { $_SESSION["export_filtered_fields"]=array(); - //var_dump($_POST); foreach($objexport->array_export_TypeFields[0] as $code => $type) // $code: s.fieldname $value: Text|Boolean|List:ccc { $newcode=(string) preg_replace('/\./','_',$code); @@ -742,6 +742,10 @@ if ($step == 3 && $datatoexport) $tablename=getablenamefromfield($code,$sqlmaxforexport); $htmltext =''.$langs->trans("Name").': '.$text.'
'; $htmltext.=''.$langs->trans("Table")." -> ".$langs->trans("Field").": ".$tablename." -> ".preg_replace('/^.*\./','',$code)."
"; + if (! empty($objexport->array_export_examplevalues[0][$code])) + { + $htmltext.=$langs->trans("SourceExample").': '.$objexport->array_export_examplevalues[0][$code].'
'; + } print '
'; print $form->textwithpicto($text,$htmltext); print '
'; // Ref -print ''; +print ''; // Date payment -print ''; // Payment type (VIR, LIQ, ...) $labeltype=$langs->trans("PaymentType".$object->type_code)!=("PaymentType".$object->type_code)?$langs->trans("PaymentType".$object->type_code):$object->type_libelle; -print ''; +print ''; // Payment numero -print ''; // Amount -print ''; +print ''; // Note -print ''; @@ -250,7 +250,8 @@ if (! empty($conf->banque->enabled)) print ''; print ''; - if($object->type_code == 'CHQ' && $bankline->fk_bordereau > 0) { + if ($object->type_code == 'CHQ' && $bankline->fk_bordereau > 0) + { dol_include_once('/compta/paiement/cheque/class/remisecheque.class.php'); $bordereau = new RemiseCheque($db); $bordereau->fetch($bankline->fk_bordereau); diff --git a/htdocs/compta/paiement/cheque/card.php b/htdocs/compta/paiement/cheque/card.php index e53aec7bfea..0b7b3ed0c57 100644 --- a/htdocs/compta/paiement/cheque/card.php +++ b/htdocs/compta/paiement/cheque/card.php @@ -227,16 +227,18 @@ if ($action == 'confirm_reject_check' && $confirm == 'yes' && $user->rights->ban $rejected_check = GETPOST('bankid'); $object->fetch($id); - $paiement_id = $object->reject_check($rejected_check, $reject_date); + $paiement_id = $object->rejectCheck($rejected_check, $reject_date); if ($paiement_id > 0) { setEventMessage($langs->trans("CheckRejectedAndInvoicesReopened")); - header("Location: ".DOL_URL_ROOT.'/compta/paiement/card.php?id='.$paiement_id); - exit; + //header("Location: ".DOL_URL_ROOT.'/compta/paiement/card.php?id='.$paiement_id); + //exit; + $action=''; } else { - setEventMessage($object->error, 'errors'); + setEventMessages($object->error, $object->errors, 'errors'); + $action=''; } } @@ -367,6 +369,9 @@ $accounts = array(); if ($action == 'new') { + $paymentstatic=new Paiement($db); + $accountlinestatic=new AccountLine($db); + $lines = array(); $now=dol_now(); @@ -402,9 +407,11 @@ if ($action == 'new') print ''; print '
'; - $sql = "SELECT ba.rowid as bid, b.datec as datec, b.dateo as date, b.rowid as chqid, "; - $sql.= " b.amount, ba.label, b.emetteur, b.num_chq, b.banque"; + $sql = "SELECT ba.rowid as bid, b.datec as datec, b.dateo as date, b.rowid as transactionid, "; + $sql.= " b.amount, ba.label, b.emetteur, b.num_chq, b.banque,"; + $sql.= " p.rowid as paymentid"; $sql.= " FROM ".MAIN_DB_PREFIX."bank as b"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement as p ON p.fk_bank = b.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_account as ba ON (b.fk_account = ba.rowid)"; $sql.= " WHERE b.fk_type = 'CHQ'"; $sql.= " AND ba.entity IN (".getEntity('bank_account', 1).")"; @@ -426,7 +433,8 @@ if ($action == 'new') $lines[$obj->bid][$i]["emetteur"] = $obj->emetteur; $lines[$obj->bid][$i]["numero"] = $obj->num_chq; $lines[$obj->bid][$i]["banque"] = $obj->banque; - $lines[$obj->bid][$i]["id"] = $obj->chqid; + $lines[$obj->bid][$i]["id"] = $obj->transactionid; + $lines[$obj->bid][$i]["paymentid"] = $obj->paymentid; $i++; } @@ -469,6 +477,8 @@ if ($action == 'new') print '\n"; print '\n"; print '\n"; + print '\n"; + print '\n"; print ''; @@ -491,7 +501,34 @@ if ($action == 'new') print '\n"; print '\n"; print '\n"; - print ''; + print ''; + + // Link to payment + print ''; + // Link to bank transaction + print ''; + print '' ; @@ -644,6 +681,7 @@ else print '
'.$langs->trans('Ref').''.$object->id.'
'.$langs->trans('Ref').''.$object->id.'
'.$form->editfieldkey("Date",'datep',$object->date,$object,$user->rights->facture->paiement).''; +print '
'.$form->editfieldkey("Date",'datep',$object->date,$object,$user->rights->facture->paiement).''; print $form->editfieldval("Date",'datep',$object->date,$object,$user->rights->facture->paiement,'datepicker','',null,$langs->trans('PaymentDateUpdateSucceeded')); print '
'.$langs->trans('PaymentMode').''.$labeltype.'
'.$langs->trans('PaymentMode').''.$labeltype.'
'.$form->editfieldkey("Numero",'num_paiement',$object->numero,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer).''; +print '
'.$form->editfieldkey("Numero",'num_paiement',$object->numero,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer).''; print $form->editfieldval("Numero",'num_paiement',$object->numero,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer,'string','',null,$langs->trans('PaymentNumberUpdateSucceeded')); print '
'.$langs->trans('Amount').''.price($object->montant,'',$langs,0,0,-1,$conf->currency).'
'.$langs->trans('Amount').''.price($object->montant,'',$langs,0,0,-1,$conf->currency).'
'.$form->editfieldkey("Note",'note',$object->note,$object,$user->rights->facture->paiement).''; +print '
'.$form->editfieldkey("Note",'note',$object->note,$object,$user->rights->facture->paiement).''; print $form->editfieldval("Note",'note',$object->note,$object,$user->rights->facture->paiement,'textarea'); print '
'.$langs->trans("CheckTransmitter")."'.$langs->trans("Bank")."'.$langs->trans("Amount")."'.$langs->trans("Payment")."'.$langs->trans("LineRecord")."'.$langs->trans("Select")."
"; if ($conf->use_javascript_ajax) print ''.$langs->trans("All").' / '.$langs->trans("None").''; print '
'.$value["numero"]."'.$value["emetteur"]."'.$value["banque"]."'.price($value["amount"]).''.price($value["amount"], 0, $langs, 1, -1, -1, $conf->currency).''; + $paymentstatic->id=$value["paymentid"]; + $paymentstatic->ref=$value["paymentid"]; + if ($paymentstatic->id) + { + print $paymentstatic->getNomUrl(1); + } + else + { + print ' '; + } + print ''; + $accountlinestatic->rowid=$value["id"]; + if ($accountlinestatic->rowid) + { + print $accountlinestatic->getNomUrl(1); + } + else + { + print ' '; + } + print ''; print ''; print '
'; $param="&id=".$object->id; + print ''; print_liste_field_titre($langs->trans("Cheques"),'','','','','width="30"'); print_liste_field_titre($langs->trans("DateChequeReceived"),$_SERVER["PHP_SELF"],"b.dateo,b.rowid", "",$param,'align="center"',$sortfield,$sortorder); @@ -651,8 +689,9 @@ else print_liste_field_titre($langs->trans("CheckTransmitter"),$_SERVER["PHP_SELF"],"b.emetteur", "",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Bank"),$_SERVER["PHP_SELF"],"b.banque", "",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"b.amount", "",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("LineRecord"),$_SERVER["PHP_SELF"],"b.rowid", "",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Payment"),$_SERVER["PHP_SELF"],"p.rowid", "",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("LineRecord"),$_SERVER["PHP_SELF"],"b.rowid", "",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre(''); print "\n"; $i=1; $var=false; @@ -670,17 +709,7 @@ else print ''; print ''; print ''; - print ''; + // Link to payment print ''; + // Link to bank transaction + print ''; + // Action button + print ''; + print 'rowid.'">'.img_delete().''; } - else if($objp->statut == 2) { - print ''; + if ($object->statut == 1 && $objp->statut != 2) + { + print 'rowid.'">'.img_picto($langs->trans("RejectCheck"),'disable').''; + } + if ($objp->statut == 2) + { + print '   '.img_picto($langs->trans('CheckRejected'),'statut8').''; } + print ''; print ''; $var=!$var; $i++; diff --git a/htdocs/compta/paiement/cheque/class/remisecheque.class.php b/htdocs/compta/paiement/cheque/class/remisecheque.class.php index df401f4c35d..c7fc00c9d2e 100644 --- a/htdocs/compta/paiement/cheque/class/remisecheque.class.php +++ b/htdocs/compta/paiement/cheque/class/remisecheque.class.php @@ -661,23 +661,38 @@ class RemiseCheque extends CommonObject } /** - * Check rejection management - * Reopen linked invoices and saves a new negative payment + * Check return management + * Reopen linked invoices and create a new negative payment. * - * @param int $bank_id Id of bank line concerned - * @param date $rejection_date Date to use on the negative payment - * @return int + * @param int $bank_id Id of bank transaction line concerned + * @param date $rejection_date Date to use on the negative payment + * @return int Id of negative payment line created */ - function reject_check($bank_id, $rejection_date) + function rejectCheck($bank_id, $rejection_date) { global $db, $user; $payment = new Paiement($db); $payment->fetch(0,0,$bank_id); + $bankline = new AccountLine($db); + $bankline->fetch($bank_id); + + /* Conciliation is allowed because when check is returned, a new line is created onto bank transaction log. + if ($bankline->rappro) + { + $this->error='ActionRefusedLineAlreadyConciliated'; + return -1; + }*/ + + $this->db->begin(); + + // Not conciliated, we can delete it + //$bankline->delete($user); // We delete + $bankaccount = $payment->fk_account; - // Get invoice list to reopen them + // Get invoices list to reopen them $sql = 'SELECT pf.fk_facture, pf.amount'; $sql.= ' FROM '.MAIN_DB_PREFIX.'paiement_facture as pf'; $sql.= ' WHERE pf.fk_paiement = '.$payment->id; @@ -700,27 +715,45 @@ class RemiseCheque extends CommonObject $rejectedPayment->amounts[$obj->fk_facture] = price2num($obj->amount) * -1; } - if ($rejectedPayment->create($user) > 0) + $result = $rejectedPayment->create($user); + if ($result > 0) { - $result=$rejectedPayment->addPaymentToBank($user,'payment','(CheckRejected)',$bankaccount,'',''); + // We created a negative payment, we also add the line as bank transaction + $result=$rejectedPayment->addPaymentToBank($user,'payment','(CheckRejected)',$bankaccount,'',''); if ($result > 0) { - $payment->reject(); - return $rejectedPayment->id; + $result = $payment->reject(); + if ($result > 0) + { + $this->db->commit(); + return $rejectedPayment->id; + } + else + { + $this->db->rollback(); + return -1; + } } else { + $this->error = $rejectedPayment->error; + $this->errors = $rejectedPayment->errors; + $this->db->rollback(); return -1; } } else { + $this->error = $rejectedPayment->error; + $this->errors = $rejectedPayment->errors; + $this->db->rollback(); return -1; } } else { - $this->error=$this->db->error(); + $this->error=$this->db->lasterror(); + $this->db->rollback(); return -1; } } diff --git a/htdocs/compta/paiement/cheque/list.php b/htdocs/compta/paiement/cheque/list.php index 8f1e4cbb0ef..d44aef51dce 100644 --- a/htdocs/compta/paiement/cheque/list.php +++ b/htdocs/compta/paiement/cheque/list.php @@ -120,7 +120,7 @@ if ($resql) print '
'.dol_trunc($objp->emetteur,24).''.dol_trunc($objp->banque,24).''.price($objp->amount).''; - $accountlinestatic->rowid=$objp->rowid; - if ($accountlinestatic->rowid) - { - print $accountlinestatic->getNomUrl(1); - } - else - { - print ' '; - } - print ''; $paymentstatic->id=$objp->pid; $paymentstatic->ref=$objp->pid; @@ -693,14 +722,33 @@ else print ' '; } print ''; + $accountlinestatic->rowid=$objp->rowid; + if ($accountlinestatic->rowid) + { + print $accountlinestatic->getNomUrl(1); + } + else + { + print ' '; + } + print ''; if ($object->statut == 0) { - print 'rowid.'">'.img_delete().''; - print 'rowid.'">'.img_picto($langs->trans("RejectCheck"),'disable').''.img_picto($langs->trans('CheckRejected'),'statut8').'
'; print ''; print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bc.number","",$params,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"dp","",$params,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"dp","",$params,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$params,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("NbOfCheques"),$_SERVER["PHP_SELF"],"bc.nbcheque","",$params,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"bc.amount","",$params,'align="right"',$sortfield,$sortorder); @@ -164,7 +164,7 @@ if ($resql) print ''; // Date - print ''; + print ''; // TODO Use date hour // Bank print '
'.dol_print_date($db->jdate($objp->dp),'day').''.dol_print_date($db->jdate($objp->dp),'day').''; diff --git a/htdocs/compta/paiement/class/paiement.class.php b/htdocs/compta/paiement/class/paiement.class.php index e45d0936bcc..9baa15a417f 100644 --- a/htdocs/compta/paiement/class/paiement.class.php +++ b/htdocs/compta/paiement/class/paiement.class.php @@ -697,9 +697,11 @@ class Paiement extends CommonObject } } - /* - * \brief Information sur l'objet - * \param id id du paiement dont il faut afficher les infos + /** + * Information sur l'objet + * + * @param int $id id du paiement dont il faut afficher les infos + * @return void */ function info($id) { diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 15057d6f3d7..9624bf66341 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -61,17 +61,19 @@ function print_auguria_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0) if ($showmode == 1) { $url = $shorturl = $newTabMenu[$i]['url']; + if (! preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url'])) { $tmp=explode('?',$newTabMenu[$i]['url'],2); $url = $shorturl = $tmp[0]; $param = (isset($tmp[1])?$tmp[1]:''); - if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url)) $param.=($param?'&':'').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; + if (! preg_match('/mainmenu/i',$param) || ! preg_match('/leftmenu/i',$param)) $param.=($param?'&':'').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; //$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad $url = dol_buildpath($url,1).($param?'?'.$param:''); $shorturl = $shorturl.($param?'?'.$param:''); } + $url=preg_replace('/__LOGIN__/',$user->login,$url); $shorturl=preg_replace('/__LOGIN__/',$user->login,$shorturl); $url=preg_replace('/__USERID__/',$user->id,$url); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 33e9a745665..f316fb47980 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -275,7 +275,7 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0) $url = $shorturl = $tmp[0]; $param = (isset($tmp[1])?$tmp[1]:''); - if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url)) $param.=($param?'&':'').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; + if (! preg_match('/mainmenu/i',$param) || ! preg_match('/leftmenu/i',$param)) $param.=($param?'&':'').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; //$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad $url = dol_buildpath($url,1).($param?'?'.$param:''); $shorturl = $shorturl.($param?'?'.$param:''); diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang index f98f02ccef0..a1e05481be9 100644 --- a/htdocs/langs/en_US/banks.lang +++ b/htdocs/langs/en_US/banks.lang @@ -165,8 +165,8 @@ DeleteARib=Delete BAN record ConfirmDeleteRib=Are you sure you want to delete this BAN record ? StartDate=Start date EndDate=End date -RejectCheck=Check rejection +RejectCheck=Check returned ConfirmRejectCheck=Are you sure you want to mark this check as rejected ? -RejectCheckDate=Check rejection date -CheckRejected=Check rejected -CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened +RejectCheckDate=Date the check was returned +CheckRejected=Check returned +CheckRejectedAndInvoicesReopened=Check returned and invoices reopened diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 6b4bef7e8d2..404801c5335 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -705,7 +705,7 @@ PublicUrl=Public URL AddBox=Add box SelectElementAndClickRefresh=Select an element and click Refresh PrintFile=Print File %s -ShowTransaction=Show transaction +ShowTransaction=Show transaction on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied From aa1661d64c5e041f30c67adb33e834d1b0f49156 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 18:09:47 +0200 Subject: [PATCH 072/205] Fix #3413 Translation of ExpireDate --- htdocs/opensurvey/wizard/create_survey.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/opensurvey/wizard/create_survey.php b/htdocs/opensurvey/wizard/create_survey.php index 7f6609d5fe6..5f14e6387f1 100644 --- a/htdocs/opensurvey/wizard/create_survey.php +++ b/htdocs/opensurvey/wizard/create_survey.php @@ -94,7 +94,7 @@ if (GETPOST("creation_sondage_date") || GETPOST("creation_sondage_autre")) $_SESSION['champdatefin'] = dol_print_date($champdatefin,'dayrfc'); //$testdate = false; //$_SESSION['champdatefin'] = dol_print_date($champdatefin,'dayrfc'); - setEventMessage($langs->trans('ExpiredDate'),'warnings'); + setEventMessage('ExpireDate','warnings'); } } From db3c544e21ae2a9909129ac2f6b831c9e6f3fe8b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 18:14:08 +0200 Subject: [PATCH 073/205] Fix #3240 [Supplier orders] Dashboard links to unuseful page --- htdocs/fourn/class/fournisseur.facture.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 892ee14e0f8..ed81f486dc1 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1431,7 +1431,7 @@ class FactureFournisseur extends CommonInvoice $response = new WorkboardResponse(); $response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24; $response->label=$langs->trans("SupplierBillsToPay"); - $response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=paye:0'; + $response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=fac.fk_statut:1,paye:0'; $response->img=img_object($langs->trans("Bills"),"bill"); while ($obj=$this->db->fetch_object($resql)) From 9aec4d554bc79669ef48e077aefe37231ed6fed7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Sep 2015 18:21:37 +0200 Subject: [PATCH 074/205] Fix #3215 [User card] [Contact card] [Member card] Error in LDAP tab --- htdocs/admin/ldap.php | 2 +- htdocs/core/class/ldap.class.php | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/htdocs/admin/ldap.php b/htdocs/admin/ldap.php index ce4ba172583..53c8777d404 100644 --- a/htdocs/admin/ldap.php +++ b/htdocs/admin/ldap.php @@ -263,7 +263,7 @@ if (function_exists("ldap_connect")) $ldap = new Ldap(); // Les parametres sont passes et recuperes via $conf $result = $ldap->connect_bind(); - if ($result) + if ($result > 0) { // Test ldap connect and bind print img_picto('','info').' '; diff --git a/htdocs/core/class/ldap.class.php b/htdocs/core/class/ldap.class.php index 98250ab0db1..400eb934e26 100644 --- a/htdocs/core/class/ldap.class.php +++ b/htdocs/core/class/ldap.class.php @@ -156,10 +156,17 @@ class Ldap if (count($this->server) == 0 || empty($this->server[0])) { $this->error='LDAP setup (file conf.php) is not complete'; - $return=-1; dol_syslog(get_class($this)."::connect_bind ".$this->error, LOG_WARNING); + return -1; } + if (! function_exists('ldap_connect')) + { + $this->error='Your PHP need extension ldap'; + dol_syslog(get_class($this)."::connect_bind ".$this->error, LOG_WARNING); + return -1; + } + // Loop on each ldap server foreach ($this->server as $key => $host) { From 1deb77896f87f94b0ee93716b121c7e10e271644 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Sat, 12 Sep 2015 23:42:48 +0200 Subject: [PATCH 075/205] Fix #3515 Bug: Creating an invoice from a shipment links to wrong customer order --- htdocs/compta/facture.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index a4a3c8a1e83..f409cbeb815 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -923,7 +923,11 @@ if (empty($reshook)) $exp = new Expedition($db); $exp->fetch($object->origin_id); $exp->fetchObjectLinked(); - if (count($exp->linkedObjectsIds['commande']) > 0) $object->linked_objects['commande'] = $exp->linkedObjectsIds['commande'][0]; + if (count($exp->linkedObjectsIds['commande']) > 0) { + foreach ($exp->linkedObjectsIds['commande'] as $key => $value){ + $object->linked_objects['commande'] = $value; + } + } } if (is_array($_POST['other_linked_objects']) && ! empty($_POST['other_linked_objects'])) From 744e5375d25f84938d0f4237113520b017fc0a49 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Sun, 13 Sep 2015 00:09:32 +0200 Subject: [PATCH 076/205] Fix #3514 Bug: Error when trying to add a product to a non-existing object --- htdocs/langs/en_US/products.lang | 1 + htdocs/product/card.php | 313 +++++++++++++++---------------- 2 files changed, 153 insertions(+), 161 deletions(-) diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 9c7b5042fcc..b21fd88539e 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -296,3 +296,4 @@ PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is PropalMergePdfProductChooseFile=Select PDF files IncludingProductWithTag=Including product with tag DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer +WarningSelectOneDocument=Please select at least one document diff --git a/htdocs/product/card.php b/htdocs/product/card.php index 7ba7ecbdf1d..252eabd1342 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -5,7 +5,7 @@ * Copyright (C) 2005-2015 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2006 Auguria SARL - * Copyright (C) 2010-2014 Juanjo Menent + * Copyright (C) 2010-2015 Juanjo Menent * Copyright (C) 2013-2014 Marcos García * Copyright (C) 2012-2013 Cédric Salvador * Copyright (C) 2011-2015 Alexandre Spangaro @@ -563,171 +563,162 @@ if (empty($reshook)) $thirpdartyid = $facture->socid; } - $soc = new Societe($db); - $result=$soc->fetch($thirpdartyid); - if ($result <= 0) - { - dol_print_error($db,$soc->error); - exit; - } - - $desc = $object->description; - - $tva_tx = get_default_tva($mysoc, $soc, $object->id); - $localtax1_tx= get_localtax($tva_tx, 1, $soc); - $localtax2_tx= get_localtax($tva_tx, 2, $soc); - - $pu_ht = $object->price; - $pu_ttc = $object->price_ttc; - $price_base_type = $object->price_base_type; - - // If multiprice - if ($conf->global->PRODUIT_MULTIPRICES && $soc->price_level) - { - $pu_ht = $object->multiprices[$soc->price_level]; - $pu_ttc = $object->multiprices_ttc[$soc->price_level]; - $price_base_type = $object->multiprices_base_type[$soc->price_level]; - } - elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) - { - require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php'; - - $prodcustprice = new Productcustomerprice($db); - - $filter = array('t.fk_product' => $object->id,'t.fk_soc' => $soc->id); - - $result = $prodcustprice->fetch_all('', '', 0, 0, $filter); - if ($result) { - if (count($prodcustprice->lines) > 0) { - $pu_ht = price($prodcustprice->lines [0]->price); - $pu_ttc = price($prodcustprice->lines [0]->price_ttc); - $price_base_type = $prodcustprice->lines [0]->price_base_type; - $prod->tva_tx = $prodcustprice->lines [0]->tva_tx; - } - } - } - - // On reevalue prix selon taux tva car taux tva transaction peut etre different - // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). - if ($tva_tx != $object->tva_tx) - { - if ($price_base_type != 'HT') - { - $pu_ht = price2num($pu_ttc / (1 + ($tva_tx/100)), 'MU'); + if (isset($thirpdartyid)) { + $soc = new Societe($db); + $result = $soc->fetch($thirpdartyid); + if ($result <= 0) { + dol_print_error($db, $soc->error); + exit; } - else - { - $pu_ttc = price2num($pu_ht * (1 + ($tva_tx/100)), 'MU'); + + $desc = $object->description; + + $tva_tx = get_default_tva($mysoc, $soc, $object->id); + $localtax1_tx = get_localtax($tva_tx, 1, $soc); + $localtax2_tx = get_localtax($tva_tx, 2, $soc); + + $pu_ht = $object->price; + $pu_ttc = $object->price_ttc; + $price_base_type = $object->price_base_type; + + // If multiprice + if ($conf->global->PRODUIT_MULTIPRICES && $soc->price_level) { + $pu_ht = $object->multiprices[$soc->price_level]; + $pu_ttc = $object->multiprices_ttc[$soc->price_level]; + $price_base_type = $object->multiprices_base_type[$soc->price_level]; + } elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { + require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php'; + + $prodcustprice = new Productcustomerprice($db); + + $filter = array('t.fk_product' => $object->id, 't.fk_soc' => $soc->id); + + $result = $prodcustprice->fetch_all('', '', 0, 0, $filter); + if ($result) { + if (count($prodcustprice->lines) > 0) { + $pu_ht = price($prodcustprice->lines [0]->price); + $pu_ttc = price($prodcustprice->lines [0]->price_ttc); + $price_base_type = $prodcustprice->lines [0]->price_base_type; + $prod->tva_tx = $prodcustprice->lines [0]->tva_tx; + } + } + } + + // On reevalue prix selon taux tva car taux tva transaction peut etre different + // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). + if ($tva_tx != $object->tva_tx) { + if ($price_base_type != 'HT') { + $pu_ht = price2num($pu_ttc / (1 + ($tva_tx / 100)), 'MU'); + } else { + $pu_ttc = price2num($pu_ht * (1 + ($tva_tx / 100)), 'MU'); + } + } + + if (GETPOST('propalid') > 0) { + $result = $propal->addline( + $desc, + $pu_ht, + GETPOST('qty'), + $tva_tx, + $localtax1_tx, // localtax1 + $localtax2_tx, // localtax2 + $object->id, + GETPOST('remise_percent'), + $price_base_type, + $pu_ttc, + 0, + 0, + -1, + 0, + 0, + 0, + 0, + '', + '', + '', + 0, + $object->fk_unit + ); + if ($result > 0) { + header("Location: " . DOL_URL_ROOT . "/comm/propal.php?id=" . $propal->id); + return; + } + + setEventMessage($langs->trans("ErrorUnknown") . ": $result", 'errors'); + } elseif (GETPOST('commandeid') > 0) { + $result = $commande->addline( + $desc, + $pu_ht, + GETPOST('qty'), + $tva_tx, + $localtax1_tx, // localtax1 + $localtax2_tx, // localtax2 + $object->id, + GETPOST('remise_percent'), + '', + '', + $price_base_type, + $pu_ttc, + '', + '', + 0, + -1, + 0, + 0, + null, + 0, + '', + 0, + $object->fk_unit + ); + + if ($result > 0) { + header("Location: " . DOL_URL_ROOT . "/commande/card.php?id=" . $commande->id); + exit; + } + } elseif (GETPOST('factureid') > 0) { + $result = $facture->addline( + $desc, + $pu_ht, + GETPOST('qty'), + $tva_tx, + $localtax1_tx, + $localtax2_tx, + $object->id, + GETPOST('remise_percent'), + '', + '', + '', + '', + '', + $price_base_type, + $pu_ttc, + Facture::TYPE_STANDARD, + -1, + 0, + '', + 0, + 0, + null, + 0, + '', + 0, + 100, + '', + $object->fk_unit + ); + + if ($result > 0) { + header("Location: " . DOL_URL_ROOT . "/compta/facture.php?facid=" . $facture->id); + exit; + } } } + else { + $action=""; + setEventMessage($langs->trans("WarningSelectOneDocument"), 'warnings'); - if (GETPOST('propalid') > 0) - { - $result = $propal->addline( - $desc, - $pu_ht, - GETPOST('qty'), - $tva_tx, - $localtax1_tx, // localtax1 - $localtax2_tx, // localtax2 - $object->id, - GETPOST('remise_percent'), - $price_base_type, - $pu_ttc, - 0, - 0, - -1, - 0, - 0, - 0, - 0, - '', - '', - '', - 0, - $object->fk_unit - ); - if ($result > 0) - { - header("Location: ".DOL_URL_ROOT."/comm/propal.php?id=".$propal->id); - return; - } - - setEventMessage($langs->trans("ErrorUnknown").": $result", 'errors'); } - elseif (GETPOST('commandeid') > 0) - { - $result = $commande->addline( - $desc, - $pu_ht, - GETPOST('qty'), - $tva_tx, - $localtax1_tx, // localtax1 - $localtax2_tx, // localtax2 - $object->id, - GETPOST('remise_percent'), - '', - '', - $price_base_type, - $pu_ttc, - '', - '', - 0, - -1, - 0, - 0, - null, - 0, - '', - 0, - $object->fk_unit - ); - - if ($result > 0) - { - header("Location: ".DOL_URL_ROOT."/commande/card.php?id=".$commande->id); - exit; - } - } - elseif (GETPOST('factureid') > 0) - { - $result = $facture->addline( - $desc, - $pu_ht, - GETPOST('qty'), - $tva_tx, - $localtax1_tx, - $localtax2_tx, - $object->id, - GETPOST('remise_percent'), - '', - '', - '', - '', - '', - $price_base_type, - $pu_ttc, - Facture::TYPE_STANDARD, - -1, - 0, - '', - 0, - 0, - null, - 0, - '', - 0, - 100, - '', - $object->fk_unit - ); - - if ($result > 0) - { - header("Location: ".DOL_URL_ROOT."/compta/facture.php?facid=".$facture->id); - exit; - } - } } } From ba3d8f445c0dd88b05211ab2fbbcabc000907b40 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Sun, 13 Sep 2015 00:25:32 +0200 Subject: [PATCH 077/205] Fix #3514 More elegant --- htdocs/product/card.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/product/card.php b/htdocs/product/card.php index 252eabd1342..ffa4370ac30 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -529,6 +529,7 @@ if (empty($reshook)) // Add product into object if ($object->id > 0 && $action == 'addin') { + $thirpdartyid =0 ; if (GETPOST('propalid') > 0) { $propal = new Propal($db); @@ -563,7 +564,7 @@ if (empty($reshook)) $thirpdartyid = $facture->socid; } - if (isset($thirpdartyid)) { + if ( $thirpdartyid > 0) { $soc = new Societe($db); $result = $soc->fetch($thirpdartyid); if ($result <= 0) { From a805cb93745257b796fdc03d0faac2b3568b1e81 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 13 Sep 2015 16:33:02 +0200 Subject: [PATCH 078/205] Fix: ER payments are on the bank credit --- htdocs/expensereport/class/paymentexpensereport.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/expensereport/class/paymentexpensereport.class.php b/htdocs/expensereport/class/paymentexpensereport.class.php index c0777654893..4c9c5843a49 100644 --- a/htdocs/expensereport/class/paymentexpensereport.class.php +++ b/htdocs/expensereport/class/paymentexpensereport.class.php @@ -488,7 +488,7 @@ class PaymentExpenseReport extends CommonObject $this->datepaid, $this->fk_typepayment, // Payment mode id or code ("CHQ or VIR for example") $label, - $amount, + -$amount, $this->num_payment, '', $user, From 7c030a114dfc73638d668aeede5d0d77db8014d9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 13 Sep 2015 19:26:20 +0200 Subject: [PATCH 079/205] Release 3.8.0 --- htdocs/filefunc.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index beead03469c..dc3f1866382 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -30,7 +30,7 @@ * \brief File that include conf.php file and commons lib like functions.lib.php */ -if (! defined('DOL_VERSION')) define('DOL_VERSION','3.8.0-beta'); +if (! defined('DOL_VERSION')) define('DOL_VERSION','3.8.0'); if (! defined('EURO')) define('EURO',chr(128)); From 4eedec02741dc5fe2a6c03c1c964b7e6704533e8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 13 Sep 2015 20:25:33 +0200 Subject: [PATCH 080/205] Fix tool to generate filecheck --- build/generate_filecheck_xml.php | 41 +- htdocs/admin/system/filecheck.php | 118 +- htdocs/install/filelist.xml | 2503 +++++++++++++++-------------- 3 files changed, 1372 insertions(+), 1290 deletions(-) diff --git a/build/generate_filecheck_xml.php b/build/generate_filecheck_xml.php index 04970b667f5..dbe96b4c0e9 100644 --- a/build/generate_filecheck_xml.php +++ b/build/generate_filecheck_xml.php @@ -39,12 +39,14 @@ parse_str($argv[1]); $outputfile=dirname(__FILE__).'/../htdocs/install/filelist.xml'; $fp = fopen($outputfile,'w'); fputs($fp, ''."\n"); -fputs($fp, ''."\n"); -fputs($fp, ''."\n"); -$dir_iterator = new RecursiveDirectoryIterator(dirname(__FILE__).'/../htdocs/'); -$iterator = new RecursiveIteratorIterator($dir_iterator); +fputs($fp, ''."\n"); + +fputs($fp, ''."\n"); + +$dir_iterator1 = new RecursiveDirectoryIterator(dirname(__FILE__).'/../htdocs/'); +$iterator1 = new RecursiveIteratorIterator($dir_iterator1); // need to ignore document custom etc -$files = new RegexIterator($iterator, '#^(?:[A-Z]:)?(?:/(?!(?:custom|documents|conf|install|nltechno))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i'); +$files = new RegexIterator($iterator1, '#^(?:[A-Z]:)?(?:/(?!(?:custom|documents|conf|install|nltechno))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i'); $dir=''; $needtoclose=0; foreach ($files as $file) { @@ -61,7 +63,34 @@ foreach ($files as $file) { } } fputs($fp, ''."\n"); -fputs($fp, ''."\n"); +fputs($fp, ''."\n"); + + +fputs($fp, ''."\n"); + +$dir_iterator2 = new RecursiveDirectoryIterator(dirname(__FILE__).'/../scripts/'); +$iterator2 = new RecursiveIteratorIterator($dir_iterator2); +// need to ignore document custom etc +$files = new RegexIterator($iterator2, '#^(?:[A-Z]:)?(?:/(?!(?:custom|documents|conf|install|nltechno))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i'); +$dir=''; +$needtoclose=0; +foreach ($files as $file) { + $newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file)); + if ($newdir!=$dir) { + if ($needtoclose) + fputs($fp, ''."\n"); + fputs($fp, ''."\n"); + $dir = $newdir; + $needtoclose=1; + } + if (filetype($file)=="file") { + fputs($fp, ''.md5_file($file).''."\n"); + } +} +fputs($fp, ''."\n"); +fputs($fp, ''."\n"); + + fputs($fp, ''."\n"); fclose($fp); diff --git a/htdocs/admin/system/filecheck.php b/htdocs/admin/system/filecheck.php index f8876a7ea30..14c9ea59d9a 100644 --- a/htdocs/admin/system/filecheck.php +++ b/htdocs/admin/system/filecheck.php @@ -31,6 +31,8 @@ $langs->load("admin"); if (!$user->admin) accessforbidden(); +$error=0; + /* * View @@ -77,67 +79,91 @@ if (file_exists($xmlfile)) $xml = simplexml_load_file($xmlfile); if ($xml) { - $file_list = array(); - $ret = getFilesUpdated($file_list, $xml->dolibarr_root_dir[0]); // Fill array $file_list - - print ''; - print ''; - print ''; - print ''; - print ''."\n"; - $var = true; - $tmpfilelist = dol_sort_array($file_list['missing'], 'filename'); - if (is_array($tmpfilelist)) + if (is_object($xml->dolibarr_htdocs_dir[0])) { - foreach ($tmpfilelist as $file) - { - $var = !$var; - print ''; - print '' . "\n"; - print '' . "\n"; - print "\n"; - } + $file_list = array(); + $ret = getFilesUpdated($file_list, $xml->dolibarr_htdocs_dir[0]); // Fill array $file_list + + print '
' . $langs->trans("FilesMissing") . '' . $langs->trans("ExpectedChecksum") . '
'.$file['filename'].''.$file['expectedmd5'].'
'; + print ''; + print ''; + print ''; + print ''."\n"; + $var = true; + $tmpfilelist = dol_sort_array($file_list['missing'], 'filename'); + if (is_array($tmpfilelist) && count($tmpfilelist)) + { + foreach ($tmpfilelist as $file) + { + $var = !$var; + print ''; + print '' . "\n"; + print '' . "\n"; + print "\n"; + } + } + else + { + print ''; + } + print '
' . $langs->trans("FilesMissing") . '' . $langs->trans("ExpectedChecksum") . '
'.$file['filename'].''.$file['expectedmd5'].'
'.$langs->trans("None").'
'; + + print '
'; + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''."\n"; + $var = true; + $tmpfilelist = dol_sort_array($file_list['updated'], 'filename'); + if (is_array($tmpfilelist) && count($tmpfilelist)) + { + foreach ($tmpfilelist as $file) + { + $var = !$var; + print ''; + print '' . "\n"; + print '' . "\n"; + print '' . "\n"; + print '' . "\n"; + print '' . "\n"; + print "\n"; + } + } + else + { + print ''; + } + print '
' . $langs->trans("FilesUpdated") . '' . $langs->trans("ExpectedChecksum") . '' . $langs->trans("CurrentChecksum") . '' . $langs->trans("Size") . '' . $langs->trans("DateModification") . '
'.$file['filename'].''.$file['expectedmd5'].''.$file['md5'].''.dol_print_size(dol_filesize(DOL_DOCUMENT_ROOT.'/'.$file['filename'])).''.dol_print_date(dol_filemtime(DOL_DOCUMENT_ROOT.'/'.$file['filename']),'dayhour').'
'.$langs->trans("None").'
'; } - print '
'; - - print '
'; - - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''."\n"; - $var = true; - $tmpfilelist = dol_sort_array($file_list['updated'], 'filename'); - if (is_array($tmpfilelist)) + else { - foreach ($tmpfilelist as $file) - { - $var = !$var; - print ''; - print '' . "\n"; - print '' . "\n"; - print '' . "\n"; - print '' . "\n"; - print '' . "\n"; - print "\n"; - } + print 'Error: Failed to found dolibarr_htdocs_dir into XML file '.$xmlfile; + $error++; } - print '
' . $langs->trans("FilesUpdated") . '' . $langs->trans("ExpectedChecksum") . '' . $langs->trans("CurrentChecksum") . '' . $langs->trans("Size") . '' . $langs->trans("DateModification") . '
'.$file['filename'].''.$file['expectedmd5'].''.$file['md5'].''.dol_print_size(dol_filesize(DOL_DOCUMENT_ROOT.'/'.$file['filename'])).''.dol_print_date(dol_filemtime(DOL_DOCUMENT_ROOT.'/'.$file['filename']),'dayhour').'
'; + } + else + { + print 'Error: Failed to parse XML for input file '.$xmlfile; + $error++; } } else { print $langs->trans('XmlNotFound') . ': ' . $xmlfile; + $error++; } llxFooter(); $db->close(); +exit($error); + /** * Function to get list of updated or modified files. diff --git a/htdocs/install/filelist.xml b/htdocs/install/filelist.xml index 4035e2f615a..d479f4b2de5 100644 --- a/htdocs/install/filelist.xml +++ b/htdocs/install/filelist.xml @@ -1,14 +1,14 @@ - - + + d41d8cd98f00b204e9800998ecf8427e 75d01810c3b8e5a95cbf57f10cd5021b -b828f36cbf7fdeda360f3b8e4cf9e083 +2b63072e8314cb7e4b936c457ff8437e 67798229e915f5841274ee70487feec4 -98072adf78f462e9ea2f7d62418b02fb +e3634943f8374be65b59bb08cb8975c0 d41d8cd98f00b204e9800998ecf8427e @@ -16,7 +16,7 @@ 6734d43389eded6e6ec04df0d0ac6a0c -be42d9f9358e3d57e57686b167674eb4 +b8ba9640c14960e0d4a5fc1065c8ed3d 8948df2f592a82d0f5e8a9b438267127 aa62843d604aa6a058bc2a342a3f4abf @@ -45,13 +45,13 @@ 6877820eee61e7159f1b50d17b63c2df -bc5a13300a595233325ab158211a1007 +e9744918d6277c1403a7c1cbe42b12f7 6c5b043b72d32408f4002090e802d6e8 f994d768919712c348a9f4018c6d4ee5 e7a0c91845d001672e8238f4f4b608c7 6151a7c4134040854886bc5006a0f7c9 73e54239e073c5e776f0c9b0318ba330 -55f035a0bb2edc2b91890f5d68b1df3e +9f557f8d1c3e22bcd014bc5082aa6f3c 78f3bac5801105879cebaeb0bdcbb03b 313274ccfbc6586080382c481cd00264 a7288deb697b6946baff286db59b738d @@ -87,18 +87,18 @@ d41d8cd98f00b204e9800998ecf8427e -5d68acdb6ae4bf3482f00202007ceb6a +148ea77f922122bea3bd1bb5a3471568 604a3c1fd670af360b4e8dd070316b32 -24966736ae7585ad61addfdee01bdcbb +1d9d76e09b19523c85101bbe153e1c97 08194ccdf2c8801e9ce4acd3fc6a8829 d0a6afda3d75393d3a09e43bb1135b87 -5a6e698815e05aed5673b54b7edd0fd3 +9f1898d4f913c53b7135cb00cccd872c a92b0b6374f698c980928a3bee17ff9a -31c2aa5d6a0ff3f6d29eb3e8a354187b +92c1d275d0117efbece0312787a0736c f8ba5662241d9c908f1f791f72481eb7 2f1931c293e0ab260b31e2d1b0134f73 7367da82258c07fb35aaf3aafd3e1bb7 @@ -116,10 +116,10 @@ c31f65e979da57d157bfb7ec4cdc65df 2a13bfa6db4c63aeab46d3aa2beb353c 6e164b380b852fe7cd5ba652e651cecd -0bd47fbcac3a5b87728e3b8d4d4d95df +0e1e52293768d3b3be9bbe7eda4a07de -5188256bdd7cb073a043f8b65be2adbb +9eb9f1b8f927ab504d4418b356dfe7c5 828de5d20d08feba47b7f29c75cd13ca @@ -134,7 +134,7 @@ c07ed6242e02cf7244ca15d501b8efa7 9167ee0137e4d8e27a380b605409b0a0 c704d69e4e509d8fecd98259b4dc4696 -448d58bdfda4baa87885d3be0131ef1d +0b5e44a54c9e9f7c5e5fb56cc7551aea 7d5a6b14598de5cea0cffe96a69eec7a 7bfd53154d651a07bf5d6861b382d50a 7a48e375b7d77c532d3fad60186f1aa9 @@ -153,9 +153,9 @@ 3d004a3c15cd75a45126bace56f8e571 7a603b1f2377ad48683ebd36121ee543 1d4faf84da5cb7cf4ec45f41fca4c789 -83ffab5c97a69b23ffec364a795132c1 +2695ed2349894ec554415bab0cb731ed 5d4aefbb80446c57442e7e7e45471c29 -4552d262301e9c8b213e3c39afdf3cfd +f7aa8e26c09d03918937902ad4a44348 34958e258b87fc1ec821e6b088e79c8d fd5d1d799fde0113ed7dfff59ce7f829 149760ed8fadcb899e8ba8e3e4a564c3 @@ -189,11 +189,11 @@ 8868b7d0779aa09e9b52c965e1e96b8a 5c06b9772a487667c388ae2b5714fa91 b2e983fe3f64bb7ec0bd09a8d7225acc -77d17b2997f529c6d020e21850aa87bf +479c9172c6429e0b8a59745beaaff7e2 bc667a42f1ade75c59cb5ad6103847b7 d63455783346f56c804c166f71bf72b0 31bbae8a1de3e1fb630ac4d83db62d71 -7a4968d27f1d5b6bd51403978327c417 +77b0d9800746216db7aeb6d6ae97c120 dffbd73d8de5768a2cc32565732dd9cc 9b9cdf0d964ecc76eddfbe5331c15c53 07b0a3d9980fdc81c37bfedb597204a6 @@ -208,7 +208,7 @@ d41d8cd98f00b204e9800998ecf8427e -8aab1c6d3d656cc55a4feb9acaf3ff29 +a5cff5f7aba2c3c8537838168d619b3d 667cd8a71a675fe06ea29427443e4642 @@ -222,11 +222,11 @@ d41d8cd98f00b204e9800998ecf8427e -766631fe2113061598cf2b70c4367da1 +c6fb4c534b13919a61a7cda2675182cd d41d8cd98f00b204e9800998ecf8427e -43093d0ed8252a37924fda565a2fcd0c +30dd0792cad95cf9efe1ad703856ff10 296b5b4000a78d2b6641d6f87b54b1d5 @@ -236,7 +236,7 @@ d41d8cd98f00b204e9800998ecf8427e c3a091f382b8d46073d526656abafa08 -aaa422ae508e2b6fd9a936924c20fc2e +9b3010ffba6af811bceb8d53ef7cd4a4 3e49a455e52720605b60a343d9c3fd3f @@ -246,8 +246,8 @@ 37ed710e40414cc35a8451695d101da9 26c66f78f5db62e9af07cb11280afc24 -d4b12c1b7b5d88598b2ff29997bbc516 -79f999818e93c5d84a639d470c100ffd +1eb0907a7926acae06fd61b54c0d2bab +0dce719c0539bf9d75cbbdf3de32817f d41d8cd98f00b204e9800998ecf8427e @@ -5986,7 +5986,7 @@ ba73eb37155d87d598b58b80b3e80030 -fe77f493a0f9f88c1f874bd89d0fbbcd +3e053329347eacc11557b6830a363435 d41d8cd98f00b204e9800998ecf8427e @@ -6009,7 +6009,7 @@ 39a29fe8ff9f5087781dce05914a01dd -3a673a01c9d6cc13041f0d6621c5dac7 +e91116632c7e0a745447beb5dacc9a7d d41d8cd98f00b204e9800998ecf8427e @@ -6181,23 +6181,23 @@ d41d8cd98f00b204e9800998ecf8427e -6457b5ab56dbe9577737d8a1792ef3d9 +51675e7f629f2fb30d597002fb83c9dc ccbbf4d5e94f37abf3ba9e9b31b2ac8b -62ba1c7207971f4f83d00d194263e7ae +4632631df68e25c141acb349d916c3a3 af876c926d49c59376d8b6d642ce9f66 -1af8161ab8b8fc5cfef7fd26f6e32906 +4d9613e1a21fa012ac864d96f1a62112 858d2732221359ba9e0a9965353848c3 -fe6d70bc2b2a696c71f90ec94acfafb0 +df81fe06744adbdbcf27a69f0b4ce55e d59f578b7eb5f374eda40295072f0fae -358bb83fc5baf9856a8a3d3291d17b91 +c24b93c08c98cf333d2e7652e60456c9 d41d8cd98f00b204e9800998ecf8427e 5c09b3d75fcba736c3353468236e5338 563dbdf25cbfd4e4b50649530f7e1151 @@ -6224,17 +6224,17 @@ d4bf21d9624e8fef1f9d20465d2e5503 62fc08bff6c9c08fc68bd5ddab35e443 24ec97e48bfe034f3ee795ae9ceb282f -0ea32bda75dc7855fd061f23d129c35c +4ec443ce7e02d8c6dff96fc0cbd6c285 a297bb14700fc91ffe3a8ace3d2f7751 -13389f0e53d7406ff73f7955ec5e59af +cead2ff721855338e0d61128ffc2ecc5 25b3ce6e2f12f227c4a1ac8db9fab357 af321d136a1e674037ba2c163db3d2b2 -52d341018e13d223ebe22401649d6efc -17e5ab2c7725575b8cbd6c4fbca22fea +0d79377d6dbbc92ac4ca0db3ede4c00f +9293af8f80fd01193d0379c1761bba8a 637c350b86faf4b9066532d41dc87fdb @@ -6248,15 +6248,15 @@ 9b2c6de73503cceb102e875a364f6626 -c1c2a08cd15a461d364c203881f1165c +80a3e34168be19d0387e287da1d7f42e 65e54e9e6458c353a92eeaafdb0d0022 d41d8cd98f00b204e9800998ecf8427e -a1ca8ff6fcc1b96eaea5866310797374 +ea318b0397fe12ffd8f748d80e09a6ea -f75345935391cd5b303b9b059401d9e8 +aaeb594d255628a742d183b0c4fff3c6 bebba22e7a5fdb20a52dfcf1b64772a1 76b0dbbea2bf64439e204970f68bc73b @@ -6265,7 +6265,7 @@ 7802aef2c68c39a5655aa095873eceb5 -d9e716d421005a9192d620ea95cf6001 +140ca9e6844d65982fe76efbf153403e 60beb0705c4819ef3ff88e49f02e2628 @@ -6274,21 +6274,21 @@ d41d8cd98f00b204e9800998ecf8427e e901d2a8027ea0d4a2fd0a2f0c4254c4 -02a2d23da6ed45194bc7466e84cdbb62 +967fa07d1b551bc6bbb1fa5634a783a1 abefa8f7d035ae87eb5b45b0c43843be -20499163339a4537c804d926c9619714 +6cb2085059ec2f740f5ca8a2aa3ef310 1228532a69cfc2e4ce917fbedb9321aa 4032fa0aca1db6fc5e020d25ed7fab41 e3670650548097d9a7aaeb346f3bd5ef d0bf76a584562ca01bcc46670b39af32 -a7a90ee73e8f7f25267dc0ed66b3d8aa +ad62122318a931843599ec66c81cdf02 -3f91b41466e65b5312487f5fee8b873b +0ebc16ded1e4b42a4f1c0d6b9f1dda5e 71d1ef869b5ab59897f399b0d15f6e5f @@ -6302,10 +6302,10 @@ d41d8cd98f00b204e9800998ecf8427e ee74a794201de6cf45f08cc56c789ad7 -59cf2bf9b98a11168ae573b7940d9eee +214e0edb381e28e12ea19bcc941d71e4 -5defe63162e700a0f88ed31b5f4feb23 +dd8891037d36d4a87969e74f93d88e49 7513073720e3165c5b9b2a8080eecd18 b3fd9f9544438ef81401c880177d40fd 5c0c423540accb30a32265a7e909078f @@ -6313,13 +6313,13 @@ d41d8cd98f00b204e9800998ecf8427e d8f4d806cc9823e961151c44826ffd77 -8f15020b517193c891f7db0506d52e6c +31ee8e43f5401dc71817b7260a86beab 502547de717912a19aca06ddd223995c 08d09a43fb6c23ea07250e482e0116d2 -11af254821ba19ae340501fc16f31443 +311259a2b28384c64ff2443c7feb9d21 -fc31d79a84a2a64fd978d2219fa2e309 +b0446ea619a94e5fa2b3178e293ff30c d41d8cd98f00b204e9800998ecf8427e @@ -6343,18 +6343,18 @@ 94819f93fcff199704b6195a50c12d94 af3abc6cbf19c242b3fe25271737fbab -3587f5430b54076f78f9bf98a66e4d35 +f2df5d4e95f1091339a4f76516c5d2d4 d41d8cd98f00b204e9800998ecf8427e -34478d463c80b4ea6ba13bd93f2d4364 +0d6cb1619a053d70c78672a9aecc4d01 d41d8cd98f00b204e9800998ecf8427e 3e83426161f9a2ba6044124f02f345a6 7f74cf4fc62967e4f18a2b2d5f49a3f5 50bc7526a36a03c57dca47022c735425 -710ded6f905932283eef02711c53d658 +d5093b1fa8a05ed2885905be1351aa57 16eb6bbf5daac70314b5480aa545de72 @@ -6379,16 +6379,16 @@ 20c72a55796b1e64cff84f004b04e76b -057c41106d2951c5b4533880d184654d +e03eba31d58eafe6aad3ff94814bab8c f15bf7e5916adfd39a30d1d984c28b75 -342c06186265852b0f07416ac09cfa6a +5c1defd3f977bdde6c68ecca0a596b2f d41d8cd98f00b204e9800998ecf8427e fbccc9c80db24316963f00108777de22 -8f797a15f9d99b33316020625402f0a5 +e527016e816268701ba5d8a8c5133b83 d41d8cd98f00b204e9800998ecf8427e @@ -6396,8 +6396,8 @@ 56ab66872574c4005a138883a610053c 5c07caec4119e65b0f413c36382fc1fd 45b121da7ae1043feb0990220f7af311 -4ff20b3467c21f8b81b0382e9ead10cf -59717943a38b8672b7d9aa6b79e64d92 +eb8aec3b6223e224d7e0a3d275119d2c +305f16b73e13c5fd024f6dfce15d6152 d8bb05e304774532c20b3bfd2640be79 @@ -6444,16 +6444,16 @@ 101a0b273f2b9a41680969e990d7f452 b12dc16907aa1499ea6b6dfcc484baa2 -4d88ff2e0fa6834392b18f0410602ccd +d0673c8be1cb6b2572c370da9c3de827 8f99f0fd2ed217328dd4647819cba0bb d41d8cd98f00b204e9800998ecf8427e -09e60de76bbc76e095da9b8cad6f2f88 -4a2f4e9a468213059b86e3a715c19de0 +a7782dab95c860f764d112db2ef3be7a +e40dcf4585bcbeb83f9e1b9a1bfbd46d -c3de4747a1eada082e15fbbcd69848c0 +bdf8a31adfd8883f96009ae9a31eb339 22a2ab52185732bcafd64fbd4a68eea8 7b425cd596259f2a3bd9a1ffb228d0de ebb2e597917e22900853dfa300de88da @@ -6464,7 +6464,7 @@ 32df7d91f327cfdcd67d831f6e7535eb -16dd6747941c95ce720f09ea8f732253 +4948f533a6a1eaefa51a4c7b8661e293 9c15e013ef6cee78eeba5c41747d96a1 @@ -6590,7 +6590,7 @@ 85d3d8fc243475727700d322daf769c8 -8099f2adc8c0dd4c2127418716889470 +594c6fadbe917f7e36c7b72cfd6a6af2 d41d8cd98f00b204e9800998ecf8427e 080945adaf8304688ce778f8acc821fe c23f62f7e5f09cf5573f130a41f187ac @@ -6602,13 +6602,13 @@ 12493ac31aa1376058c5f1bb4eea48e1 -5ec80ad81b6e65f39303b9fd47661e04 +7f9a1be8e9e0bc6a5ac46129fe290b7d f0b37bba830b2bf5fc563baf227c34eb 080945adaf8304688ce778f8acc821fe -32049cd54587de758b01e1393a0daff9 +c7a59c20d9909f290dab597e09ffa2be 8cc4b11d20b0e01eb7e7b7401c2f12c8 10740fb22bfc2ac1b339e9d784cb9c23 -ce17807396da33afe7a8723514357b3f +e72a1897ed9a078b81e72d66eb3895fc ed61f7e507113bbde00c18af5b6d8594 29e218c7e580c35cf99d19f5876b1709 bd68e17f01cde910409d40075ec640bf @@ -6618,7 +6618,7 @@ 83554ef1749b5f877cda2173c4fd71f2 3c5adedd71ef8c08b8dfd0213767a814 fa1602ccc625f1e35a7be5e0a2083020 -b6deabc3f14689e29cd57dbb4fbba7de +7621f387a352d44ede2cf4afe0662679 a4a1f69d36f0c22e9eb2767ea3f0adbd @@ -6631,21 +6631,21 @@ 048dc07dc5cab8e296892a0a435244e0 783b88cbef3e0dd4c05b607eae4aab9d 85df266f4d854833292920582558e462 -67642bb0c3bde02c7bf1d539a3ca94cb -4ac7e2d2fba4ba0ccaed009acdf673c8 +30ba3a70b83586bd7f71fd3e9735841a +30834b09409d2e8bdf19a7c03ee3e0c0 -1d3c6e9be8650e08469025205395f3cb +8b1537f1d750ea8d2d94e9f17b71ebe4 7fbd04fb747c9df920e68d90c28f6853 -5c1835dec2225168f2b28b4e8153da09 +f0f3dd548f0117a3bb6905f9905ea76d d41d8cd98f00b204e9800998ecf8427e 9ed54c7ee286304e07993b5812fc0cbf d992798ae83fe2da2d0501997a8bc9ca -d6662baeac15aea3f1c80d09dec20995 +85a61fdff452eb8d12f7c76278a5b038 6ffc1d90d72e3ed0f20b128231e61593 1f21cfd913214a20cfa2f7ae3ada25ff ef26c4f25fa2beb7d37143476b866754 @@ -6665,7 +6665,7 @@ 301a7689d42e301ca8ba3e4105c658c4 727a2a09be20f951758ebda495f21819 f1937e8c9562055c849883a5e39a42a5 -c80194edc5fa2e3362b1c75ea42a4912 +c3b3d0abdbe29dfa600e25c414370231 d29ea5774ef6055ff2a376efa8e1b629 2c7d88183b1aeeaa3c4fcffeb081cb86 d41d8cd98f00b204e9800998ecf8427e @@ -6677,15 +6677,15 @@ 0db78f95e23062feab46593d28704532 d13a1b0fbbc6cafcecd93f460a494cbd 084f9694188a61f84e337a78ed05441d -dee262d3608f8e534208623a18ed6563 +904fa6ad71728ebc126514a863305f11 02c3c91fb006d3ae2e15455d1d559a91 -1dcba20f86eb537010c01ee8ccfe6451 +1dcbc5b11a925b933b59aa44ac588854 a5fa4f2f169cad1915a191fc151ad265 -9d5b8b886cb8c023c20aa0e1026debb2 -8b26acc263a230c208ec19d6770d7e34 +fc4eb48545c609f71eaaefb2e061d91b +bf8b3d955aa1deb2e041496544de5f04 c663d2cee4ea71d024f2defd840527bc -3371bf1cd01eaa3b2f29f09b03d3ff72 -8ef338250900979b4177afb3967aafc1 +4d33c44d7e7704e5e67b2bc7b183d8ba +f0bf2d1c291cff3b62bf2a656b32ea62 52a5f7f52fe45bc60d38ca4a96194125 51947a30f8a81923a63f5a0b92d756a0 05bf526e791c88cef09875a2199a1f00 @@ -6693,16 +6693,16 @@ 7ab52342b3b370b5b6f6298dc5d4c182 4e6fa59e238b5d4855818e3197dc9931 6cbfa567b0f4153bbc7f74adfe6bb4d2 -d5c14e4fa8370c50c9aa5f4280db8984 -46a492f2314937e191d768bc23138826 +6183a5dffea32afc6d961f7d35b80f6e +bf50bfa23a12e840e06fdf7f53e157b1 ff02ed2bea96d88f500167a09413c7c0 59877377a38dd5dcee93798ea7923bee 4b0797a4faaa9475bd19337f4825284e daff44759e4f9c193a667ed427ba5444 -8fa96bb0dfebc2381a144334fd94eace +78035900d4df5bae90ad90077151b7f4 8ba37911c24d75473a9a07fc3dd3c371 f4d35924864fb87b787ab9a9925fb091 -a68083f41b5382ebc083828d08928342 +c4eace6e4930731ba46b88be2bedad6a 24e05a59dbe2e27dcd6bd1554f8d1695 e584803860f66fdd09669edc27f3c18b e7df06c253dee16873fac26b32670722 @@ -6712,13 +6712,13 @@ 6bf888b0c4db10de3ac1c4d8c48ca495 5ab4686cbf0b0d798b37873a6c9bb3df 1889b6eeeef65ae427813873a606a06f -efe91cff88a79f70ec958a9b13c1bf33 -24473676a97d1671cb429d7340626815 +126d87de4a1d8e863a5ad85f840caf2c +56a4403ca54afb568def56c118ac1f3f 4b09fb6f2102d0dc31cccb6a021a275c -c906bb04ad054e8b5230155591c54c5e +56ca46312806229c2d361e9c46ab4533 0b631c9349d4997aca6fa2bcd6a60fc7 34a8dbdc41d76d2c95b702cc0c770f8b -8e828313fe38455d85a78b7f237e449d +8f0274eded9c67119297f281fad2bf9b 445dc8957e4b73ac842bbfdc8cbbd243 3db7079275b3e1ba0126ec337f998412 3338b73e47bcad98695e11e3b32ebcfa @@ -6729,7 +6729,7 @@ c83d06b3dc2afbd5453b8e485ac38312 bf7a691239cd0c0677bdaf061d0ad837 289840af2b48d265fb46e11ddf2628da -e2583d8237dcc7f5fe21ff3a77642beb +242288b2514820582ba09b42ff57e2f4 d40f2bc5d4e74945aff1b8663bf33d0f e6aecd57572a5165653ffc7a9b283178 9479b8ec2ca8b6bf847e69acf0905d9e @@ -6743,15 +6743,15 @@ dc056bd161ceeab388b54c28790ad27f d41d8cd98f00b204e9800998ecf8427e e403f819edbccb676580a4bab5dc9b85 -381ed6aa92f0185f6783608fbfa5dd8b +9d9ad7310241ddf16640d3f800dbb7bf 327de623b6318783a31bf2402764855e 07374752b32e65ac21f86c1801ada777 abbc5ea531df4a7c03949868ee141c38 84b8be2d20c1d6d6811f0298d2234ca8 -d807be32e7d7c407d0b1e47ada3cbe8d +223bb15e53ca059b66188e2c5d196195 62ecdcff5b99f8bd94f75e2ab7eacd71 b45e62638dc04cdc8cac22d4c82a0c1e -08c0e8d503166a6dc73d1cc4ba78333b +311530ce8300ab9eb82dfadc21dc6646 130ce96d80430c90a6998055db294685 93d1ba6dd796c844428cf9149ee2e801 44740af25aeae7888e239bc6f3ecd36c @@ -6763,8 +6763,8 @@ dd2a3e53ff70e9913a1f44a65992e83e 1258865536912e11c70ae0c343576d11 07e043e1c42a0fe90d2226eaacb013e2 -f58a11f8ef8cc6304cbb316c4abe9c60 -1b7e4286ad2851fe8e201161aea84da8 +f6d4c9c91e2608f8ae916ddf86816560 +c4aae5b40cc7eb4a71878111763cedc4 78f6029aabbd9f1e2568187f7d2f98c9 a969dd13ed2ab6f921564ecd22121515 ef0ba347561ad5fcd763fabb899bfad0 @@ -6772,21 +6772,21 @@ fb6dfe418a92f6803616c17def007cd2 48cf595e8d99291e756b6f0945c4a656 60c540c4dfb653ef65e67a628645f590 -ed6cef203e2108fb37bf8354e6388c76 -e3d857ea73debff28498fac671d29fbc +8caa3b39351927e5159b5a42d5c0f29f +cc545e426ed2e735bd00cbab8db381bd 98ca2d412c720690b46b8bf566cf4fb5 a9d45ffd6281800146fcfb2e3ab90ab6 66b21a3ea2de0ae271e470c339c40d07 -6af21caa27ea2f68aa6d35b89cf94499 +33293e2db3dedadfccccd5d6ac23eaf9 b416db3eacff1ad448692d14aadff327 -201d96342cd4f549c74ecef65507fa17 +6e53a89f128e41918ccf5b20b96976b0 16159cdb43a8ad0715b528bb858a2420 0bbc469b628cbc940ebdd59f2e218b6c -db17262d65ec5b72a8fdf3fc42693a6a +eff5fc174c1ec328e58b76a3d70a5f2f 116c4c10fccce8d73c9193e742834d3a -9e2c408c79db58e613f988a1f03540de -c044677f3506ffda693f586b94981e00 -198584f45d7c6cac57fbe0ccca1aa61a +aae21d60ccd315a64cd407d301514a94 +dc63bf62b746ea8d1b1e7833675475d5 +fe594e68a36f30b5fb0931ce4e7944a7 35cc6ac5381635a8a49523616f0d5e18 595325924223d40b0ea97c9df4ebfde4 aa7ebaddf8d815b3dfd1b3281f26de84 @@ -6799,7 +6799,7 @@ 4eaa5c0e7ce4116e821af9c6ce8c53ed 540b65a840a2f9876551a7963a2aa1bf 48f9b2c134655de1b0f5f7d50f01b765 -8985f63b29c895abf31bd71bfadce9f8 +e04716adac419184c905fbd611e66931 70c6fc7d08f3c562322c9f53273f1393 @@ -6821,10 +6821,10 @@ ea242d45e334f6ccf8667d6eefa897f9 4ec1d00a283dde86f3d2d2dfe861322b 27899639279dd869734a9adfcca90928 -89b75a1205387156db3f07de87428ed1 -522398c4cab223adf1a3529bce9acb6f +d493e1ef8c48b934abc27c265511201c +e2e0d0f0e5f01a63b01051548ae2d046 571c3314f679515eeb7e783e772a91d8 -b9a9ed2ae622ec2927200802d7f69260 +cf35607a99b98c2f1265fca99f012e39 8b161e9605cb5167551218d6052ce08b 4635f7e2ec630f95a9c40f8a70e4a5ad b569393287bd79b472ea2ffddae509d0 @@ -6844,7 +6844,7 @@ 8c78f30a301fd7c5092ed59d95f2f688 -e64b766f521538b812d69f58d992b273 +24a809523f01561d398e69640b4177a9 9f4114f75bc477d32d3eee0964ce9538 @@ -6861,7 +6861,7 @@ d5c21facbb1b56e3cad3749b7d0512be -4cbc1db0aee725f1bf4638c8e02003f2 +998586e946d5bfd3c5cdec06f59197be a8e40eab967d374369a9c2ebeff3f17c 03b977acb32cacc51e89dc4446c7a8a0 @@ -6872,12 +6872,12 @@ 69982f8171837cd8669bfe9c2f08dc8f ddf6dfeb77c98411b4d5434f20c24483 -cb220f99e4f42d3e9a9da1fb1c4777ed +c23010fa68c5996cb5977f84a6bb7ceb 90a300e9bd857966226c68dca8660456 d41d8cd98f00b204e9800998ecf8427e b4e9f07aa5268af49d3bb9429719b201 8293bd60fe13ac64c22f8500b346821c -53f4fbaf8234bc051c1a94c315bb0379 +8c43c3a33ce5882354b25ea6eedd6b0f 413af6ca18377689660d2b2eeed2be98 d2df1ec90f2bebb3ebfb74eba81bcec7 c3b801c60645dff594d33cf0acc43fa5 @@ -6890,14 +6890,14 @@ bd98e5ab25a629b3ad77dbd8d65f57f9 -febadec42096e65c8982cef3a589d19b +7ffdea19b2579687fc084642e9ded32e e24d593b65305e01b074d405391f26b6 1decbba7d8c340e96fef7e7c8f76cec5 -29a7dbf3fbac0e46deafeff78a239592 +6c964cc174572200dc704eef7928b33e d41d8cd98f00b204e9800998ecf8427e -c0b3c64b635414a8cfc009892f8ef75b +1dbcebdf0ca125ced506b39a0e4a29b7 d41d8cd98f00b204e9800998ecf8427e @@ -6934,7 +6934,7 @@ d7ce5caf474c325b8a660583b48df39e -2053f68714d0a18f36e8cfe9f9b7ac4c +dd9a08f8c03874b1fd5249a35922466d d41d8cd98f00b204e9800998ecf8427e @@ -6943,19 +6943,19 @@ 8fd1f79367ca1fe345076df77337dce5 f565e3ddf9bc9395ac47dcea255b1cd9 8881a25817ad44b4a24d22b129c08204 -7ac55975db6cfe8c975b603ed74f12e6 +49d161798e5233c661462d1ba993970f c47c2dc804e697e11c3f4ce54e0b0011 d41d8cd98f00b204e9800998ecf8427e fcc8eb9209d42bb5bef2f9c3f4984b87 -fc48447eeb87f1cffd200d06f97eb316 +272f374309d523038d10b4ca8565352b 1971aac78dbeb00bd73cd58de2923d63 4a3fbf99bbd978bb9d145282c6092ee2 0bf2e38d4ce8df49eea23b091ea492f1 -6d435016fdc903533b6e9c12b7e248de +7aeda3f29b8d3517e7134b36fb4f3800 d41d8cd98f00b204e9800998ecf8427e @@ -6968,7 +6968,7 @@ d41d8cd98f00b204e9800998ecf8427e -30037f514ac398d1e320938d71d234ae +929e64d2c69c504b6294a337d78b91d0 3bdfbda286294b2d05d3d0f0620bda42 @@ -6986,14 +6986,14 @@ 7bc409d442508ec7f8638e4d710c6508 -80875a13b8b74f685193787990c5095b +37494105410d00a80f6c222894a8a94c bb90a4e927cd7bdbadcb54ee217b8f07 -2f43175d7ead7cee3b57843dbdb10ee0 +582dba6660f1d337715a4822f4dd9524 d41d8cd98f00b204e9800998ecf8427e 9b301131818ad7072d10624d9fce65b8 -9fad9ae91b80f52660a0edc8627ebf92 +9a3ec96f1345ddc401718776d6c95756 d41d8cd98f00b204e9800998ecf8427e @@ -7018,23 +7018,23 @@ 4bbee56e9f7b9e39373a5afc8983bd22 -d4a7645ed2f93468506e45cc0bef3149 +348ed0a286dd5e2c43d90a6c0f28e3e6 d41d8cd98f00b204e9800998ecf8427e 47cdd134f11d6167cba1dd440c90bfb4 -abb8b3844ef8b3cb97bb73528ff589f2 +40b6de62b1c5150dbc1301ed91361879 7d605e5564840c03d4ac31ddad615c31 -0b308f4e4bd25d90e3a75078c917ffb8 +1cec18c78a994077bdd1f3220f0c89d2 75dadfb0411c68a97cffc44bbd7bbb8e -8f351caaf973aa775420027a1fe1a734 +4e72194cb13c3c6e40abbeabfc63b1b3 d41d8cd98f00b204e9800998ecf8427e 6b8b8ce50599e40cb74603a883f5d49b -80f3f4eab528fe31671922d9fcd10188 +b694666f3fab63aa002cf57d9221184f d41d8cd98f00b204e9800998ecf8427e @@ -7045,7 +7045,7 @@ 7b82d8b4f260bf77647648b2c691f5ef -6a122f2e8c40bbe8ef62929ce7558e3a +3d95525f908de5a02cd5218893e04602 4ec0b3b616a0298a698385da45464506 5976e30c457bcfd8152c783869aa44f5 @@ -7054,7 +7054,7 @@ d41d8cd98f00b204e9800998ecf8427e -4f6a329e7cb03fb67bb2b0c041cbf358 +6f0310c8fb3d1720af3544ec789ae76b 3f870cc77afc8277b700c1492dd0d75f @@ -7066,7 +7066,7 @@ d41d8cd98f00b204e9800998ecf8427e -1f428be2e6be613e0e2cfbd1185f63c2 +ca77104ab1e9cd060e5fc12061f54b93 d41d8cd98f00b204e9800998ecf8427e @@ -7077,7 +7077,7 @@ 03ffdb8b37122df3823dccc947fc944c fe46f69ee9c9a7cbf321c71e5c3e3fd3 -8cb5d1cbe370a277e811c6548dfae574 +6b01669d177f1a614085b407538555d9 e1efd5d8bc348da70c325a08fc8c37a8 @@ -7092,11 +7092,12 @@ 13e922bcc8c5b80bccd436037b6d1983 -52c04654456daae65e3f969d97539881 +00c95231958ea34cb8c2ab03d977fad7 d41d8cd98f00b204e9800998ecf8427e -bbbfc57fa7bf2ea4d325f9fb04e8e1a9 +551b419a1f4c4a63810438873229bcff +086b2b45b9a2fe748f229b9bc66c2b5f 083e92b90c1d1b8d2fc0bf53f82fe24d @@ -7118,7 +7119,7 @@ 67aacfba9a773fd702d1cbdb527c2389 -d66c28a1f6a4bde2c1ae0d9477b4d4c3 +72dafdaa273c97150cf8ef3605c049df d41d8cd98f00b204e9800998ecf8427e @@ -7135,7 +7136,7 @@ d41d8cd98f00b204e9800998ecf8427e -a1b3a075fe2a1edeefeda7547b459ce5 +9781398536d1483f5c9c342933099d6e bcc3831429d49ff3a32c645c64be2e0e @@ -7143,11 +7144,11 @@ e55b01cb8e535d7dc9430a15a8a67444 -70f39e958a5afd70eaaa0e129b132dd5 +aee7564b27ba5450152d80002f1fba64 d41d8cd98f00b204e9800998ecf8427e -4de7628a746e687f8be4feb5f5198e8f +cfc998dcaf5626e19faf48057f6dcc7a 7837f5bb514cfff0e661cf8f6a2b7f1d @@ -7161,14 +7162,14 @@ 5828492fffa3239827af9cbd350fe1a7 -945eb348431be7fd0eaed9f64a0d9b87 +e4aec9b1bb5900b06ef83afde3b4f808 cb8d00fea4038cdb54e050ae6de48a52 8b6661a6f4c699a8cd97427ab0ee08d1 -dbeec662015da7739ac9d9596911d279 +49d1f028330d8dad4880aa0c660c9ebc 8d614ddd6b6545db3c21bf5a0ee84819 a40db54a993475953aa25bbef592d0e3 673b31203f66bc4c61d0b84014515e00 -da890bba90301957e6998622eef0ca57 +bca52b63f254776be7ab1804bf7a062b b5b8aca26aec574d1ab401fe8411e144 @@ -7177,15 +7178,15 @@ d41d8cd98f00b204e9800998ecf8427e -ab359455cdc8304cda31b79688fe33da +2876daab1184996d57d657a8d46b1117 898b153724a1748b8ea360e0b94aba77 d41d8cd98f00b204e9800998ecf8427e -84c5696c65b2814e06046c6ca2ca0d37 -77c43df5c0f7dc9f36ed6c68560836fe +0f7bbaf52bc8737d3a20ff0822895e6a +5ad19942c767e2b7b40bcf7a4557ef96 5cba7b9316b591829c756097ae0485cb @@ -7209,7 +7210,7 @@ d41d8cd98f00b204e9800998ecf8427e 4dfcdf4d3cb3af826834c1fbb852f513 -b3ec5a19a14c7200c216cf3bb7042bd5 +9dee214cb227c61a780e61bdb328d8c9 469386ee98ede1646eb80de2443edb92 @@ -7231,7 +7232,7 @@ d41d8cd98f00b204e9800998ecf8427e -85d57d1eec4745894a26c753ea9f4d9f +c237d4cfa770da16787a7ff6dfca94f7 1c5229194acda10b85b7851bc12675a4 a9332e0cf7eb8741e9857364a142b72e 04e25214030172ae5a0c4a390698ab55 @@ -7301,11 +7302,11 @@ 6bcc750e4e3bcf3e3f130e84fa76c000 -e287d52d56752442b8062d1b9ad81963 +c541a34207adc5350b2dc5c1f09b999c d41d8cd98f00b204e9800998ecf8427e -13c083999f847614a6fd6462f1918e11 +67e7486726fb7e6b1ee021ce84bc9cfb d93c6b0e8c40afea1cb04473e7125fad @@ -7313,16 +7314,16 @@ d41d8cd98f00b204e9800998ecf8427e cc73bdc8577f20aba162d28c828ad90f -27daf7eb9925aee9ca9d6a472397cd6d +3f14cc8cba3c19889f962fee0095f0c1 d41d8cd98f00b204e9800998ecf8427e -bb3790858ceadc17b0e363b764780357 +9d44d20ef0991f1697d7060213c2493f c6c90963b5d4c740e6fa50906f101d66 37bb963c5dadc996a1a96c433fc281d8 -ea8da23396efd8ad8ce5aa9e1ea2cdd7 +2dd8e88a6957fabf71b1f96f1a16be17 5b5b52ff72d105f06dbf0d41b6468f32 @@ -7332,7 +7333,7 @@ d41d8cd98f00b204e9800998ecf8427e -e209d1327b4fcf06d9e2566bd1c5c74d +778c4982f6d3788dbbd71cd005ac4e71 7c62bec97b5bc04de0c593aebb28c3bb @@ -7365,7 +7366,7 @@ d41d8cd98f00b204e9800998ecf8427e 1f21bb9a5810af59b93c076fd23f22f8 abdede0b95ba0317afc2b84d41c6d466 -ce261b89c3394bbf6d5353890ab22339 +24061f96041726ee8c39737cf7977c39 8132fb847569fa766adc0c4573f88d01 890b8461abd8f0b87b126e9e770b9909 1f02fab7a9f6f9c4f7e6f55b70d39ad7 @@ -7411,8 +7412,8 @@ 1921a40ef2e203a9c7e33e33d8481630 -5edc80f4cd539bb330c9b7e8304cebc7 -7a987b0b04caa4006220a538d0565830 +3055a2f7266a60df732a08529a6ca5d1 +eac772a94850fe421d7cb668f16d8502 d41d8cd98f00b204e9800998ecf8427e @@ -7423,20 +7424,20 @@ 7d040a1858a6f1e8b3d8e7fc68b1b008 -79e90bd3cb5ea9ffce8274e611e54397 +15aec3de90cf1c5a1a4edd5f46cb2bc6 a267dd6d9a787dbaa95ee81e9812a81a d41d8cd98f00b204e9800998ecf8427e 890365ca9e5d7857e3532d4c0366f94e b3586b44a75323dbf02f85aea44e25db -12f7ba685778c98d4fcb56d2a3378fb7 +6473ee94ef64fe6935f95790230b7574 1699071ff4bb09210ac267d430c05352 -aaf4a17044e33a5bc381b67af0e5fa1a +dfc38f61ccb28814db587e30de81dbc1 e608bfdc1dcb6e0083ef2f07d6abcc80 -9a23821763a81a05fc88b144a8abbed9 +3c7eb3a309b7b07b8a64dd1c04b1e652 d9cb53a9d7329a35ccba6560d05ca39c @@ -7518,37 +7519,37 @@ d41d8cd98f00b204e9800998ecf8427e -93a59cd805fba8d1d6095ad340be661c +c60d0f1d436438bb9b08706282836b80 +67e5082371dc15ec80d576bfb587ed24 d41d8cd98f00b204e9800998ecf8427e -21bdc583feb2f2e19a4d4346c3478bb2 -594c92a45927d193c44a86ad883d3cd9 +58a3b8ffe46325e8598e362c09ac0d98 e59ae2f28213717bf033509c23cd2319 a7759db1bfe7c33b024751dc31e4aee3 -41565186f319da6a9fb88202900f13df +d68b1ad6db5966abf24384e4d7cd75ec 009650d067516d02bc9c60b0a052d42a -22ad5830f5d9ff198141220a24bef157 +8e94b10fb8186808a8eb062d779f8d28 076903b190acfb6b170eb90d8fd49429 356d580c6e44246f6f3d5b8e1836dae1 d41d8cd98f00b204e9800998ecf8427e 9456dbab1e95eaeb225ecf3dcd7279eb -c927c3a5af49ffa59fb6a2677c4c2109 +2a20d41a59ec0e65e6b4b3965c14f0f2 eede74243020f191367de29c0d99152f -1db9c899499bd2c553f653218586fe44 +16b53a0f3754b77aa9518f33494c0d01 d41d8cd98f00b204e9800998ecf8427e 4263b103f7eaaa4e463077ab2f074a08 0afeef5ccf212bb105402750080c0877 -9eb6753507f2e756dba29e07f1d9090b -740fd20172d1db95bcf13d6cee9dfd7f +122fb026779a4a168cf075f42cf83bc0 +c6f3505c1e7aa4da227a54879b0d84ca -ddfff9e1f6ba8215d3c7eb765c77d213 +b019e434f1614515ba4f30fbbfc0d0cf d41d8cd98f00b204e9800998ecf8427e -ee1cf5f0486399047150e919c1f60e8f -67b1111f8d4bbc2d55a824f5d9bd5fb7 +7f32fdb8cd9febd23caa52257dc28a1a +7d1ccb1358afabbddb46c45d0b30585d 2d78040a3abd75948901284b3f558311 @@ -7559,11 +7560,11 @@ 20db3cb2d80f0305be2472c077394769 -65ec9fb8053d175a16e8e8b56682226e +d0583459e8fdb6b0029245ee38c70429 d41d8cd98f00b204e9800998ecf8427e -dde20e222ac2716dbdd88150ac73bdc5 +d90ed26886d85da50db6557d9320fa1b d41d8cd98f00b204e9800998ecf8427e @@ -7579,16 +7580,16 @@ 07cd846e2933b5d191f672bd90921875 -5ec06ed8aba4a7d36ab1e100b64bbf8d +44969a6487e6e551ee4ab6a3057e9c7f -7cb6ec8fb8cf260839005eea7da4b08d -be1cae8dfdd010f3115a54346c3557f8 +27af3638e711cf213d2b7edc33f5bf80 +82a86b991cb3bf4f791ae4d0d590c8b8 6bd38b6af505407d62c60a9eefdf208b d10524316d94a05190315ed2a537e590 -9ea87745453a76feb35ff22e97a77bc4 +9698e999326e603af9f0271bb3126e5b c1ac4d0440f0210376068d50d51c11a5 @@ -7597,21 +7598,21 @@ 72ddc5bafe07d7b1963a002ff2638ce9 b8410b68abe62b98765d35b9d68775c0 9e6bbdc99eed41d9480ff63f9c187e81 -66acdd22822f1289380e41dcf397e576 +fc788306c40f210227d440befeb605d2 d41d8cd98f00b204e9800998ecf8427e -fd17c930c79e9a8a5d61d58a5429cb11 -4ca5eac5918be641ea310584ae3031ad -f39772b60e2a3c23f78c15d6a0f90c7c +6b603e643ce203e1268c44f2560baece +495109ce3cd762f708dea35bff725ecf +d41a0862545eff600497a0bea3f1ab9d c48bf12c8ab59a7e5288dec2171fc487 766996c5832c22283f845d85c69050b6 b029262dc429f54b44eaac3bb3673fb2 -123a0ceddb4cd3af5fe6dd187fadf583 -9ebe7e853650f29919fdc8bc2f39e744 -c78ec49a7b88cd2983dcd8473ed0c24f +1f302e022d85d26a771d480ca57c3904 +5b62ce52c0ce74104923cb08c4a2c755 +e2ae08bd4f83213f865545056ac6dd35 43cc87a6b84afe612af178e9c0945279 @@ -7637,27 +7638,27 @@ 83fa2b36decac5ac73128df2630dc60d 71eafd033fa192897bfee1000d8340b6 -d160d6becd2eb7392c9c0383ef3d1970 +c8324df8cdd53f48c81f7b3806dea8bc d41d8cd98f00b204e9800998ecf8427e -46412fc11293b45cf092e9ffaa6830c7 +51b90418f6d0cd8efc0a5099c5f3f6de -73fb52e47e29e765b419418716c975e8 +4a171bb2d17569b4427873b3381ad814 d41d8cd98f00b204e9800998ecf8427e -257e9e35d0e42a715bde3a17c9285a21 +5f33d0fdd885d00af1ac8677b04af346 105834a4e145cd3717f34d795ed01677 -42f657f2123d9f68bde052aefbd6690c +c4e350405eac9404f23a9944a4c40553 8c7c756f1961be336a5783d4c841145c 543fe99f0aeb0e9aa7241f30fddffb16 -a0bfc0d07ca987521e9e577adbb63dac +e6f17c9ddc578856bf2fde5efc3fa2be 6f745fb918c6b5d413a7de84c6e54521 @@ -7711,26 +7712,26 @@ 39c29f1dc8e0f1d52719e3e723bc5c30 77a8e7f395a22f09a1b776c2386ade99 -3ca8cd717f585961c4e2569d7295bbba +3cb438c619f489160774b01f0d33d9d5 6fe5e34cc37004b4342377afa27fe78e -edacfc4adba56335ba781b122ca85308 +5dcc8f604b02e48a19d4938111200b60 d41d8cd98f00b204e9800998ecf8427e -555ab51f878ba5a0bdb7ae823a4e1bbb +a4d82c22f078008d2aab3964af135f87 1dc3d6a1dd909a8a58fe8eca47ead5ac -7d5ef7f6951cd1f20b4b94125b933801 -88bdf837e31eb75ff80df30452cada45 +87f5ed0a1e6d7d72a9347cfd91e3c6ca +a9c4f3b8c9d9d714e021836b5d7b2f52 60bdcaae8923681fb2920d8f926f2b98 1f88ec9bea577d80683b7e33d5edd1c0 59cc5ce648da64f713581c8952a82fe0 abcdf41603da0d617bee025c713adb41 5a226ae63892e8b2488ef6bba059d308 -c8ec889a12162203342ea2f9d78d0ebc +4a825f9bc0b4b91965e9b28f9e9de5f2 40762769c56a375a21683e8a96a8b814 -e0e37b75a0cd7a2838e27c51f6827867 +0b033f5995404a15bc6e106289183507 0e379c10da4f2f10c8a1346eec194124 @@ -7747,13 +7748,13 @@ ba0f6e643c21f0759cb555cc9d81ab66 -402bb6ce404e377761dfca23dd756c38 +fd70155d1aebd2f3e85de088440ef659 7b01b1026f28ec7458c2a4d48b261d26 -5ace4c009cb99d93b8dacc707c4f106e +e70a1c6f58e07f1ba5fa83f488aa9009 d41d8cd98f00b204e9800998ecf8427e -e690178dc59f75bfea9a615794295399 +0d897010fc85f2f0f42e9a606217cd38 7e19a2437daebd45de069393fbb6e844 @@ -7772,38 +7773,38 @@ 6d5ed19523464e46013936df91c6ed3c -bf096376a90da398924080ffc169937d +9568715bc1f4d7aa42744b4096afb922 a95d18dda6cd01128bc3a96edc463191 cf7beba0674c611eca3eb40103a9d56d -33ce05822fe1163a8ac5b2dd66a9c4e6 +f2ccb38e0d2f63eae9733c604a4862b0 be4909eb830f52517bb34572822210b6 d41d8cd98f00b204e9800998ecf8427e 2a2702bd2167fd28271eb4eabca6363c -ca47119b9fc59a74b514f8f858975d44 +8da3d77c235c7a7d054ea4ae7311e156 bb29d8dd50b7570b5744da807dceab8a 26e616b72a49ae4b326a093bd0713303 -10762e97669835e17d1bf3093e38c8d5 +32e6a6b4b2bc4a78d07dfdcee485c09b 289aeb68be3c5ff2a4cdd57a64257b8e 31431bfb5d4f361b35887e63a0099655 -a59315a3ff53510671eaef4b446b94b7 +e03dcf6c18969e1baea2d9828a30f779 3e8c8ff5959ed24ad35c169286978b20 -ab36de50d13642d7146b58755426e08f +516f6715e3e5d0e96d09ffe85cf3204d 14182aeabccd7c3a761d93d1564a27f4 -765cd4b94afa52c8240a052967b4fcec -493333b47c15951dac1921145ef15c38 +b7fba61cf5866b9933b7ace9bc4f9146 +09d76b5c0967e0be88129f9da3c37531 -375b90e729eba2d3af1eeaba42ffb13a +2bd1e1553a9cc566113d900b41bc0fa8 d6d047f9389cde6f11b9175ffda432ac @@ -7844,14 +7845,14 @@ af528677086b2c26806ac47af95d9d9d -9177386469a43b8d73bd28d94825b680 +4d8b4f0adacfa91ce36acd7ae5b7557b d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e -8df3e905e6aa6ea301e491a2c57b17b0 +59e41d25b4e9f234997a985ced825afc d41d8cd98f00b204e9800998ecf8427e @@ -7877,7 +7878,7 @@ fde1dac27ff95323136138883a8cb086 -5983a962cb4c48fbd7a4359ff4c4c0c3 +2fab1fadb7f83179967aadf4b5d4ddee d41d8cd98f00b204e9800998ecf8427e @@ -7891,9 +7892,9 @@ 33164d88351d201cc651f7142656c3ea 759762a86ea42322a44b7eadd4b76959 6c456bf952ac5c6889d0360ae3d327a1 -c0996e7365a5ee69f1958595fcf978e9 +083a136f4b46fc248af19e10563c48cf 80a28b7d54cfb242e531baebbb30e4fb -33b10f4a2f35375b1becd676a7dc52ad +4d57992c87ecb429b912f6ff7a518656 fe62c00b682dd677dbca4764d5f0fe97 @@ -7908,12 +7909,12 @@ b6fd5cc801d681b05256bf8b413c9786 -cc3c32b8ab2dba271074e55ca4f22edc +104960714a8b404303b3436ef291f2d1 0ffcb06a700db2a4795b2a1cad18ebe8 2b061d246bb5f2342b9867c346f3f1a7 d592551b67e9dd797f7a36a1b257684b 204000f10fb031ceb45970d4b4996fca -9e1b4ca0238b391cc244836cfa1110b2 +67269b44cffb3cf2a270dbabe6fef510 2accac2e7486bca7a2d57f646974d54e @@ -7929,12 +7930,12 @@ ea1a3bd45013d291cafdce135ebbd13c -06c7ff46d0d7a3ebe9907b6989a78b12 +e8fc223a34a1c80800a0140f5ed6cb09 221d0b581479c434f039e58da4718a8d a6f5b10b14e766e788351b506b6f6024 -4ac8bad5aec7558c0a274b89b723e8ef -727523f22aceabcb8ea2d063a298b4d5 -f8c26b1e8ae7b951e13d55ae2352a472 +cd10645e90733c7d081f7bedaa56b891 +9cbf5490111bcd1d06d0f311c624f40a +827c15aadfe78fdc44f51a5820d18693 b31ded35f3b4a18458c7233b20a5f0ab @@ -7957,8 +7958,8 @@ 07d2097f5a71a50b264d0b8454c2280d -2bb25c5563c0f23357ab8023a08c7dca -e90f2e3488cecc1b6e341ab344e7ca44 +344eb06fc61a81af1c48511d600085bc +fdcdabe7131abe3f84495b7b4ce2bb48 5172e014803abc5035329de011afd2b3 @@ -7979,16 +7980,16 @@ f47f735ec8627b7b3e9ce6a5e1643d4c -0e5f310426e76f3aec574418499382ed +79e09419acc819e70f82f56d7fa81d20 605bb5fb9f548a1cfb766c12c98aa303 -4cd75eea9b52e6fb329640d63a7dd0f7 +27fe10718d47636d063f37ef9ac4be0b 0b0532af9e3f441fe8f2e530df0e8b60 61bcd0fc159ba4ac9b4ca405006a458e d41d8cd98f00b204e9800998ecf8427e bcfa3b276dd79437d1d60139fe51de01 -a59c269bfa63c610542adca86e447edf +bc057e396358b8d68d513598117a4af9 f9cfd60be746eaea8b3e69fc3fe9fee5 @@ -8007,13 +8008,13 @@ a6eeebb304bbe571ffbab0db1d030569 -d0653412af763c9606de9dd0f34b4351 +7e0c6b54f531098e4f352f83f4d34234 e531ddc71cd65c765c78bcadbf10f8d7 ca8137cb50689abf0c3bebe34978dcf7 -645c8938ef1339047a5b5a7565ee8cd7 -9e4b5f538b4b011a677fc66fc8f92459 +abb298e664b2fb11fd634e3d3dbed05a +db7986081e563555bbb45d35b1dfc823 458d70e686a207a21618c43bb1b9779a -b26de9c3ceedec855d4d8b97a2a086b8 +128445fe765c61f01a8f6822e07dfcfe 59ddd81ed9bf99d543f6f3aecb613f99 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -8023,35 +8024,35 @@ 7a3a40afaa184399b3341c8d3752ec7f ef10d5d01e0c99da899694a920063a6b 87cd39aa024571ecab3ccadc961e264c -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 7fbffe58c311fdd7f2c94a75e32d3936 -d6a6457ce84ad79714bc94f782bd40f1 +d9bd6150df07f9517e4ca5056dbe663f d3328f22bef875e75fcc41b404ce8460 -cdec5d3c8776546b69853152fe04a661 +9ee4015d43e5e0d6912b836b06a13de9 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 95bb2af8fabef4d78ebdf2a5a9799ecb -d64c67ad98d5cc3c5136298f715b13f4 +8fa3145942e5d0df587b19b538a59e2b c3fb35dd0fefe93bbf0dfd8976709bb7 1ee548ff699369a2ef3328d8c3010048 6c86fdb742038112276b77762d104b23 d51def48233e07c836e1c7a673186824 459a9508eb6538bbf7fbdf224bcd4e3f -9a0acc7fd1891473f9a6cf2718032661 +aa67d5c5a46ddfc225448043268e38e2 b7f38fe9df82f9bfdeb39d490bcf2273 c5d8a435b760308bd0c43e3494dea231 bd5ee5b58b2511b8fe23e96db9451902 -f900bc4da42b2787cba9a6f55452a781 -f161037f60d05766e53c9de5bd442bfa -79cac5469ff193b50a56bdeebdd0c2b1 +3f6dfeee5347762fb5f9c2993d6fea12 +4a138c319788fb8de9b68cdf175461a4 +be603b1e11232e8e4df3956712576964 afab86bd75994dd422cde6c39712e684 3324c82b9c0e239b743efceb0b1ee4a1 -e5b065b4af6be3796a6569c47af06436 +6d984b6497a4521ab43b53f8ffa97239 af2c055b31358dcfbcaff19b8f32d741 0b811b8a0f1113a872111a69e771d294 -9f9793168de39c05c8f5e5c726db436a +8b9a65f71f3a9ea000c870a2a094b5af e1514692701903c4fa8ab6f93685fe9a -2537264c8e1cd389b9bc3c92a06e1686 +183abda9ebd7462f00f4ee7095c84195 0131eac3feaa89273e8e26c91c2cac37 aa3dd95196d0ec83718e74c22d0a0da3 e2e3cd92d8221808b6348ea0dce50716 @@ -8059,20 +8060,20 @@ 186fcdda038c22d40f7457eb1381e256 37c8cf292316d659b712e3e792776e3f 1a323c8a650df021abc1b586298f18ef -02fec2c9de8e3e7d5f8363022cab50b9 +cded91562e6513c973abed21d413cd1d 55f29464b755eabef4cf655705d4e4fc -34506588e5eeaf277a2b7666f947375c -8c70c9bbaa9d7d0ece06b4490223e3e9 +d7de9e65df06622427243a6b3ed53cd4 +c093fba925641be12ad8f06bb542160a d12217cdca71111f70be333c4eef99dc ed3b811dbf2f5f0da999aac45470a2eb -a48967c6d49dad92d63604fbfd43ff42 +cff7d687e53e56d5de6d6358ec3982ea 36d8c10a2ce5713bc959bebc6b9bb3af 55323f24685f41d39d6a5d297e3654db -fe29168a2d086b161f144a7a45f5228f -4659448c23672ee316d25165aee48d7e -1fdb70122b356116214d9085f4d118fb +6daa54147b7db543898545900eedfd49 +762641475619347539e2028a53f2ddf9 +62509f268db4b26b0475183f0357cd8f a338de2b2e184a6a79b27c41ef758527 c7e95ae701ec540f03a566203de781b3 d9a551b3b77910142a904b5bff66b447 @@ -8082,35 +8083,35 @@ e1161971bb06488cabe9066c8e827741 5477536cee0c749079f446676f85ba11 886b27ac5b94fa8a293aeae7226314c5 -012873909cbcf963a767fcee91fb30ba +81ed7b9e30bf240d51d7e60c65e169d8 8af9297add438b147e7144fc9f16429c -39b75d63169606af04971e67ca657238 +94cd6326697d1468356fd7860c279f39 abdc5b264864f9054c2bd3582aa7f290 -fd8f27a9544628ef7744cc9e05f5b08e +5824fe01751d0af34d9a3075de49ca2b d11b836dcf659c52b30c12fe751664c2 3b21f916c1cc442741493663d4d870f8 8d6ef3890b3855e9c9901f905906f84a -b2eec42b35ed8f4710d5db8413135f8a +e8df1b36eeaf2d3020a71b0e273a4d99 97af8c6ef82a0f244fc815e6e16ccf90 975a2947aca7feb0804787f73f8cfc86 7361cedcebec9c497149e3b40e60483f fbbf6dd97870502f3b527a7855cc22fd 171adcd57eecc43d8ebea5bd3cff21dc -f58211d5926e41a3cbee5fff27399457 +630c4c5bc0e842062b63ab3bae3d6ba5 8ff03a197fb775293900b1652cbc2cae bbcc88993e093b880a682371243cc500 28eb991ac8777246895a581c360a9daa -3bc4f67bdb281520dfcf17323442de09 -33cf4adfda04f564ebe72382d119f8aa -0aef838008e37c6fd20fcf5a2ddaa280 +7cb0a65fde8c5f2e2d7a0cb9519d137e +0c898de20d09cf4914877ebf2695dd53 +157fa0a114ad141c7ad556bc19f5bae5 72edeb3570c0c46201f53a9ecafea7cf 47f5032648762db635d3ac9e03848d6d -e938b7fa60f5c5bfd3b55f97f171585a +f3b0f3b7f9597a5081dd6901be2eef39 c1da4b8a0934373f032daa2da245a23b 9bc9627697f6507eaac340ce462ea48f -c76b111cb906703325c39c15944c9064 +07b3bbe8aa044d6d64bf25ecca5cd7f4 47b62e8cc7056a679fc3aace6fb6a863 -dccb502e8425be69e0c134f8450c356a +9bf0635f1b8ed60e7c54e7e68ae0443d 1f5d636a4df5141cf03332bf7192e96a 4c3b11586abcc5df7e395609ee7131be 45bc4e783f1c8f3b4cc8887ff320ac8a @@ -8118,28 +8119,28 @@ 6a019476090e0d2e7e18ff0cb90d8244 a9e2cc6d99ccff9c1f8944d41f09a4ec d70a8a5f266915543907b6d590b761f1 -9b0bb34b2f30b17595604efe20ff1ca4 +537f4288b80ea71ac01cd85436796b2b 5a39128e50a6a619cab4a84ed21fb5b0 -eccb4fe759e69e5f618c44a86d55cdf3 -5dc25c621f1361e7f14e3132108498c5 +e9b6c71ac37c6e7980cc53e276b15a5e +65b5c3e29f240fad7628e628e4f4b988 01f40ece71aa9db066160bf309b94ee4 1fb6c4f678f781062defcb85377e1223 -27edb8cd0620892d628fa9dd3f12c74f a287d462bc71f579eea372c586ca1e65 329a3456692fb25e9ddd96dba6698739 +14b937be198fc9c37d706a131f110c68 da1eb7c39da28b862a798f37efa7ee43 9f5ba8d00d619d312d40c07f38b35c6e dd8e45a37c5ef0fc6089df59605c284e -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -cb28a04e0c5427c7b3aef15674a67e8d -d28769c3031a9a73e168480bcd47d9db -6f47685830e644eb59c6ba0687de48a0 +df410eccf21d001f9f5e65da30258122 +5d9b7ccd6766e9e943b206c4e288cea8 +244ce95591c641e140899ecf82e3a091 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -8149,35 +8150,35 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -1067d88c346ab4405e0e9b3eca7906de +33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -26af5b43629c9b74c66c5bc87a6e9072 +78faa2226aeb9f90e52c0f6239002838 69cfd106af7ce7110c61b93f7f0a1968 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 @@ -8185,20 +8186,20 @@ f6118b412225605b9bfe2d33480f8f4b 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -c4475a98fdb1769c9d9e5166669b7181 +f8ae1145d1789cc4f49042e9c9b8c394 737685ba123e361bbd63da12001d1853 ead226130a7b08a13a2aeabf710b3b7b -ed765f1f9c28cbcfb42f7257ef562c11 -3da5e48b2a0b06504f61ea3682b61af6 -349b294c0f42fa50f96d7bbe36481e92 +7e44776be6e3c6d6cf1e14df5499c125 +2e6a497a7e9cc16c543c8691b7505ce8 +3ff6460227ded412fd9384126ad371e8 19c4c6055000b1d4fe6f5735d4c344c2 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -8208,35 +8209,35 @@ e1161971bb06488cabe9066c8e827741 045853f5d4a94bb75d809d8355dab2b6 54d7a28c58f4312aec39202174880572 -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e bbfe995401a355c459f71be7d355d4af -7cfb33e49e605b406c5c6421bbf2a6a5 +a8853724a7797b14ab7a125c5a64aa3d 30c6a2ac8f5dc2c78135a1d2d958c7d3 -45da21029e2ca87bdd2908b3904339bf +0c8b5fa7e69e59bdf0a4dc3acffced55 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 483de5a7392121b04ca4b28d9629bce0 -6b5e849f3d43ef3fef1ac53d781febda +9aa8f16badc4733edd5b5d1b099e7c21 a1314605a33f143e8730909f6688403c eb84b44b99e2dab255db18f924ed970b 9a2e494b0015d39ff38593c80af1b23f f1d4b49dc349f942ecce7845d2bb5562 bbf6109af99a85f4492dd98a94a6f7b2 -419100410b18cdd98d782b2e1255aeb8 +5650c49c3370dd17bca99b655f184c76 d819c152ecb177c120f1e3c9eaabc2c6 cc6c17551a0b45c91fc5fc79f276258e 500aff15daa34730554493980806940b -101c712ba386df265b891c9ad4ea22fb -971b542933b9754f2b5609e4f259550d -740c53836bca82fb6b8cc1f41a702112 +1510fab77add6d9b505698b3d2f7abb4 +9cf350ea476110799c0f33a2281a19f4 +802cd3b09bda10a75bbaf7f4597f9364 31e4db724dddc41b42b165ed8c66f3a5 e80b6464c4a540b59ab03e8b66369968 -530f11786adad3d90bf451044a293797 +11851279ded53a68d299e1dd00c0b7dd c6aa5d300ad94789a9f2c4cabc6cd8de f5e9da89cf45e535117232b359317405 -eddb8320ad57c12cbbf210ab239d7747 +19aa2f949963e51bfcbd51f21ad8838f 4b57bd5427c18abceb5c20abd89f5ba9 -dffc20edb42a674fd124ecdf32f168d1 +5cb1e21306f9b67ae5817cf248ea2b80 e39bff0a25907b8b65fc68ef96c7e160 1d7a55d13ebc889af056ef71120d26ec 119d9afb003f18c3adbfa0f2cad74211 @@ -8244,58 +8245,58 @@ 966183e32332c7b7dff8d49b850fadbb d7f5ec81233132fc3a20c1017759ef79 d783741a8e2aaf7c520dad108d7adb86 -9c8f6d33c14df7a1d429c42736e382ec +b4c45bf3fa493d056d9bcbba3eb94e45 bd3718cc7fbf6dc1b46753b2a07892bf -1d5f3e9d7246a709fe65900d868ae3f1 -3d660d20802ccfe1c5f98cb397b8c633 +9d370bdd2d27879fbffdf88d5b937e80 +7d428fe710ba23ac644fbeae1e05174e 6201731125e1425b9680ece9fa2f53a7 cdfa3838283c176556fd986e1d077a37 -dfa2c483f3196b480d592ce2f2e49530 +bd424fc217be0ffdbf0b3fd91b655237 c9310d0a5a4f7e1f6b85201c0dc2fc5e 6e04edde5694fc8e6bbb47aa579d974f -55e66771b1d42948f2868f87b28ea19a -6292882f096cfcc3cc8d9ccb5c56fb9e -b6a9eb4794d3a2a8802fc9f3b17d7652 +9d3c42abc625b3259d4e5371f06263dd +10b0931c4d5572b126974fa14b0fd515 +8fac83bae24586fbae9330401017253d 74a51ee9815a4e81828f00e102f2b977 24c63cbdef9fee26ca73e39677998398 f4edcec9ef405af2798f27a4d7902e12 -b83c85c2ac7cc0c586dce2cffa73585c +f70756497c931aadd89edbe485e88fb7 f5e8ae5dcbf8191e1830afe13c85f33d dc628590b54606da6a6d3510ea4c94d1 86b10d96c3a969dbf3a625859ee245fe fb4f2e0c1a0a003c40b83cec58eb358d ab63ebe42a0eab6813d2d36da0c9016a -70b6e1129901ac9b543fa66e73a27a24 -495f4b27003717362aaa6de90c815562 -4aa3d1d0ac618997a2cce09cda2b6189 +236eb01d61d0a87dc150f17fdd070f65 +52bdee3176be9266973887c2b2862dba +c75cc3416f15f643240de33667382a0f f8e9d0e2f7ca86f855a1fe6a39eab4d1 -f8dd616c5a9a4702979b1104c3f0c4bb +09f6758e377ebd553ff2a713b1e14f90 1461952a71c3b0dab73956e09db90725 7a75cd5ac5590263657b0fe81c2e9686 742a6fcd6d5322ea47f1f7c8ecf85bc3 -7b99c6b195af997027c07bd9348c7b1c +1a7bfdc52688934752339f4d77e7e84e 4bfee5904f91bea7f89e69b65d84edef 41880d289bea521ebd8f24215e6d5f07 ebf811d997026c5833fa58e181a533ba aaaf43f06ec3b56fa2ce44165d8b2227 ece08cb7ed6810cdb3f0c1c917ec986c -ea56f156441339dbb3350b2b713c1c05 +7942ec5d8cbd1ded094458fae7db8f64 7f1cf10b121b601826c8160b97d9201a 519e04aa0c92c6e37e9008ed841bf930 eb93565549b324f373ccb8ae14a9e82c -8faa9640df0ca25dff9659b278ed0254 -2b5545e5ee27848b757433d380e9742b -985c5df53a530f1723fc45831f2a5869 +ab0531ca41b4d5a104290f4089e35c5d +4620d5383d98264739be856cdfad21fe +526eded1162a09941869ab46ef83ef71 bf1409395306f2b2924a67beac05dd56 7ec990a748195e943c1d78619a7be987 -4de31a2c43986cdc7cb77c46af26708f +ecb08089d6cffff8cce5bc9928dbfda5 e0a2135bf8ba78d71c0162491021d9bb ae2a39ed84e9a8b31e97d34efd50bf79 -ca705fd29809958bc1eeb8b1f688fcca +e59711d75e0002d1a4c428c12f78ec86 95562f393025b7c7156e666cb8b45bc6 -0ced80d5d813ccaca1f41f1753531813 +9be739c1831b7c878e30e31cb6c581bf d08d7e1099b10c74bcb32199fb938a3d 2ba914ba1f287a51e96117c8734d0370 98035fec612b1dea0f11fa299377d2bd @@ -8303,10 +8304,10 @@ f84dfcb30b9046145c153fe1e44201da 599dc37a15c362ea63096dfbf7f57bf1 6e89b691b2b736950d61f73d949326ff -b71030bc5bba54b2144978be890a7564 +ae4b679a3888906e9e0544dd5a54d83e 1bb02f5007b998c89755a783129afce8 -aafc30dfe9dc2d06aed9a2702798e32f -cc3934b189d75f2b73e5032787d385e9 +0e44777c6c6ceaa9aa7a58d6d00ca07b +df5f2db52f342e27dde87f01bcbd8e7e cb066077c3f9a76a2d5bca265971d2dd 98e1082970a865bf1264472c0367b2ea @@ -8314,12 +8315,12 @@ 83d58d7245d7473a79ece8004d881b7c -2411da848b93a18908d818d6c8cf7cfb +11daeb226361692832cbfc06ea1f4c52 c4000c3a5f961950001bdbf0eada3ea1 7d36ebf391461a17289c2b5be7cf3e85 -dccedd0fcd31ff66067bb3b78817239f -3ef36a586a1d9f9bfc2f4f1a6506256f -d52921b3a75d7ed7bab3bc3f294d9b3d +015b28a27d7c57e400d5d5b391e1fe81 +dc5d5cdb1ddb2cabc4a153dc8153de91 +fda1964002458760af39fa368db41a5b f42193f1b045aa8b255d4c544bbfbffb 577770bc1b047e531d1c8915b91c1b3a f2a97948d26385dbf048ef0cf2c525d7 @@ -8330,35 +8331,35 @@ f8a9ee9349754eca7dd8fa4a3b30923c 208960ca78917b6337d736cd20344a7f e982533d31e1dca35dde12b9a2eaff16 -4cfb7140abfc052ac0566a0afba34be3 +e7c013349082da3d9d5648c430c5fa17 0c4829c41c9d83c00d52e4c9c3488dc7 -1e1d3404a2fcbc0cace87d93e96f45f8 +2b22c61e3f2ddd574c1cfee86af7d957 426904859bbfa17b03832bb45bb04199 -eef2e0c1ccd6acb7e0e1904ef3d059c2 +a405559486829c7050b0479b2773f2c7 c5c8e08bddcd4b099e4421c7b876d3ca 2bad6855dcaaf4b18c3c92f32d94893f 81bfbfd57357a74c3f3af6987afe6f12 -20f45c49e3159e93486848672ee4650b +6df89d2d8ac7b9a5f06251fa71023e8e d2eecb1e8e4fb988dda81bbeb97746c2 6986b606c49e4c713e68f9e22eea0545 7d3d3e6035c01723f19d42755a382e96 0cd221c2bb64eec3f3b8ba5efd62ea57 dba59ec36d373ca112d6392ad83b0006 -3beca55da4f9ae261f9d3fca669955b4 +dd488606462dc194ebe947c4dcc2dade e9ad12e8ccc33746292e9e23f1b8f140 cba7b7e8e5181e09cfcc945401729cb6 2ba0518b06449c1440e2b4e99f206b4a -49b7c419791aa0028b56ab45bb62634f -8355ad0111adf6556b1cec4c62538690 -fc1001f527b67e54f57d665154d48fd9 +4887a6d3247ae186478768439e194ef4 +bd2a0c503f02d6245394150b274f4d3e +5b5244f55e8874f9677d30a8decd9347 2a5e5c20e225efad5f6b841ad0847617 260a28780209a054543aeee4e3431afd -1f4f2ca64df801881a31f2755eedfd0e +ca1db9bd5d22039d6b84051acb6a1d96 02117a18e23e6d3fa6af33209fb0e6b4 491fa67114d3c382ca11c8beda1d2481 -55d16fcc90c6dcb0f8362620f0935725 +5ed950ce4cceab6d20489e7ac57531bf fda71a80dc11279fb51ad436388c1256 -42048bdad6ae8e244586621ff9d8c7c0 +e04f36be0e265fe419101c6ed96ee774 425ba45315eed3b973749855951b51d3 f0b4dcb4ff338aae365219b7c90568c9 0495a2ce04fae425dc6a1d880ceb1dbe @@ -8366,20 +8367,20 @@ 51fbfe71f84cccf26bd128b1e071841b bd3097dcdf63e182214dda4005b47019 3938c337aa3ce2a9cd50c8e9e9d9628c -30d570ca2b7af77b9fa62bca7e07e256 +4a0090b0404ea085edfbb456f8bc4c92 b3b43d5b59898b53c3438acc767d5fb3 -d87b6955a55d798e523b4bd581d61039 -9ccd3dbb24eab3e747078a9fb34ee57f +8fe26f5460eea59779e88aca24436dbc +6f17157fa2d3d23e0552c7ef33efd818 5ca8cbe45832b4da7724a6fb647437a5 381fda47b3c28be5e86909a54ecf6f72 -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -e4eb75dc75f96afc6ad66fc134cae9ec -d28769c3031a9a73e168480bcd47d9db -f9fdefde89109c257a1cc03b88eb0cad +e6bf5a738bcaa7c7bcca6d4aa9dedb97 +5d9b7ccd6766e9e943b206c4e288cea8 +03ef6810bffa7841d4a99f232564f8b1 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -8389,35 +8390,35 @@ 544d1e567d9c598375d0b2d08cf632a1 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -68fa7af7e010320c419980e6b4cbc524 +a4689ed797b5bb6aa0712da0992c463e 87204bb4bc4b2de9530578fce343498a -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f d91a412e4582686aee55e22120f10420 a63bd5dd26ac98782168488c85a94aa0 05a11b19b5162789760c9838a936df75 7b66369f2447bf5361d9460cd162a092 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff 453b10bf9feae2447a1e1a28d2d6ed05 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -cbddb18a68d3ae03c7712023dce183d9 +439b41e3fa181ac18f501a9f331fca6a de65eb4e97ed530f9a08d0322b8de7cc 3e3baa2a47af2ba7525ad71522d6ed85 3122c8015a2583d254fbdead8e4fde52 @@ -8425,34 +8426,34 @@ ad5d0b141c1b1009144f9f984bfc6e72 dbe76f9c3c57b312b0d6e217b9f2a1b5 bdb2338095a4ea340c6d023c861169c6 -59c850057bd7e816c96d820ff5cc85b7 +bb01af22240766173cc185e6857a73a3 678a224c72ab87f381b25228890f9eb6 -639c0b69d6aa64ba443fcb3c330c73ba -d6ccca2840c7230a4d36fb3d1b0d55e1 +9cc0a9a23709b0640fdc94021a6b953b +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -28405ed52fce01d01c2677795e56abfa +e422e39f79913300450eb2b1a534c0bf c3e50ad0d4c93692a2810e136ada70d7 62922eb1ad1501e02b86da4f0c8f1126 -9652aea864908b3b0a6be5444656d0a3 +54dd8fefcc17f9df92c5685090720478 a395d5fa15b0fd8a40e70a9a71e1df04 -a85dcbd477c1a6d174ef4cee950239cd +51de93aa4306f467a0089db4d2ffe5e6 e272b24123a940834eb7384c732c3c51 e696620abb33dd46cbcc1d87e8f0abca 7db2f1cdec58e462f71191b33e61c71c 8cd10e297876e0c2d47a576dfcf61a2b 711b566364586ed91ad85af0fbe5f845 806ea2c3f875c43ad984200eda43655a -e1161971bb06488cabe9066c8e827741 +c301b029c76cb799f86ff9c9861ed8e4 9e8dc82511a1687d973e46fe447e61dc -703c9e2197c7a076929db31d1145d56e -cce523f0de9f4c45020b92648a06a6cd -2b2a2539bf08025ea2794371cb5d5edf -b8868a69529f278c95a3bf818db0c406 +8fd152ecbacdacc82216f02cb6b5a2ec +fb330418c81c08843a8ecc7b41911c3e +0a95085c8a3f3efcd5a63702b1bf537b +1f09d30173ce97de4233473c26991e67 d9472c4c816f496c95e5f408e8465767 -91ceecc5adb10af0748054a042eca334 +db70e7c77f6d301c06248b0884962224 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 @@ -8462,21 +8463,21 @@ 081ddaf3beab038b809eb6db2957285e 4bef9d9f98b859f810c3c295e4494498 eead927af63207df007d30bbefa0bb40 -90982da369275d6cbb5483c2211c128d +d7ce2327d263736100f77cd6eb4cb24b 75fb4c310c4f0554d3ac9859d0c5b646 3314a3c5291bc6ae803c15e9bbf5198b 7ac550b131a480505f0160feb1984344 -442d3172e25820ddca0b4d7cdb60b432 -54e5288693136e0e5292ec22a2cc7593 +dd92cd5ed8097a6e9c9695e90cc9f360 +22ef825d97a6b50b40818f5ec3d9bd38 e32ccf9a79a12abea200e2a94c2a95d3 6f3b6f771da549d8e22263e795ddecaf 824683c2bba8c209bd757096e7b7e21a -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 239bcb951d596b8d3481caaf19bf8fb7 fb5913e34a812d5fdf9e25b8ca8c9fb2 -22407510fd0591eebb52ba854bd316ed +06dbab5aa01cfd24ae96ab470102513b d4962dbf14773e0e4e20fef6291149ff -0fc4e535a4924bf656b605dd4dbc89df +f30b21c6c169fe48e1f60d808599d703 58c41f60235ea1a5fb3991bc4fa6a24b 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 @@ -8486,18 +8487,18 @@ bc3adb1572566d2f86e728581bf4e7e2 d107b7336d609d8147c434d9f2e7ff92 449de434949a3e2b8780a87e7b179d3c -73d135606332d659edf73511304b93c1 -d6ccca2840c7230a4d36fb3d1b0d55e1 -af92ba78b278c5f5463ead24dfe967e2 +d40d1b7a7b953ff9facc32e3abc8f331 +e3da2efff4a9d6b182e61859036a1213 +d441c14fad72488f2b186bb3bec864ca 924c656e4301df08646901c0ff6971ed -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -cb28a04e0c5427c7b3aef15674a67e8d -d28769c3031a9a73e168480bcd47d9db -6f47685830e644eb59c6ba0687de48a0 +df410eccf21d001f9f5e65da30258122 +5d9b7ccd6766e9e943b206c4e288cea8 +244ce95591c641e140899ecf82e3a091 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -8507,35 +8508,35 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -1067d88c346ab4405e0e9b3eca7906de +33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 4e186ea8084c33de3fec3182f57150ec fb5913e34a812d5fdf9e25b8ca8c9fb2 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -ab59ccfab508dda7777685368c84cb00 +5539cd1403e4efd60edd5498b95e5144 58c41f60235ea1a5fb3991bc4fa6a24b 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 @@ -8543,20 +8544,20 @@ f6118b412225605b9bfe2d33480f8f4b 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -293f6f70ed21872288613da39c6054ee +75f7a995a409dd82cda1129e31244bea a8c0d300734b6d141fea36463cafb665 ac0b80589a46c746d461c26c203976ed -d27999cc431804c16215cdafbce5c7d9 -7fde735d55748e3071d697e0000d6f84 -7f91b1e08386bc1ccf81000df6362a5c +035e6eb42c043ba5af6accc410b52b11 +301653ecefd6bf66f64c9d1295320592 +199a9c93ab681670df77a92e8a152891 bfefaecf0b2d4c3cbca546a629f13a3d 07bbf1314ee53209e4d8cf452881caca a844ce312e01fb23c7007783d7e8444e @@ -8565,58 +8566,58 @@ fd3a3c865fdf8572f4afcb889760a65d 39015974e9a1c6c4589591ae58a154d7 817e3122945ecefbc4ce8abe613858b3 -320756998b34dbbad133e8cbf4861b9d -353aa0580164df6d5075cc259b2d84a8 -8a7d8cf777dc50fa3660627be69889b8 +e17c63b9d34d92e8079dd835dcfd50e4 +6c361dd356bd383d023ca8031b4ad2f8 +31898c1fe7ada24be26bd7142e373e49 768b38f2f8ced6fe7878d67e8effb5f3 -5832b6a09157d21d2eccf52d31e08b33 +27e34fde56947d8ccacb40d95d6d5c74 0d0f009398a7487d59b485e07c6fbc73 -64d25ab1a40b81ae2d5949bda94e2730 +e70aa14d470aef28733b11c4aba13fa1 e5f10f65ec52fdd1433f2a477b70e5ad a5affc357e84c82d0cb507e7d977faad 6b6af95ceda28abd4dc15b6ca31163d8 -2915a53bd07481deba02d6cd6f8b961c +856330df4d912ce65a7471b677c00e1b 86c9af02e6afad6b682cab386e7ea8c9 3edb04f22096528f3007755fdb835f19 -064920be8f5b0312edbedc96622f14f3 -240a3341955fe44f0da57a71b7589a61 +7ebb4c84508fc27b412111a824347556 +64944593ac8346ad7b11d39a2271b7a4 4c9a10303debb2b3c8bc16ac22e3eeb8 -4194b2399ed28b154e0e3489ef84ba9b +fb9d20ab22467a99935a21ff18a27835 0fc0876df57f7f77cc4ea959f60cde11 87d2058dc22f63411ce8ac827f7448c1 2b788321ab02b92fae511a41d908ee2a -8de0ef61605118642105ed2dbf0491c6 -1f01a54ad4c168e9e66e566461922989 -ba97db0e79f3e75c45f84836edc73f7e +11e3cb037686b2cd0b7df9c481590312 +9ac152e843481d327aec088d002a5cb3 +694ca7bee57efa02867473a6d8a2facd 686ec6633c3b45fa9982eb392deabb4e 71355302efbca5596c245b4f75b1a24a -c7f24384d8884f7e84c1e62121174adb +ea27c50d59f4b4a016cab14c783ebfe3 49bb3d81ae611eb1f8b7868143b2c6e0 32e21134466b972be3ac1268599f9b5a -c765dfce4b06838518cac4f3dc5d121b +a744bce00ed9a1dcb9d55eaff5434e7f dbc7149f4d61e7d862146daa4f28d9c6 -d815d1f7c22bbce468dd9bebca53149c -f7d220fd99196b561da1e70abfb2c5f3 +7de1eea10fcca31f68d2925ca4c266c1 +c930ceecc0a71f664c0953bb03824138 9cd23f8d97fddad9f3408b5d5152cdcf 578c7ef90ce4f50122f14d6630079c47 db18fa6d13acfd83d28575f83a3f395c 889dd20c43597110b85a88bf6485ba60 3226fe6588555150ef8772f1b2c1459b f4b0c998c31f5889f65deebd633f7fe4 -02776a89bf20f0da9270bca7d5169d9c +33f56a87ec96204fe40ffbc69fc9aafe c6f42df909428c4ac4a2a5a0d1020d2a -b5ec65c7185fa921cb1d311ec252a46f -8be351bded3f8bcd57f13430353039c4 -cc67b860a082d85bd800b44bd1fd02c8 +4aa8fd6ec900cc3a9dea82f633273d67 +9b8daa5ee37a6c06c852d668290f1fcd +a9fd12754a461c731ccaf3bb49125bc7 ccd8e25db8a9a768172fcd2e45b95162 -efae81605167f4b13a9e601e2fc68e89 +6cd8fb971c3d34ecb6cda3077c0ec82f 223494e86e72306be4f941b847db565a dfa97a9faf2ba1a451e553c77076d2a3 -13da9ca0558c39a6bcc9a8ecf753eb6d -d28769c3031a9a73e168480bcd47d9db -9da9f1513bccb90dd5084dd11d0a5804 +aa2358d42179cadddd15d8352db5f65f +5d9b7ccd6766e9e943b206c4e288cea8 +f1da541989d72a37bc503fa1ecde4e6b d4b33c76f50f3d94ad1af21601d68e7e 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -8626,35 +8627,35 @@ e1161971bb06488cabe9066c8e827741 e8510da20738abbfa73214de54c93984 2d785842413a38762fc194334e3633a3 -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e ba1e5153fcf6e96df24487f8e7a3ff83 -06ec99d55e62568147360caaa0ce4516 +36fe95f9d0f092d61a637e11e3c32a27 c0c0cda5b564e56624844d49d7592502 -0f53b7c55ace47daf4513ae435be7c58 +05f1523ccec48c3ce24b630b960b3a42 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 e652cc0024d38444e191c28a95943594 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 3d8ba71a2cf2af3c2a9e9bda1cba64e4 b1d534a15eb4b0b99bda0de853ae40d6 be2a6591d6bfee711de3d3df5e202388 05a11b19b5162789760c9838a936df75 2fbda69e2a3f012225508714b51c0f89 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff 5826378cfccf1f9dc0798b3357870fa9 fe515bd6d1f29593b84f3d34109f039f -c04aaf1307303f886ee22942e61c6504 -e6d02cec0a4638b2773300b037dd4e3d -07ab30748ab21f8dfa29ba90a65cffc4 +22fe87d6626de9d7ef505f8997309e1a +030dd07e74db277689a78529dc1186eb +254a30763f15f9f555e82ccc4accdbac 1ca4e724a542dd90368a4612a878aa7a a5e8c5e7b6e275f6fc080d12bc66afb7 -2efe41406c0581b1be9b526319c7bdc1 +cbd8a157fa609eec0ae1d041083cbd38 262b3b0bc7533232290f81311955da86 f326d01ea1f9cb89d96aafdbf65dfcf7 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 49f5a91ffbc90b04607fbca87a866532 -42738b111ff44852be475f434648a827 +de489808a43df892e70928d6c8c1af3b 587159bbf4f62528945f90269c3a7f53 71976afc3ec5e0f9c2e3711d8261e0b4 5dc4c70ab6811882ea50d20e2c4ea6e5 @@ -8662,10 +8663,10 @@ 9ab8faeac0f57da542c29bf3cfef097a 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -30b4b7f1969e6f024f05a7a1a53d87cf +d3df7cf574504af3ed4feaf99bb5e468 449de434949a3e2b8780a87e7b179d3c -c2c9f788c8b925e1d0a624d684e40ef1 -82275f37908a5c071b1202a80181f4c7 +3a1f51816608cc8b2c9ae16fb92b4ec1 +16504bda24ef73dfed5a0ca25a2649e0 57e911f6a4818352cbc9b14842fa6afc efb80873052a0acac270873400da3e43 @@ -8674,12 +8675,12 @@ cf387e494e1e47b7da074828e0994d78 -f61f5d12a0de298facdb5d1bafadbb82 +00d770ac36c1ad6b43a34d0f90f45a11 ab07c46fbd99585cf69935bef969c5d5 0dd290bbca23f1341e63156248ae06a8 -5b4e1c48fbb961bb21c9d6a8f9a82fab -2b9dd79be7b4c13f52659d64d96b9ab9 -0d2d46e65d50903cf9433eeef56f8a8d +5d79a6c5b00b1b46d1f52b4b43a829f6 +198b3a29bd95db8f58b32d7db4bff003 +0e42cb9139c1cecb18bf40882da184e2 d72639b10d0ea524ad308f364518272e 5f9bc55c61786609f6d57cc987d8f688 f2a97948d26385dbf048ef0cf2c525d7 @@ -8687,58 +8688,58 @@ 4eb5ad81317fab87396acc720d75138d d01407b81e6e2b6828c77cc12e908df7 e1161971bb06488cabe9066c8e827741 -83203d40c13a19987fcb1d937e9409b8 -87a7bfc99b2cebf02efea53b12dd24f5 -a4b4a542dba1edd6f5bb5d02dadfa408 +20b3e0e6e75fd590b98bb3cb3773ea01 +e37b2888a049752461749305cba2261f +34ef2a5c01a6de0d058eb647a73cda4f eee37a0b37da7fa689ffe2c8c3af7f41 -b9f6e6284f0f82f234df1feb997ce0c8 +7df456c127e3cb8ae8ae1a74f56c9c16 593a0056ee80a54a01c01c0c266034d4 -370af55511cdfa9b9a78506c663e4ef0 +c0aa0c1b0a8218a9bec70fd09f811600 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 -c9c49584062f88b105238015dff4b3c5 -0f4ab2ea10dbc7c437ae308fb67659e5 +c055194f1ab2455af2250ede540f75b3 +df87ce706058e3da66cfb2d15979958b 8ed0c3b65f002cc1c9ee534820e5f961 40e0c792b4859dc438412503a3cd5a5a 7d8d7ea2cd51941b244855a8c9dcc5fd -c7b843e129eed816eebc3b33c8c581d3 +2b8391c74ac95a9c89c539f0e332ad49 b62ebea33a09fdfd3cd7eee4ced9187a -4ef2a398df957cc92f9d3a783d0d14c9 +db17b7dddbc7f8f6c0c0906c8b8bc62b 311ad06ab23f03ff3440597edf1da3fc 0edeb4fdfd326d018af56a8424a10428 8fe0462446378e7cfbc4814a66437619 -077e5de7f1613a74127b71bbe0ae5af2 -986f193b75148985e400458932ce27f5 -368e9bbfd6cb02e5b1df2845038d180e +48a90a6ecd1210a0f60e8efa08299fd7 +120c2c37e7d3db4cd41824139478567e +f074e9bd2d03d456bfb5c45d912515f9 15558c69fd903afd9e88439226123622 768f3e2b92cc551d7136bbf830e93951 -562cbe59e4d2e7cbc06d80e2861e381e +1085ef3d0869bfe5d3d113ad6d651da1 6312dc067c98595bb72d77dfcc9344b4 95c15ca3dd5f1f6760ef60df52b6dac5 -e10fcdc41baa097dc2682b672bbbbe80 +1538105a599084c46759fc0103f3fc3c 76660e9880edbbb9ab9234291381f6cf -7798c901f7a7a8d6e2eba93d04016aaf -5b04d03372b3a6fe011051066ace2061 +8b75cf8f0252a48aa1c4d2af802b17f3 +575d2dc8514dac008055d79898b96b7f 2c7e63fd6233af8fabc598cea968cd6b 16e0a85f28a66c9fe5ef46a42e9775cb 536398fa35f4c75fa3c3d65c98c37939 b0d636e02a31b72a5cec289b72265f29 169b60e8323c73a4dfe741da1df9fc10 92f42144ac3a3507ef0270f8342e36fc -cc70e432294df0c4e0c23ac3dd464f64 -2704b5806da1e05736067e507803b5df -55184aecb10aa7707fea2fe1a44db436 -f08437982ce43b76debe15d553237f6b -36aa8267dba9cfdf3d815e99b67f1a0a +335c7271570470d0a11512be609e3a45 +312c298b22e1902df441bf41c0598c88 +bf2fa0709a1afa93c391eef32d37f171 +a9761ba2043c4b97757891489f325dd4 +344df4d83ea29eb8f3295b17040f6017 db1b7476ea8ce223faa772b7f66621b8 -b51b1562f8ae77f6b6e7cd4ecf002ccb +a28caa2416a41f9b818505186c025c07 afaf8c79e4a90aa57382f99ed2d40f1c 67ea5ed5ea373574dce57608e11f429d -d632293e7d88e518f8b7143d0494d86a -16db832816a2267e7f273f51eb241a9e -fbf43f31c84d951ebe07d970d8cde86e +236896e291993cb701f29f4dfc562172 +cb363e312cfa50f3d9536bdaf33441bf +3ca9d098eb608fa5c3069b11f475d881 e5e7ed101e5fbf690c1f58d77b666720 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -8748,35 +8749,35 @@ e1161971bb06488cabe9066c8e827741 0ff5cad40b13007a6e4dd81f9bd72dbd 9e50d916c35aa824279f0ca09ad90973 -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 73e794ac80f6aecd1298a31d38d54de1 -510cf62c55ba53aeeb7672dc9e44ae3e +1116f9450413c4fe11aecad38e8ed25f 7e2ccffaf9bf9dffea7c800c687a3a6c -2adb456b84be57fa13971d2604f84b15 +97338416f7ad4bbdc93a194b4a1ca013 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 2104a3716b6074c739b153108c99c597 -cc7ce504ebbf3f1c869b43e2a291ab49 +9dde1229f064c66f6497f31dde78906a 6373b95c48af4f71972938535912fc8a 367f6bfe53285d7880def87ab63b790a -3e14b489f3d75ffd4fe3232a30fbf32c +756ba0b32450071ed8336d6d31794f2e a05af8369cf1eca3ea4b3b0cafa3ffed 1a5e128366cf4e045d2679f34f956be9 -bb7eee56d6b69864c6bf5d642ff4aa0c +4481308c948517420735347eeb7cfdf6 69a140a13b73949262053829615d06ef 02289e9b37a7aecba5c0fa022f167487 6dc685615964d68b3ccb2f7d08058566 -8cf63e73001d755995b6c7bb14ed9b3c -1155445d4262b2819a1492a0433a6349 -fcdfb65fc8a5423123b559c5d90024e4 +05d052d88d6627ae08917327de247894 +ff2a1e1463a2e8f10288639a2f0e3175 +121f5d278e77c82d476ddbcaab81a331 d35a21763c1765d888ce5e9f7192d161 b1ae2db4e6abd7b1b88a48e222cf37a5 -7ead428697e882bec8441e992451df12 +a04d9cb8e3a3b5e923c349a2dfed9290 2af14f6c4b858b8816b24c596aaa0888 f326d01ea1f9cb89d96aafdbf65dfcf7 -de6b867af243e2a1b183dc35bcb1da6a +df7d0a03fd8a798030dc7f885b36844d f07e3aa557243cfef5ef06bdd8dba07d -e441175964194c31afe16fbbecbd025b +062c661a13250ac4e5739505ebdb45b6 5dc5b1df3c26f08416f27b894b89b548 d9f11c2cc6a7b5929a915d7a998e925a ef8d5f107a66b6aacb79a8a4f5d01757 @@ -8784,83 +8785,84 @@ 7403f69899649448cd99496d1332e3cf 37c8cf292316d659b712e3e792776e3f 152145bbdd3b66b8ba05238b8d6967d6 -71ddb04fc7ccda7d2656973f11835e71 +a3bacfe77dbd44410c277a003246c307 449de434949a3e2b8780a87e7b179d3c -2db4f178d22b107559253786fc3e28fe -59b854d5df17487391d988a03411c366 +5f0890bbb168309b359831a191a3e8cd +ea7921a38541879d8044e9729c9e87d8 98df0b16465e8526f1a34f0e24e1d25b f249c5416780b6370b92514232af8da7 -6511ef7fb6fd78174b20f9d85c71a560 -c314184c4bb623a8192bbe69100906d1 +fb8b3aedf89e165288efce917d9a77fc +96d264ca8820d06e79142a24331876a2 236388ae2d5c562bd3b7123817527f73 -e7042f2ce4098880c12291884e04242c -5db245e72998c7b346c40c00865c73ae -08d0723edcad14a4e78bad53fa73c36a -7e70dc424ad32c0d9d125be95e816999 +9481dda9d86de7ce90b2088e039eee35 +0d26a4183a05beee36f73348e05ac1a9 +77a1476e5e41674569d8548428330d9b +7372240ddcfd567371833e17c55cf3bb 5fd0cdbdc0238bc2f9c0fde2e1cec05c -f2a97948d26385dbf048ef0cf2c525d7 +45ffe99a918a7bbc4a6042bd1f7ded89 49b290a1c41d5e4863c504ed6735dcd3 -29926b338a8c2da41b75f48271ab7983 +6ffdee3464337d9022910038309669df cb94c875e29680176d4d3dacda770b77 bcf50b7b8461f7737f70e507955a7832 -1c47a48515fe3bf9a50de96a710d629e -29214f37d28718f584c66c27c3bda1e0 -dadeb8e8296ae894a2aba630dd2980b7 -c42a3d01ef8e63bd31ac98664062ec90 -eb29ac6be1fc11c825cf4dc38c739dbf +de0c5aba2f753a8f85e6b788eb249940 +bee295ded961028412b6ffbc88216961 +3b895bdcd4cfc1dd6a583868daee6ae5 +13885e7bd616e8210d416328c572935c +70924f10fb1a31a7126d3f68d520da3f 94bb9cad9889690d55670af89e832ee8 -4a0737775487cbf05e8ba8e3b70dccd2 +1bbbd210a5b9232c6e58fee38086c5f8 4c7673b351fab33e0a33fa2910faf0d6 c36fa900ef2e082506bccd1fa51eed31 648a63b131c0b8bda0cea5f5a5db0aa0 -d2ac1bf28717b56671bb0405d04f797d +d19ff90add77cc081a9daf23f5b604fe 3080ff9fdb247eaf98b234710abdc34b 6d4756da26d3fe5b74a189472acb594a -d6e23817a26bf82bea9ebc34f9b0e475 -cccb534a61e2bc2c2aab757569fd347f +16290ea856cf8aca0426f508cd3f69d0 +a5930a01fca7a5501914bd256de7dfad 8b1f59559c969a8b8733993c72569c3f -dd05d17875c4a6d21a509c57b8c389fd +91bf3149aa21917f18b1493c6f2927a9 64d4f3497d67b4e8da246b865501955a b66283810f815e888bc6f5ae1b52a6ac 07831ce10e9008053282872d7c82875d -e126944fe832cd26f1a2688fdc66ace0 -4853f45c56ddca2efa7646cabd131506 -bb32f55ab185faf130bff5d5633fd095 +e0b38c5103c67e9644cbc54dc2d940eb +448607c8896fd564a903155c740fb154 +77d571e5b03acdb7a2029a4f9218a323 a40157ef24e9a8c6ddfd3885dc186a96 ac5c655d8e83649b5b5531688024a9c4 -30acb50baeee01ceb7a7c01b996dc2e3 +0c9d162545da4751dc3126316404b496 3533fdfc61408e851bdb68653ea870f0 cf24f0f04a6026a4d06cdaa7617586ac -5ac16ef83b2bbe394cc206b1332c1a01 -a31ceece83cc114f3b16884c7188754b -69b1faba78259210424bbbcc78e4144d -5bb7ced2abefcd4e2519ab42eb9719c0 +fa070151663aee0383a3c518d6a628d4 +0de50b823bbeeed38f82dfcd5106ccfd +b7aca869541be08df3c5732eee3b3c5e +63bd42d2a260631f2b4eb7e32bff21bf bbab00fb08ae238a1428f6b9332ff0d0 8f8b08ea0127e8dd80c06c9e79896a61 6f3ad06950f1c62f4bd86e51a7ddae95 96efcb427a067568896a54d9cba6a836 2d1ed344ed1f795dc8ca3acc51cfeaa8 -d65af57318ed01e09583666365475200 -865d4898344eb9f83d5cba25bcbf0074 +0f487a02eb56c25838b3ca7a44e3d340 +bab262d6460d9e578d15f084cd57c4c7 4c1471fc81697146f2072c4c55b16a9c -e789e6202635814dfe0191534691d5ad -9042165d451c02c4e99791ab47994a4e -343803bcd0a6a14c46c833896a731366 +24ec07bccd0232ebebd94716dd6abaf9 +7f96e18c0ac56314a33e35de090c5045 +cbc1e4a4d481e1d180266b8a84c3df6d cbfc8102d5d4b206ce17095f41a08013 a287d462bc71f579eea372c586ca1e65 +14b937be198fc9c37d706a131f110c68 9f5ba8d00d619d312d40c07f38b35c6e -a103dcf4c15fb0feee775fe16e0cd7b0 +0b184c77fe31ae048a9527291610ab4c 055d1c1ecd19be7fe0fc879d5b9e3920 2cc2731ed536bf38737bfc2897163b4f -484a797ea217b0173ac0fc70c009420d -cf16646d3661278f50a0a86be255e143 -fd49846868531f6a44e172a51ba2bc26 +9bf96050ded29c68658a0bdaf7fdb3e5 +10bfcf3c45c4b93043b846371d2de319 +3d2a1d008de0e21b9505ce8b6342162d 4ed0fa2252887fdaad281c4fdd581138 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -8870,35 +8872,35 @@ e1161971bb06488cabe9066c8e827741 dc396506b334ea8af343c8c8161be20a 103ccf0be8fe475c66984161813980d7 -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 13420baa6e004ffb9bb8851bdec6573b -60af966b228fd76296586aaa530d981b +4362e150d6fd5db1d2ec3bf6033cf31a f6a494807c8bd81146bf7308b9e74507 -78a506fce32d1a895faaa5a83c7e77f7 +cdb4a3999101c8a97f346af5b2c871a3 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f 4377ad93f7965f894e7d49f0972a144f 672666d2be832522a2d1da2808663ecc 05a11b19b5162789760c9838a936df75 7bc61a1f1daf334bc893dd1f0b05ca37 -4db8855db0d0e1718977f22450a22bab +e4e2a6f4a944f694c2930314578cfc73 5f93e31d32cd99d38e3d59c80b4137ff 28e10eab33216fe841a693440d577e21 b34ee3fcd8a6978cd33ce47539e8e5a1 -c04aaf1307303f886ee22942e61c6504 -83da6ba2afa226e897d74d7a24a86ef4 -db8a2e7d6bba2b25224326bce8191911 +22fe87d6626de9d7ef505f8997309e1a +261f809c9e46da5c59f0e5c3d66da997 +8cfda215fb90242c0bee3c08f424d05e 1ca4e724a542dd90368a4612a878aa7a e92ab1ec80639a8bcba78163e7f632aa -d8d818fb4a1b2bff45b8872dc98beddb +125545332e86e9da0c16e857d488f35f 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -536d2534960b60934f88f21cbc1a5055 +3ef47d126feed7366cb5ca7fcee9fca8 c57c2471c7a6eddd29d27909cc422e41 -fc52724916a090d3eaf2fee8e039f2ee +19de93c653769b4abc72bec70750ddbf b35268616dd215650f008578de78244a 2b7b7694e9c574c9017760d04b71d385 336e659b54ee694568f9e17c14ba4a44 @@ -8906,20 +8908,20 @@ 06c01cb177f657b18706dc4856a0315b 37c8cf292316d659b712e3e792776e3f 7b90980dcbf4d232834606fb8b661045 -61f9e3894546d4020e821d7291bc49b4 +7b628e61735e81d30265c89a34b17278 449de434949a3e2b8780a87e7b179d3c -5b0cdd7a223788fb8da65ed30a8d6ca2 -c9bee02e9853dce7b93ba202335e867f +b4a7bf2dc4b9d17e3bf96711789653f1 +cd854c5b10b4fbfc95edef5d88b16bf2 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -cb28a04e0c5427c7b3aef15674a67e8d -d28769c3031a9a73e168480bcd47d9db -6f47685830e644eb59c6ba0687de48a0 +df410eccf21d001f9f5e65da30258122 +5d9b7ccd6766e9e943b206c4e288cea8 +244ce95591c641e140899ecf82e3a091 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -8929,35 +8931,35 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e bc44f9076de8f3941692c1139b6715e7 -1067d88c346ab4405e0e9b3eca7906de +33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d addb82a5473d88074f998158dcf6d184 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -26af5b43629c9b74c66c5bc87a6e9072 +78faa2226aeb9f90e52c0f6239002838 58c41f60235ea1a5fb3991bc4fa6a24b 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 @@ -8965,10 +8967,10 @@ f6118b412225605b9bfe2d33480f8f4b 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 bec84422f0047d771c9af28213629bc4 f1f34d8c0f864daa5e8ab56801027430 @@ -8980,6 +8982,7 @@ a287d462bc71f579eea372c586ca1e65 +14b937be198fc9c37d706a131f110c68 9f5ba8d00d619d312d40c07f38b35c6e @@ -8988,12 +8991,12 @@ 64bfc7f928c8265b954a94f6ba47a472 -e8aad4f8aaac674d590aefc749b7f718 +686a81c818a0a224bca0aa9518e30f7a cf956add0c79021627f8d296bd9c0bee 3639365574f377b3d9192eed3012b81b -f2937299798d1182db0c181e75b40bc0 -2a7206d5838c304a1bbfdff9e1b9bc50 -d540ea5f9ed7b6af334aba6464160f0d +c1bfeae3937b6f48c77771c5001cf6e9 +297d7b4aaed48a75f49c2a5d7856b4bb +bc9253b980d8b35dd5a701efea21fb9b 3f97ab7226e1b96805f110c23a0a4e8c 91db205f032419631535b76600d49ef3 3ab8cb2ffce4a45ccc2bd36bf7188ba4 @@ -9003,35 +9006,35 @@ 2d07e3dc90596e3bf5815017b9fef1cd 2c978233c9c2113210abb8d6b7815be6 9b76759382b2cb4c46403832fd11da8d -203c74887a2dc56e3fac9a652d82a3ec +02b66c8cb37d08bd011ec596985e5b07 d34df2be536aa5f1959c5d23536e72f6 -41e8d9eeda7e9ebcba8ca3ca30d29866 +b5cd71ce52f0ea483266db95c9dc08f0 0c3ea1ed6f3bef86e72457af9d477b22 -2f82a200eb6bf0df2caef2982dd5a160 +805bb38537bb72d4f9b1377e78212aea 6bd7bd915222c47f064d3cfee5fc59c0 f10cedbccc9475f55d46269a683f0cf4 0a8e6c7063772f6766b3265f9b54bc8a -4f4d173435d76648a581bbc19df4a435 +a951ffe3e490fa57e2d8b58326957f4d 8cd714c35a68b56c9190c03579baf70b e2073338990d8009a30b20f79c1e2658 02f87fd5322e9ca3ab84f2baa2a26d66 50360defe4eda5645728358a612f8df7 16ca8987db92c91d71d494e4b4721d5c -79107a14c0bf92f597bce8b9f3f77d5a +9373f76eb4da633bd14e44f1006dce26 5a6bb3c42b5a0bec8c86824f1975083c 87ca04b6f32ec9c86ff4a9496a7e2e83 61056a28a359783cd881f127512996af -73b5208f0b71148059c13248f8275013 -ebba32050aecd8450f8b31b458df089a -34c0c729df897dabe8f83db9af7cf479 +8518f9148a890e14466038f254c2f701 +7bab9e644fdcca3dd68f097c80e8f263 +1eebc6a132b4831df2374914d2398d06 abeec7cab968b8b816c16b0dea5dd6df 988b1fd1092a601c62d214658970a600 -41da086d1bd1d2bb3903847a841406e2 +07bb126b5d3a17c508adf9c9201baedc d9f0c52c0880cd2a167ea745276e7d34 f89420ea2cea158b44d851d13331691b -0a46744c61ed215699419ca649f6b6c8 +e4a6501096ba4fc1f0f379f30594ac34 6699eb3eef6a6a05645ff11dd7646491 -cd4806f4e66110682d35d3eb1a864f17 +a4feafb6c78b04c19f3425ded8f01ec6 d141d44dd458f40ccb09a857d53e1111 354a01f32d385c5166d852822ad9d471 02e5e0d91e8cc1b008004845a60230d7 @@ -9039,20 +9042,20 @@ 4b9ad2ca74ef4f33b05aafa6c8f5ee50 1c203659d8fbe2117d8da349a757ad8e 13de416181b3cdbebce2aedcba4778c6 -3881016280fdb4ba1a5a94affcf2b9bd +c4eae93fb414a18821379c3f61ce6e8a 198738d85a77c59567f81577a6235b7a -3e9b9b7e930950a4dea9c650b59120a0 -fec6a5c05f15d877d1b23333c173f38a +476d5ab66502092cc71290f7b3a635a0 +d87251d2fa6e1c8d95ef7c0a2e21f6ff eae486731cb10ec858687482099b54f3 fb318dd514da9a7e91e4835a22a8b317 -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -cb28a04e0c5427c7b3aef15674a67e8d -d28769c3031a9a73e168480bcd47d9db -6f47685830e644eb59c6ba0687de48a0 +df410eccf21d001f9f5e65da30258122 +5d9b7ccd6766e9e943b206c4e288cea8 +244ce95591c641e140899ecf82e3a091 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -9062,35 +9065,35 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -1067d88c346ab4405e0e9b3eca7906de +33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 4e186ea8084c33de3fec3182f57150ec fb5913e34a812d5fdf9e25b8ca8c9fb2 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -4ff79f2a5d28a3b71efefd954e4ae673 +53bf12dc00002400cee9505c3c4a2738 58c41f60235ea1a5fb3991bc4fa6a24b 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 @@ -9098,29 +9101,31 @@ f6118b412225605b9bfe2d33480f8f4b 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 a287d462bc71f579eea372c586ca1e65 +14b937be198fc9c37d706a131f110c68 defd77128a4daa7471cd207350120cee a287d462bc71f579eea372c586ca1e65 86edd8b14802f697dde804a0b134a9f9 +14b937be198fc9c37d706a131f110c68 47e41f42a075152d70958fe89cbf8d37 -3f47b255cdcb0f68b221aca98aa3eaa6 -fd401a3ffaf6041c661604a3b8829433 +37ed2423117fa214345519409b790293 +37d8e465a4c969aeb37a190555547cd0 f42d1bee9041dfc962483f895dc51516 -a0d645f9a5b4e8449630a5a373f432b7 -5e97dc2b74baa208aa17089175b265e6 -a20f74bdc332f59ee25f74104ac1b884 +37693934d0491da5e6e72a865fee2435 +3a4b04e37555e1b591460bef9515a31d +6f3e35798a1962ec9a056cac680877c2 e75dd31e0976099cfc0d9e00f9381947 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -9130,56 +9135,56 @@ e1161971bb06488cabe9066c8e827741 f15b010a942b145c786fa8acad689cb7 aec6ae4bd3c5941c6e2c8a50f252e12e -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 4201d532b15c490bb6ea56b3d7d4032b -7edc31cd9759fb0594f4e632ccc3da0f +c247f188b836bd51267c422c407ae500 9f8037a9a12a3775f77152459d1d56eb -1d1cecf8358d1db2dfb4ea6565a4f75f +99e612e491a6475aa946bd01df897e25 1898ba53941f49ece5a58b90fdac3ebd 0d9854420987f4e57f2b1f9d3c4aa726 109473a1938eb45b52bd3826fb672d9d -b7c3fe1a140db57e8b81210c6e91c32b +f1a79c9a55705140a6d893b3690085d0 8533867c20217e5aeae7d0dac180cd11 580097c19dd53748b11f75fd6daa95d5 -aec83d86ad713d288d35b0f45148b282 +6e5a54042600e4afb79f09f52f3d8bea 7a64d641a544fce0c38f713f0664d193 edebaaf030b310580975751b4b7007e4 -064d6bccf6a35e49511cd8c409d60a90 +1700083ef9212badec296d94e212cd0c 2c27edeee3a6e7883ed719fe44d6d145 8617166efb147696761492d83e9a1324 43db758beb5f856b7e9b6baea10c3a50 -f270e46065e209e7e977f2df68b3e1e2 -82fba3dca869bcba94ee53bc1946ffdb -bb65035565af6276aa39c8f827e6b0dc +39ae77d3255b573476dbf4bac144c91f +32cdae7ed3b21f35edbddf5810f28711 +9d81ac794e19939a076c93c618837b30 791d08fbdcfe6f2029c0c400d4f3778f af08cb31c426c69cee3d5be5dc8702c9 -13aebd4febca1bd7fb814b67a38374ea +5545078e333f5fa834e187b6d571738a 1364b5c7f6f46e8a9d5fe21a4aa0b8fe f326d01ea1f9cb89d96aafdbf65dfcf7 -d09b602672f89e93e60d09962cd80e35 +acc68e425ce7d196d394a296bd193161 095b99ae7775132e9700de77b2e6f898 -b862115ec72de8c0416b027bc57423ed +b67199996d1f95a5961244f2e9b1431b 4e8c1a65dd260044e60bd594dc9f165a -44090991e2c1fd2d2fa0df9a85dc239e +a2ae9917403521ede786d9e643a53439 abfff4dbeb6fb2a25396303105f5642a ecc8a0bde690b00e0836ea7764a2fb4c b8ba3ac8ef64a7f87b2ef55a8bbd2f88 37c8cf292316d659b712e3e792776e3f 1643632ef5c00e55e35976ce7946fd81 -ab5d6d97f83bab2e2c16c3d45a636ab3 +29a0ae9a5d2ca8e061d578be28de93b3 7f54f89d0966306d4f60a669e23b402a -5a12fd8f591b6b28bb163389f5f00c6e -cc84374e63f1aceed523dc9244fc19a5 -b2e4b53b90762d4f0e980d39c002b844 +07edba7de542d83b61a622e33d5a25f6 +57c2154f2836596753680dff1c63f6e7 +54c89c67f919574d509c1566c6dfafee 7e2d917c34973b82cd21c55635057d46 -3bbd85c734307593c5afa8b4353f5a7b +e11c5151b866a5ca2c5d6e81286f4bd4 15df5a3b4ebb165f9986273c4ebe8798 d91271f2eee42c07a5138547a0f6c091 -5061b6388ce5d1332a4feb422a31ff04 -10e0a9880540d3fd375abcbcc026f131 -33b33d81d0e16f96657ca753b92cbd5c +e0455d672a8e4a9c3bc177b39e54749e +cc477bf80635d2022a70f38dcac5b6e1 +03673f79cf22ee1bee5a588a8a27bfcc e2f570e2e66df747bf8f6b3db227bdeb 642b1d3edd6abf2fdfaf30d3995d3f4d a313c383e151fb72d0eaad1757188000 @@ -9189,35 +9194,35 @@ a12cd5e8e20bf30fa844fbd106e7b0ca 270b61424746a236c6ada6678eb0a344 408470b9760ecb31693e3e124ba21abf -aee95b81b3e5c5beb2b3550d21cddc37 +5460d3ff345466ce89636dbeae2a34fd 18f002c50ea1cbcf33facb7660991897 -1c85ad7debecf76356277dec16e1e30c +fdfc437c24ae7b6ca2b931569363aa35 ebf4f23c07bb09dca7337a86991819fe -817d4431714d750898bb14f2c94c1dbe +1b632400c042bfe9be49ebb25d1fbc8e 1856c76dda9f60666256d04b1f964000 fffe909199241a85bd97495f34b80378 e8af2be464edfcb655c37b7915b678ef -4b5a8183c6f4dda7468dc379d8997f93 +b86448d50cb02dcfafee6f9723c1dcc3 3ab7d54a87b3c68cb046ebb54eefd70c a63ab8aee2fbc9a1107042a070b1716a 68c3c0c712e5c1d21d46285dca52d5f0 2a5b90cb833fa873670d7322eb4eabef 2d807ca607e492b30eafb3d8914b95cf -0aaedb438bc7bb4d5c5ffda89ba7e1a9 +79326023ad040ebb246828a681033b2b 817b0ca846a290585a5395b65a65d68f 24216c82e991c6828e21333d95b808cf 95e57c35a792c252a2e8b35861c61dd5 -dab6aba13601f224498fded8db8383ee -7cdf81b3b3133e34ad03a9c424ac4c43 -d8a6c251c674a1ddb96158682987e8dc +d5d9a12fb58fd9eb1b81b9bb6933f8de +35d645f11e3ddd313256b498d69501dc +2b48e1bf7846022de872d815250a7b05 79da3afa1b6e18f33269de3e58e20500 3199b9e77ad97d719d306bfd9fe1f5bc -90fb6da206bdb349f7ee3d3d2082ebcc +94ba7022b5a214208b24339a91e8b417 75025c0ce9c0230f5b2a777164d34624 78baf615e8d1c00a89cc8eda5229f342 -7eef38cc7a9ceb69a90fe8121d515e61 +e8a0e5d9c0b2cacd8163d4342ade690e c6fa5046b17fc49c8763a64a2190559e -cc7f630c7524bb8d13c1632aecf941ff +18edf0bd49b184615ba8344dfa9f5666 2d5be814bbfcd9268d903ddb7a98f289 70a872670c64c2f1bfba189669cf2899 441e0f2ccdbec200a6056f9fdc0c3c97 @@ -9225,27 +9230,28 @@ c22d4eec9dcae667969c076fb09665bd 593e777ba5389aeaa04f7da136a016a8 d4d0f4abc5ee1340255a9eb0076cd961 -49cba5bb72a9e3b0a4d35399b68addb1 +6eede0f730806bdb6752fface240ad8d e644544bcf0068e86a44d37c204ec963 -26ff5d75054a015022a79eb7d291e7ee -8257d82a2d99f6c917905248ed72603f +4ab7bcf0d217d86468075ece0c83929d +850f81668e8529bc785988b981aeb25a cb9edacac9feda06dc8441fd267fe15b 86d18225c3ec4d2ab47d5b96594e1d74 a287d462bc71f579eea372c586ca1e65 4a73b1420652c433015ba38d07a82126 +14b937be198fc9c37d706a131f110c68 09cd93b89ceaf280cdf4e3ed95113d5e 9d0003b476b04cb18293d40e8e5f9e4b efdb5a6169890e8d2250eac7fffe7942 -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -cb28a04e0c5427c7b3aef15674a67e8d -d28769c3031a9a73e168480bcd47d9db -6f47685830e644eb59c6ba0687de48a0 +df410eccf21d001f9f5e65da30258122 +5d9b7ccd6766e9e943b206c4e288cea8 +244ce95591c641e140899ecf82e3a091 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -9255,35 +9261,35 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -1067d88c346ab4405e0e9b3eca7906de +33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 2bea354421fe050e91df715efbbf39b6 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -26af5b43629c9b74c66c5bc87a6e9072 +78faa2226aeb9f90e52c0f6239002838 58c41f60235ea1a5fb3991bc4fa6a24b 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 @@ -9291,18 +9297,18 @@ f6118b412225605b9bfe2d33480f8f4b 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -a9f78f42a95ffd7f394193e378a2f9ef +3c1901d15b11b7c8d9411305c2c10e47 43f67ab455d8d7d37792adf1b07c5d9a 0f4cabd5c702824c0432a5b16dedf3ef -53b6c391abd360ae631d749855654726 +f22819b1a3eb265c2e589bcc71fc7562 e5be41a111cad12948b3c30fcd5a41c3 f8c35e3878a1834751fd9ceaf8e6bb7d ed92d742de3415fde0de3efc2b84e990 @@ -9320,7 +9326,7 @@ 48774123b922c982e9db9735f78cb033 f47f15a53c307b7b6b14ce44989bc3e6 7e99379d64b67784419dbe4472109e8a -f02aa204b8f08a2b24b5259e84d3ab65 +b5b11dfd8d85a817097aff93636326ec 5707af36b38fd6a63cc64e6852320ac9 d2a16e475bb3d3501ca097eccf16f3f5 4a208b83b250a5fa06add548e5f4675f @@ -9338,12 +9344,12 @@ e5dabc12813a485062ab5b77b5426679 -77bef953bb4319641663d33dd35b1c1c +1a8ce93f9288fa37df53a35e1dfdde6f 632d62425fd80b2ae185fb09da005b35 41a82da1a38fdb0731f1af8f23e1b884 -6f4d2185bd631376c2e0736b5cd50add -2ded13e425cf1aa891455e8edbc85f6e -5823faebf423dd433f99e4cb0f45b37d +eeb5081b297e0efea247ed89213a05a3 +e349f1a124686686a7e6e55d5e728e66 +7d7947925a62a4dc3de04918b3876448 36526b8dab4e59d4f4ad236d6c90907e 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -9353,35 +9359,35 @@ e1161971bb06488cabe9066c8e827741 5b34db46dd8cb293738572404ed3b225 971521a0a3a41ce840a88a0179d49f98 -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e f8462bfe02b86e870ea7183dcf53b2d7 -eca65402c4f5acb9e431605d89498612 +f0777bfe665957f9c9cebb90f151c62b 49070aa4eba7e3e1b439d12caaee9952 -4af6167a289ed2d227990fc96c9074fd +2559959902d060ca1ceb8d7a29871043 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 d1d57eea51657033e41f1634e96c2560 -23b283c2a11223316c1b2d99e13a03bd +53ef803ac43a6382f578eb37280e612c 83fef6c66e36ad20cb4fe764f9f68e06 a4171eccf1d40752d26b29b5153b11b2 a0ee6c43a52bc1229636b74109771bbc a80d982a5473732ba1961c022070788f effb241913bf2477516477291789d0d7 -7ac17c5f3347008c462dd7c6a4e2eff8 +c40e12c3e7e5a1367f1c6217c38f1cf4 a0057248da365d8652f6b193da290302 c12cf1d469986ba2dc003196939d366d efb32b89df497db2be8b2b094f5184b3 -e2b3d68e282a00fd03663554212e9f96 -e5607dd5a38d2ff7a5708c5f946fc8a6 -54a4bd6bec26ec5b823b44ad4178e951 +9529ef58f9d820b6b140fb0f6367a299 +83c894aea542188b6d72b6907849f786 +af5b7c3ff0f794fcf79548c1ec0cad94 cd19eae6497fdab036c304d1de48166f 6a99d337f18961deee4388eb086941c2 -443c56156f3e9c243442f9c767c54dc2 +09294bbf65aa3b16330b0b16119474d5 306523293000765d47944a1d49176227 f326d01ea1f9cb89d96aafdbf65dfcf7 -4c7405ff8ba0acadfe827839d9def729 +1dbcc3e832e6dae45827b9b01e372d51 0266e81927355c5ace41047baab6f273 -72e5594a2296a0579e1314155a1546b1 +f35cbdfdf620bc6e752ff70881a0744b 3c9dac5d6e08ee323eb0713413aa7d23 dd0c0d28fc4a2ed9db92b4ba84a9a561 62412b0b947b92addce88be9b0d465c1 @@ -9389,20 +9395,20 @@ 7813b286e9266e76c7024ec1f4050afa 37c8cf292316d659b712e3e792776e3f 3fd95b45a7575151e66f338bed7928b2 -60f0d621e8f1cdabfa9799e5d0c99342 +bae49d79ca27a5fd2c36ff08d4f9007e 449de434949a3e2b8780a87e7b179d3c -0a22cd70f43b5acfd1d6761811fc6343 -edc54c517699c0d2f3a18224a96f4c2f +a0c8b26b80f18f02804d0e01e64c031a +436361c24dbbb8a017932053886910ed 98df0b16465e8526f1a34f0e24e1d25b 96c57fcb231c8ac82ea65c0892a50555 -aa6b4fa06b7d0ea4a84a1a05e029e8cc +0d577e482960cb5459adb57b4aa803af 150ef0a3188079477ca03d406201c48b 046d11412aa0f261834b9ae1e91bac48 -47751bc2f16b607597bc816a938266e4 -43142560d0a3cc08b8f90d4cc864d30e -f3534e7c5abbf781bd2c252affb4d929 +b15b7bf3ac07e453058851977d51e213 +868f7d6e16df1caad6ea1baff31016cb +bc3e3b3476143094419b5db2e88c175d 3cb79c768f575725f294e75ef620f846 a4c048ac4494e32101da4774e4d56102 f2a97948d26385dbf048ef0cf2c525d7 @@ -9412,35 +9418,35 @@ e1161971bb06488cabe9066c8e827741 ae976b8b3ceff8461a54f6440a533b23 696d5223809ae9ef74d5340d97712366 -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 90ba34f01cf900c232a804be94755cbf -6a9f56619b8129dd526bfbbc364d88dd +a1e2fe9ace3039db5aedeb81476f34fd 54ee3269dc7dc1a5ad6b8e105b6d1c4a -5b03fbd5ebb48c72ddfe8205be3a40b7 +8b23297081ff7cd9dfc4aa728c9baf0e 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 0377bbaabc9f554edfd5252b8280b6ef -ff657da941a0ac497a561afdd1deb932 +fd4e96a1dfb6310eaf9ca8e3d5d1c03b d4a4ee924ffb170772d19d8fb868d8b5 6189a60e665e8910cf6e08c7b8cb34e4 -1b1978371b545daa06be79d148a3b243 +7d4c9b0fdc8ca72ffdd4ac204add47fc 9b01fee9c9212da2f9f5d7388424cc9d 369a11697afc5fc08c9d9a119312befc -d499d73cdb0e02fd01a683108a0280ca +5cb30f4a7b7794b22249cc63086ce1b8 5f249fd236d741add5cd1989e73a179e ba76df4a1a0806f87e68830f08b4c334 4486ffd5730ec74acb7f165d032a354d -feb3341d6dd1ff1f5cabf7fca1fa96a6 -61b9f516d6592825e356bc6c3aad7d4f -de41e51d30e6cf38e0b997032df5b437 +2cd212404efd4df30ef931e3c7eb334f +3342d6e329506071cce933f693a7c26b +3db9a24b9c05a584f57e76bf796775e8 30af1f1daa6808bc69afab5eef6d8777 05295a96fc118adfbe34fed9ab5695cb -de2f2065e2ed807ea6b477b89c677cde +0eb4171c9641b54f4b0e99d38ed774d1 e2590b64c46acd99b18bf01068bda97f f326d01ea1f9cb89d96aafdbf65dfcf7 -db841a2d324c6e07d22d6453332694cc +89b689d8bfdef01c695a75602168e86c b62965af8cd454ed73aa42db77882ce8 -a162fc9d3f3012011216af9b4c72f664 +e34f203f621a58e6a025f8d5776c747c b79ef3622f679533a44325aebaf50f74 14de703774957e32462615ce075e168a d7076d1ba0b16124aa157994fdb7ec3e @@ -9448,24 +9454,25 @@ 4174a4faff345145b6fe6ff3f2aa337c 37c8cf292316d659b712e3e792776e3f a12d05ba9afa3e112f945becb6fb8a04 -9143e25b4c90b2edc72b1524ca4002ef +daaa4ac0bea287ae9b6df8b05f59cbc5 449de434949a3e2b8780a87e7b179d3c -768a77269c2723df71351830cdf17fd5 -a2ed1c07df8680055a24aeb465c1d27d +8bd26ffb64c2d28d90aefe0d30932b98 +c91758455ce161836aafe2a059dd9009 7bfa336838a135bab143a6b5b0758af1 ef990f1dec41193b1367ff9ff985ca67 a287d462bc71f579eea372c586ca1e65 +14b937be198fc9c37d706a131f110c68 93fc25faef2e4a631602c033427fd12b -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -edd948e3ad8c56f1eec0754d9af7f849 -d28769c3031a9a73e168480bcd47d9db -96365950792f55f4852ab9e80664255e +27534eb72e590038e0fa11d8df5a15d6 +5d9b7ccd6766e9e943b206c4e288cea8 +4c2cde2a7b3cabf2a3056b98f5e0ab9d 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -9475,35 +9482,35 @@ 3d553783df165b8fbf3ebee134c980dd d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -5b00eb9beaf4f3e8d7ba94e14413fe00 +e108d4f278f102da00319763761567e8 87204bb4bc4b2de9530578fce343498a -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f d91a412e4582686aee55e22120f10420 282e62eaceade858ea0158c0f8bca19e 05a11b19b5162789760c9838a936df75 7bc61a1f1daf334bc893dd1f0b05ca37 -9c070932bf0c7bd3de7b4c2bda11c4de +11f3242d58ace647e398a9844855545b 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -2fed135a75cbdfa6d1f747e9c05e2a75 +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +485f95503bd19520f6ca020ae9f337db 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -d1b97c9f09167f4321bf14e9ec00ac52 +e5358509c768563b7eb5ed56913086dc c57c2471c7a6eddd29d27909cc422e41 -b3a3df9dfe46ed74ce8cd05b131b313a +5ba7ac8405f49bca38bb086f6cffa95c 056cb81138164d85bb0d50ab0d312e86 8cc192424d2a8a3a8439cf6c9e9c866d 3122c8015a2583d254fbdead8e4fde52 @@ -9511,11 +9518,11 @@ f6118b412225605b9bfe2d33480f8f4b 37c8cf292316d659b712e3e792776e3f 34a1486eb36f6584c549680f7c8c5b65 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 fb4a6f0b8120de5bf4484b514147bf27 -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 -4436adceb98825d4238e66d0d82db959 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 +52caff2f9a03cfbc8f6104bf2403ec25 f1f34d8c0f864daa5e8ab56801027430 @@ -9523,17 +9530,18 @@ 176fcc18540d7f71d144108fd02b61e4 3332e7e07f91da6313b26cb61dbca6ee 2cd37a211a31a13ce61875112cd9b50b +14b937be198fc9c37d706a131f110c68 c86d9cd72187d66eca91c2d2671c3c7e 68459fc84ea935a6d7c3c01688685585 73e9edb0163694ae2e0a80744ec41138 -2764f732917e7af5ff108d49332d2b10 +0ffa472d5ef751a84b9c10bd5e7b5700 8a54b70546ddfb4c37311eed7fe97f37 5d4bc708b7463a1439b6e450ecfe14a4 -a3ccbfc0c44d03ec27061fe0ef9c798d -51df0d5331498c634c3d11e776a7127e -97f2525097bc4ee7ac3c24ad2963e838 +50cb15cb36ba9f2ed19f40adf6a47429 +10f30659042ecce2c07c210ac2194652 +6824d83658f42d96b9069b6fc83a0798 14a61298c64c7c9be5640d0c4e4fb421 110e015c9a8e5ca0f74c16973fcfd6e6 fdec511a494d5027c2acfc28a9699401 @@ -9543,35 +9551,35 @@ 299d941a9f02e17c8b02434fa9e8030f 8645e85dff01d97ec7a5592842fe8e9a 43676fefb1fdfc39d88827b4ba9392f6 -ff17660e1c4f70e7dab67f8f6ce285f7 +be34fcb006606de6d45c9017d0e6c0d0 46d424d421b1da5570db5547a77ad14e -ec99b7864e2bea3d55f560fe2c26b877 +94d8e090abeb11d9024dcc7e3eb86871 e131a7ffecf41104dee00ebbce281fab -ad91faac2797c93a0b7ea63ec8a766d0 +13e6a2ce352dccc6172c60efe0bd80f3 d5878227c86ff4802e669af1c7596a5f a1b4f1a132ee1c2910d45a3ddf0b116d 46696aca52e1960099b43cd82dbbc95d -c4430027f89011992d470f7fc4ed1ba1 +3004b16ebee23d327f659b2a7473435a 184f8b89087e7c5bf304a8fb05056c81 907459d92ccbbbeb7cedf07b093bab8d 900d9aa8de0eeab5acfd4db34d3ce735 88b274f352239ce9434388ff31bcf56e ecc6587f01a3e2b2fbb938a01ed61ff6 -16c9772f63a9de53b0957e2646248b50 +f9e5e501d5824bdb2edd34487ef753e4 953b6481373f49567196fa44c135b46e c628021e320e7a63491f3bface328003 67709582399a59b174d58d7de1362fb7 -88a4769ea108c85d488eb1c1c6f34ba0 -322097bb7da5dcdcf9df7fe665892bb5 -608f8d97886b11e7b5bd4f747e917ad4 +8023455375808279a7d309c595cf9aeb +48a16119e02b8de2108e34c83b18b326 +3678347d4536b92af9d398a603ec0aa9 ac2e49c27102ae56b3deed5e8d7c4175 44f79429dad38940b566f2f1537df733 -54a105ae97faa5d4dd444ea10fc32447 +47ec124cb943c866b2782fc3b47ef4a6 3a4777f67a135a1cfdf7a47069d350f0 1b7f4ed47e2733ed7daf1f068dc5a43a -7dbeb02ad9b8765d2441aec69d44efc4 +833cb774486fc673341c35eece6a9327 dc01728427612699c305b8f285cd1262 -102900de79a24a007dc0734f2ae72e43 +4f85a3bc141a740f1d3931a7581d5048 79cb9d37e25d660b3dc8c5de296332c7 87286fa247ed09647335fabb2a9ea2c8 0b44cc53b25de22d65ec652eb81f2709 @@ -9579,20 +9587,20 @@ 8cc9786143f878d28bafc509c62ad272 caff61b2f2d74c3b1224049158c71564 529c0788b30ce0d497eef4017945ce2f -0a5ebf986946ab2f0e20ff68ff54de58 +172256717722c6365f96fe9ec964b9b4 b75222a8f89443a5fdd5270fd5cb15bf -71902406b95d63c347e068502e4c131d -d25e2e6629f3acc5d28fa408c7af7961 +8ccf673ff2d8d21f4d4b27fe023b422a +1560ee8237facda4df210cb12b9153e7 e7f8a431579831db43cf42cb3ecc7ba5 6ad1e01b6d442e0d1300992628e095fa -4a93bc3fad3abb15dfe3bc89ed6f016d +37a644fdadbc320cd7badcb3f2160581 40da036c3ed6060360c70640de106608 e79dbc779c33fba7f5c1a7a2f7b57bf8 -dbaf5776f87b2ec5bc1d0bff49e271d4 -f6b3b33b810b1ad35eba8c7265330e0c -ccaf30d231a4565dbdd876758a0e010d +af1916d0892dc13be2174e6d2a6acb59 +9c9c90168c862a478d6fea10cadbf68f +f03e1ce24e60569fd52286622d5e9898 52427798b2a5dcb70d70d56d3e192716 1d053fd20fee7157bb530d6ed8656535 0b5a5f0f19db04cf9782504c32fde043 @@ -9602,35 +9610,35 @@ 60777f0319f1b3dae65db8ae22ac8b83 be16e99465614871bf39a938b331739b 33c88a07438fee635a31e31f1b82b1ca -01165ea1dc7829adc240e60d37babb59 +3833a731abeca153bdb91e6ae155a90a 03be67f2459dacb52f4419c05d9cf9c7 -a1d5aa695664ffd8eac7c3f138b680bf +e9fc552212d3dcde62ce079b3ae7da14 690c87d366aca89d2768a17c445cb045 -79176d053fd252508db0f8333a6c7eda +da307033d9af4e73d15dfff967f301cd 0cd2d97cc04d767f61df46295f3689bf b5685b4431db742c4d8e5eda463ac680 36ca80ebf0280ebf1d58db67f6491dda -e6861840c79ceba32d273cb73b5e7611 +4cbbdb44f239d315bc124680b44e79a3 f286f5bb77bf7a5d6a3133d47ca2def2 4e48782ba5e3db06fe07b7a077ec5639 7039961c9bac00c7d741ba4411aa01be 09e9a424a7a3756529a6a9802317131b b536e6b3720ab1a0bd19d0cff38bc56c -adcc1a4b2cced8765cb634586ff9d076 +38c5e9d111751c319c3b15390e924b17 819885d528aca06ddc71e73fc4f53c60 d95092bbd49344e2a07606621b38780f 019c8545f027aa2de1002d8f97911304 -aa189277813cc40a444d9b4d4b3ad5d5 -e5dc8bf5abbdfbe80e1c41f5940fbdf8 -8f01e210427455b58853c3fd1b98e483 +107c60ff2789cb0af7faad68c7cfc5e3 +4c0c45c1fda83bbdc69cfa4ae7365f72 +0a4b3147837c4b2697386b70940cd60d 6c350cab97cc78a5355817fefdde8d1f 0102a1534d2964a0ff588ae23e2effb2 -aab616a3279ef407751fd50527093a83 +3954cfb000ac4f676ed6fc06af23dacd 984ac2a148088665cbda36e3c2d1e226 84d22376b36901d38526d6ebe0e10281 -1cf7196acc19fd5cb74b8dc06d1ef13f +b904ea77e96218942b531e429d73ca9e 65e9e1b5f51015b08fd5e36ee6766fe6 -baf6a6e93409dfe02fa30fa279d9b42b +18cd624bbffb0755b7d6debd18339380 0eebc1b879f218ff0bc49f20bebe7d62 89da70a234eae57c52a2c2c94993f02a fc98abd696e8be5f5f266fc5a88e952c @@ -9638,20 +9646,20 @@ 0c0077efd9abc2c364cf48b04bd80bba 37c8cf292316d659b712e3e792776e3f f4cf25203748b46f4380bb892d8e2075 -56d8dc4c3e0bc6dba85d1abe34484aa5 +088147e15c8d95216dab10bdced092d5 76fd170989412fcfb3cc9f0019c0f184 -591705e84f8abb73844941b601baab01 -299515163b5d92d943b07e003eb635e2 +ea995e584eea2e034db3f28d8fd9bb6a +1b0c0949ff8e57770f7e88e433b4deb3 f4fac5306d75577287c3e93685617f2e 7457fe1789a9f0f07205824fb97aee9d -648313cfe959b1783b495de6c9ef9ada +c32c79d19fba449a6293b9779c854a57 8c05bca341db9c1e806bf122cd6129b0 f8f7a172a28516637112bfb05e9b0bbc -491bbb4843c8b0e8a45a151a57a061c2 -518626da0834e91daaa2d4df845f87f9 -a8882966c1e24735b8dc72be7c947c2c +cc8bb28a1c987461257eb130d150c152 +443bd303b15816349244d32e532803f1 +24587a4f7f28aee1e9ec50831ebe0471 4a9dd02753c248d33d39dea3efa7acd2 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -9661,35 +9669,35 @@ e1161971bb06488cabe9066c8e827741 c6596953a71008b40a07dbccc4246f00 989b7a105e98561e21f4e9e07902bcfe -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 613ef77327120476191a189d589ff35d -bedff5f9c6091168ca156ce87386be33 +901903fc1de65fc69091fd2329c420ce f5b0214673d66b795a0b2384d50a0f6e -0d250123629417a61666e352ba88a9fb +16469179573686b8a93127543b96179c 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 71069986b806fc1ff7a81389411f3758 -6c5774bc0f316d2b8901b910f5459018 +812a612df294643f768e53dedf53d8a8 912352c3ea040bb64208b06524d3e69f 59e6bc72bc79cb2058f3a3142ddbf65a 8f2146768829eca23aaabece6b2de026 bec38e846ba9a13225c6530b1a282c4b cb9aeac6d97c3f64441c933400ac7c5e -c6bfc2e8a0eee5c1af5acd177d1eafa5 +da6e81368af413212a22d190a7e87f05 29274ab30398ff24199850dd8f263b78 91d7a4a1383f1b0fc2d3e378d46415fb a58164e67d27a30b24604c0a0b1bb162 -0b28f63afb77e756b8eb2474dc1a1dc3 -6ed49151b2bed5083232b9fda66360de -a0d5104c39577fd6ee77cb30cf1d1464 +432b10c20f8a08bb5c9e226c82ef3ff9 +f639fc0842e405e701daeab5a78ee0fb +12ab9dfa0dd2b8b003da7ae04c38bb2c 4c37f0937bc0bdf3829712cb5d05255c 096f70f880dc63e09b098ab89df0e483 -1f81bad77ae46b79435bfc1ca964dcbd +6178270f145f619a39ba9638617557b3 fa985871fb4d0f74795b3c61bf129d8d f326d01ea1f9cb89d96aafdbf65dfcf7 -5c938049e9f1a6afe22425ed4174c990 +2cd6906712928cfa690ee48663264147 0df5c94ca0fefe23e45d64cfb4e3a943 -2ab711cb199d59b12c31f4460bf5692d +261aae0db831ce67279d2ffca7015545 47da69f211c95f6cba5dc0eff1fbd761 c734b464a1378316c70ab63dd8a36e34 46f4fd2960c180e57bf42a4003b95789 @@ -9697,20 +9705,20 @@ d1926848c8d8c6315adce6f8ede4503a 37c8cf292316d659b712e3e792776e3f f19eeee36029346ed958761cb617ed43 -e3545a66f84c9f924b3cdcc0d2c5b79c +0423f1a488a5a4b00d0d9624c1aeba96 449de434949a3e2b8780a87e7b179d3c -8c92b2eda1b503b246b67d7274000530 -8c898d0e388609104f534c4bc0f8d1c5 +e7c1d3a1b5e1cf7d3216cefaf1f2685d +0d4ee93669987ff793623dda488a0cc9 98df0b16465e8526f1a34f0e24e1d25b e4fc2e43ec963c474b2f6f9ecccf3ea1 -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -cb28a04e0c5427c7b3aef15674a67e8d -d28769c3031a9a73e168480bcd47d9db -6f47685830e644eb59c6ba0687de48a0 +df410eccf21d001f9f5e65da30258122 +5d9b7ccd6766e9e943b206c4e288cea8 +244ce95591c641e140899ecf82e3a091 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -9720,35 +9728,35 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -1067d88c346ab4405e0e9b3eca7906de +33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -26af5b43629c9b74c66c5bc87a6e9072 +78faa2226aeb9f90e52c0f6239002838 58c41f60235ea1a5fb3991bc4fa6a24b 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 @@ -9756,20 +9764,20 @@ f6118b412225605b9bfe2d33480f8f4b 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -eaf64b08607352be23d24320a837c075 -d28769c3031a9a73e168480bcd47d9db -6f47685830e644eb59c6ba0687de48a0 +cd00474a5d3f6c553107276daaebe05c +5d9b7ccd6766e9e943b206c4e288cea8 +244ce95591c641e140899ecf82e3a091 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -9779,55 +9787,55 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -1067d88c346ab4405e0e9b3eca7906de +33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -26af5b43629c9b74c66c5bc87a6e9072 +78faa2226aeb9f90e52c0f6239002838 4dc8101030bd3c2080accb4bcb04f9cd 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 59b195fcff4d3877045fee21c364d524 f6118b412225605b9bfe2d33480f8f4b bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 a95fc4e5f314aab5e20f6265a8f35682 f1f34d8c0f864daa5e8ab56801027430 -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -cb28a04e0c5427c7b3aef15674a67e8d -d28769c3031a9a73e168480bcd47d9db -6f47685830e644eb59c6ba0687de48a0 +df410eccf21d001f9f5e65da30258122 +5d9b7ccd6766e9e943b206c4e288cea8 +244ce95591c641e140899ecf82e3a091 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -9837,35 +9845,35 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -1067d88c346ab4405e0e9b3eca7906de +33f2afb3d4f651ff3a4856891f26faa3 87204bb4bc4b2de9530578fce343498a -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f d91a412e4582686aee55e22120f10420 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 7bc61a1f1daf334bc893dd1f0b05ca37 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -b3a3df9dfe46ed74ce8cd05b131b313a +5ba7ac8405f49bca38bb086f6cffa95c 4ffa9d84aaad0e85fa501f82879cc18e 0ad67108567f99662f7dabc9585331da 3122c8015a2583d254fbdead8e4fde52 @@ -9873,20 +9881,20 @@ f6118b412225605b9bfe2d33480f8f4b 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -d52f8b52ba5eea2a23446c64299f72c9 +044bf44c5d7d18859115ee1c381a6128 4f3dd930710082c606d630d8399cb483 fe0cac1dcd26398b7af88d0463c11bf0 -6e0ce4d9effa4c88fa41800c9ff78ded -2ab0faa9c775fa5b6299265024900ee8 -de65e08c2028c4f56b550a02cb445d3b +5ce211155fc5ed69d2c580fb0ca5f1c9 +ef412501addaf9bc480e7de2bfb2d445 +cf91e13332c13625c1cf2ea4636ef527 24a463840569e7c31797c226dbca70d8 83d51da6ce128a36cd2e5d2dbab76ce0 25e1ba7efdf7ca4514b81e86f1b0434e @@ -9896,35 +9904,35 @@ e1161971bb06488cabe9066c8e827741 f224691cb7bcc2759a3892662c9db80e 22594888bfb7449667e2bc9e473123f3 -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e b541caea5c767a4f5592528667133bf4 -34d81f321fa0be060ec78ee5be75ceca +004a58ead0e46cc37a0012f34830d7e9 63a1a0c3dc2beff496d15938130fbc1e -7643c523c6d7a8b7140389afa3ea6853 +2385f20e749585b5d5662263217ea2ff 2364fb2d06a0eb002e0053bbd30989b9 1b07213c7405612a72c82628826d7d5b be187e899e7a47ffd467e9ce35b8f4cc -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 6b2bd775e06aa7cbd2f7a8848f5aba67 992fdd617035a1127aba5caa02e9bf7b c350f2eeae2f5d929365041bb54c9a13 6421a8b039e088359548c024a50070b9 10da288c55fecaa85ef7af08f041e3f6 -b56ccf3b16920f6fb2b57cc4939a611e +dbee74bc9545487c0b6806e498cd2aea 5f93e31d32cd99d38e3d59c80b4137ff ecbbb1603ab59fbe960202b3470413c5 893511fb018dffe28b1f0c479ba7bdcd -d541f3f60f3563f7ab6f30605df0707c -9d8ec7df3db5a41b1f581e8cb34cafd5 -699d61d2899c013704e106fb8a88bf93 +c102737cc01f004013986c097d8c13fa +70e1da0a51b6247be17eaecbd9417225 +e2bea3db3349c137767eab56bb706958 aa04bdeb89f5b4ddbd80395ebe09c29a 7560df62010de03bd1597143b8909d9c -454cf17c323de40f201e625391d747d7 +501787b615deed8af323325510e4479c 2bb94b0f66048dd210f0b149544f69a3 999992f3bf87ecc74a951085c24ab54c -310615a1dc98ee6993f7591a9feb4012 +fde64a2155b288f66c1ae7aeedefc3bb 967f6c4724c7c5a3807ac81fd7d42d57 -19e4f280d8a888b35d56f0a620510ab5 +cef93c9c42f305fcedf9bf3ae8d9f7eb e89af39677088e95fd2c457d10487b12 3bdff0ea3ff709e917be270c3e96a1e9 c0ce2218241f69e739b177fd5c140033 @@ -9932,10 +9940,10 @@ 0cb72b50f31e68c155adeb9c292092a9 37c8cf292316d659b712e3e792776e3f 42ae9991ee0b7209a3795196ab36c475 -2b8dbdc46cc7ae2303e0b6d7ddaa08b7 +0309f2f09248f3db096f6714de6a5e77 1130ef43c1a7437b844db1579e3c434f -496eaafe628057f73c355fac5e5ae213 -963493cad24422352a18bd3fdf65803a +9544b3406665c8454ca7ab39e2a6393a +ccd751e3f9c583aae56b1eefc3bafbbb fec167baa346c43989cd7357a091ee68 e77cfae1b2c9124ddd567cc6f0bcd7a9 @@ -9951,22 +9959,24 @@ 93d2324320ddf2609d33828f0070e552 07dba3c5fa878727518a110582690996 169e53e9bb18aead3d080bed0fb9a311 +14b937be198fc9c37d706a131f110c68 721f864f34ed9957a1da79a505146c16 f03b0dcf6c6febaec231650b079d2f69 0dcf4ac06cd149d2c5828b8563cbe01b -5830acfcadea6799d349312669929c44 +436545df3d1465a5a48adb9868ac07a4 d0e4982b7bc6a1cd62b339dd4edef863 a946d614786a829d9964c0e27d143e0c 08acb8a8ca3a1dd92759d583424913af -04e8050555e77693832b3df29dac81bf -ecf984c390f50fb6ee3445d6dd844b20 +5db0fae663b6387d4176b8cd656f89b9 +1f9c4608541c8e95cd6189b122aaec7b 86a67dc27f4eab8f63ed174e5c3b5d6b 7c997211d0f9484e255a5c00ee139c30 741a1338d8cd1eedcaa67bb2a3988c56 f698b9faa688684b6932c41c48845c65 -db169e13c3fea829b84f0d90e48314bb +14b937be198fc9c37d706a131f110c68 +3d09d84e3192b9ff3f2086ba9cc60080 d1fe9d7d18e6a94eece41486639cd0ff @@ -9987,12 +9997,12 @@ c2d7742f87130bde6c3b91332f04c837 -c41d296099e82cbadadd372a940d5b10 +a3e9281777bf6379e3e532d4f86f9918 76391c0def140fedc6931ffbf18ab295 -8dda4f67e1ef4530fad19bc55ab2b851 -c9a306fcf06f1e95c0ee624c5949ce93 -d74254d8f1ca125b0cae24d1cec39580 -0975267867da943db3ee6bc1251cc057 +4c6700b866e64fb8761e87c807f31801 +7620117a87ac76a0abdf1e3f2a0dd2a8 +a75be484704fc95dcd1bd88579cdc6ac +83541ff8d9a8403b1c4d65fec49f1def 93f3338fc21f2da47f79c1446f3f5da0 9a61b8f01d920877ac43574d7a89d139 0a27701667ce4d505e2ddbd6a16b8cc5 @@ -10002,35 +10012,35 @@ 978c57249da23e3f3d93de87b2c135fb 5e43b0e94632b0f67f274968d54e1066 bea204cbd818b1018e5ba6a410128f11 -3453ad38a18f31a0811f59cbeb5d0fc1 +cc5a2dc3e5de619ff865e9d7c81e128a c09c45f624a9bb96d696b4e736810495 -63ec5e1611aef291fe00881a81fb0fac +cf47d01f997d687b8a1bc38e0cb6485b 31f372c93f03315c680f0ccf7d1df897 -cf8001f54c2c1ef7780e6579d4b6dabc +5b6e8355297f48719eaa508a1dd0242b 254cc450c35f98ddf34271255f4eb6d9 22ec38a9e1c8d0a8ade2b378df4dfd5e c679cf1cb4b8e13fa28a98eefa89e436 -1cfb457b21fb0cf994e6bbc661ff6ade +caaf489a26511afefc97a0624f47f2e0 e296aa7dae0e0d5d91a2a7cab148a042 1c9f2e419e96a7abf36d46c2cde71e7a 88aff64c2a387f2558e14f5dcdff75cc 24359d62453ef0883ebce7a118371c6a 68bdddeadf40d3061dd009fe77eec5d2 -68fbd0c349f5c7ba26a84bb65a10da26 +487ac2c661ac6747c4931ffd4e094d6d bfdffc1cf6e42979f52384d3125b72ad e2e0d56d7a9126019e91b05281dc523b 8028b9965a200c62fd4a16eee39c0e19 -65ec1089f7c1aa103a97beb7ffd535ea -7d4049c4942fef151af26aad2aaad7ef -e7980d55db673f04ae333d04133db31b +6dea95444fa084d9f9f33be87ab60a07 +2edcb98d384fa73b9452c76b88602e06 +45dbd2119c3d6fc009c327ef5510af98 c7e70b20d22458e1c7625cde28fd7c3a 8847fd5eb933c577a1a58d65274df4fc -6e400b24ba14608bf7e6531277de7a44 +26d9830c8d765010486530413e4827e6 ce9447e5187596bbbc50d0906cac35fb c35de5bd5cec0c5e363104a2e2e4bef7 -ab075e8656a7c6e4c9d7c29680a8ea32 +198b5c8e1cd19cb1a5338b8cfd7e11fb 9af1f73d600a2a75987f983e3cfa6d1d -ad0e49f80353d1c4edb949704f30109a +dfbe3c60c4f1647c6956c3960f848fee 506490e627de09b3c0121d57b10a76da 17835e9b0f75e2f6dcc0345f888cdf4b 5d8da5928c310fe821026ff6eb52477f @@ -10039,20 +10049,20 @@ 8d5faf8e36b5e4b4da158ff2d6bd97e9 208be53574c8852b95a50db6c755b89e 578df63bdcf934610c0bbdb4f1c3f94c -b8186e6f0d122d1eda58343dad6a8f00 +20c427de0090c8e9e4f9ac9682e7f120 737511d96be3c80851cdd4018b27fd21 -ac67bc2b189f9f30f262fd8c74ffb015 -77318da24e762375947f96e0ee2a06cb +138735e3488e4289f0efaca31ebd99fb +9860471a626d8cb68c4f882a84bc7bf3 d9a68560ac879c04862d375e8163dcd8 3afb85eee792fc054a42df621767b520 -9478945e2c1864850f423654404496ce +5f817922fde15eb48895573dfaa51975 7cec430ac1104bd3b19e5890319c7fa9 fdafaf7353ac65d8c09de8af2a8f3d02 -c7127fe1dc6e60c589c53cf9ffabf09d -064d54e4dbed1843030d3efc91ba5119 -3968b4c2313bc993de0e37eefaa77884 +02de4123dc8fcd35b12d2de81258b94a +f29476a4ccd176b6dcb06054bd905662 +bf7415a185821421221aacb0adc59af7 38e0e2f17c3b5559b77b0f2406a3be1d 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -10062,35 +10072,35 @@ e1161971bb06488cabe9066c8e827741 6c946d22da24cf980129bca6e8dd85ed 0f859bffb657420f91289f3404c3ac5f -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 70bab55d7cb9bda9286475b0e83d5667 -c473e134ff5edfa6838b446eb8855c76 +1d96699f1c6dd1a9cd56e70eb905207c db6c98d5d67b4033e5b2c0669a0defcb -f09971bd98ac8e508f84d66b479ca5e3 +440254be3afebcb1e39048e3d150f20d 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 ae5891d4d6ff46e24a0d271dbfbc3cea -48f08d8f3d2ead8c5083d39370b1aeda +72ccc97c1267b7432a5a34838c729dbd 8568e4d03cdcc1874f6f39e21f994007 70b002fd1a16e5e9f19e1ca9c51797ba abaf5e5dc04b686a761c0f8f40953845 cc12ebdf72077be80525d64e6a7ed5ec 418be20b4d4d50ff450dfb18734e4722 -0af364d024e25d266d1cb1c28eea545d +11972a00c6080c23c92f9dfb07d15d6c c101b90fd10577eafb85a1e9adb6c0a5 8c3a12722573cf513d5435feb7f71adf 54e9748ff0d518f522fb93e68804396c -fc5e85f0a6abb3eb1fff20e96e8b614d -4addc7730d1d459ffe959c376a3ffb36 -390fa6f38990031017a3243a9ca7e10e +6937cd0dab5849cc6e6090ebfa6d4ff6 +54f0ec2e4bd20af4a2c9ac8d15c5d3b1 +5940b1e0d9e4ef0693e6f862f1fca63c 976e6f39654ffd979a1633da2107011e 7e73be5f5ef1f54d09eae743625e6e72 -fe49e8c18551d1b553e5541e4c329661 +2959472be49271fad183a7687007452a 2b39e01ef2d55c7b3a24671fcd570e59 0b5290b5856769452f96d8557ae4af4f -00b29ab44003385e92095d6182d5d1e7 +b5468bbd78484c8d55f8cb41dba6bc7a 4de88dd01e059e9f95fa2110ae7f8009 -eb8aa4af05de65c93a0b6fee7cd4645f +1024af8ab77e45327b7d2346f5f7986d d79ce4f27f06d0289029d762e1c6ab01 eed8a78914dc69097046ef05aaefbc39 1f1976a8a42bad235f1ed009fbc606ff @@ -10098,10 +10108,10 @@ 493c788205c2f5743e9ba7d6e084f9c8 37c8cf292316d659b712e3e792776e3f 1c6a361487dcc57e627543fb69cf58b1 -f9a0dd3a47ecedc95a9f623070d75d99 +9caf24505bb667bb3dd7e228f8ddaf0a d0739d358ed00196d99144e88cdd7f7a -3ffe87b628b47fcdcda675a2e2a61955 -ba36ffe988ce6766bb1ee2c6e474aaa4 +3e1b068f6c8c349c1deff0e88c8ca80a +0e72f1e88211f93ee64eebbfe1564d1d ebc36cfe6862d9742703ea60b6bcb873 1e261eaa004ceeffa908ff6569fc2119 @@ -10111,12 +10121,12 @@ cf97318c23bd26d18d237b60384ddc66 -602e942e163c909abb47dc24b5c7adae +1460f43ddf5814a3663461d0beb1ef5c 5d320d584645765ff1a2708f271845f8 2660b72b66426a56722e0907c756ae68 -8ab54785fdf0b4043a3dc8fb9482c897 -a60af6c47538583447f6e6fc85a68d89 -c6ab0c79a8720255ad7f07b6028265c9 +79bba0d100143d3830684fbe1a9a7fc0 +e83f4473fff2b4082532ad331f1b1f7b +9389e860be256922eb37d0e88199a8a0 bbd623fc654d0934ff37ed00c28de1a8 e25797bc9974d0b299076b48287420c6 771dd023b76d580a4e7da4a064ba3d0f @@ -10126,35 +10136,35 @@ 6a62458b8fea7eb058c3a932d6ce7a0d bf6cb3413093d75713ac70cf41034423 ab594236bf2e2a55fda6cffe5735ce5c -f1e39a94ee06e05be4009d812f57e148 +413e0555429b0e7292bedd1e52f4600c e124372c58861b189c5ec1d4cb40b06b -e6f9e9fd35de4e744f1360115a528efe +4d29fd256a903cb9fb12b7795385a7be ef3b8f2d379827209d56fbacb1dd0292 -e4523f9ec87ddbf8ecfa5a72938012bc +b27f43f0542902f3cb417db5f3cd5b98 ba1cf48d1f6d031d8adf51752f179275 3646fd310e96bcd7ad15253c92d3d083 30d2ebfac928b67212840b7560e43f0c -ce4d12c3832019bebf72e251cb05d51f +5a71ae000c909a6928a183bb4a2d941e db53803710393c0486f2e99c7029bfca 390875fe099502f31e29c8772af30ef1 97a45b0930edaac8165252d084ba0832 65a69690e67238c7a65cdae57faaf825 5ffb6a54b7cb00a3b3094b84c0d76053 -e8a2bd2716f1488f851d4fb590d20824 +7d41815aedfbd86c8d0ac1aebd7fd21a 0eff879e0e50e8ce01972f38551cf1ea 6a52787b07ef94e8737e8d822bb0ecf1 acc831f5d2aa1117c678b0a8f74b32a4 -fa1a7c3981d18a90ef3fe17d82fb6c04 -edc2d3a19928307e826d91cf419aa90e -f27697039dd767b81b5c85e8a8f85057 +d18ba6977fe772f40a242719ecc449e9 +e457cadff463da8d5ce8617c6f99fb1e +8f8a364b8d31313a165b00cba801409b 4663e58b350137c5a7d311f08ab90d09 794c2d9924dbe3f2fe7679c7069eb5c8 -dc85d6e53569a8281b3639acc20305ab +11af8e473e963199d9566b7b376b3050 622fe99e2e633f0d3e1b6184ff06b958 3f924c148e0c0f512570e1a1c65d81bf -1d791641a769f9bf5856327317f87011 +f6a3a43c74a436c4303dc9a6f079342c 2d2a97a666b366adedfcae6b76159247 -bdbe47d19554d1456a95893d46aa8eb3 +0e4ab4daa9a9227ce179d13e344d2d8a 6f04c7df289a8477a4179a8b931d6da9 4d96011de54501b073ca0dc8543778ff 0e1a650c3666abf86528bfd3562aa763 @@ -10162,89 +10172,90 @@ fbcc7e7e674e5af587e6dcbf42edfd1b c810c446eca7956f538556ac7ff10caa 828d5c7956b6e0c17755342e38163ecb -c03b51754292e564f8f3e0f4b8e35732 +fcd6047c841ab6eb2f72f9614b28d6df 062c2a7a4996394f673ca9d98ef3bf7f -1d2e5d88a0ff2720bc57caf152b8b518 -829300fd1e8e442885464ca27231bc97 +05360e7849dce6f236187fadbeaae20f +42432835fda1f793609eaca22b834d19 d465a5533ec53c1b957840c88f7422a2 69e863de65c7c11b4d4359dd33933737 a287d462bc71f579eea372c586ca1e65 +14b937be198fc9c37d706a131f110c68 9f5ba8d00d619d312d40c07f38b35c6e -fd34ccb298637a35a1195542f2e7da9d a287d462bc71f579eea372c586ca1e65 ab59d61bbffe26c3fdf53d3c6b5b05d9 +14b937be198fc9c37d706a131f110c68 9f5ba8d00d619d312d40c07f38b35c6e -67292fb8dce5c231aa7861a260831881 +fb147cbb17dbe7162bdfe77907095f58 ac16b396be4bae4e72ddb087f590c2e2 7634fa5841088e340e78dd026a207001 -38abd2dbae406631a08e9033e3e92b7a -5f8a07a57c522f84e4649751f29f6383 -4c0f2aa710d36ef7b03e501639ef20a6 +47d151d6c9f7edc4b8abd57c104c7850 +53f1a80837a5b81364f828a9e284f4e2 +1dcf4436524efb1a8a13230391447a27 f0bdb95e6126f2d5e550583f455f55d9 83d51da6ce128a36cd2e5d2dbab76ce0 -f2a97948d26385dbf048ef0cf2c525d7 +31a8687a8d2cbf8992c607e1f21e0a7d eef423b5c9410bec537cf0b8eaf84d33 bf78ef45d31ebca84115e960baf244e7 adf891c20d96e4184023d04552078088 b4dc1d5d3383cd97553fd3ba3df420b5 ede3fa28a1d3a5680ef13c9e227b42ba e5d9dd14cc3d69083f2c281ed9a48c3f -c7c9bede9b70c869b29a42f61cb3c435 -778bdb1e9da02365e2897e20f14221d6 -2ff274a143460c5fcffadf35d22d4f41 +c20563eb5ab144e4caac3d422a3f7a4c +6fc249c7cb724140382a596a1b373c1c +eebc91d4fab1259c05415ed82cd19879 007da2b3bc701f7be0efb50a99d72e98 -b376d15f1f841ea112e25028f7cc538c +7597120b5a11d00a52eb601534845ec1 97cf9622d28bae2a510eda4aecbe0319 d3988891f5f080e84de28bbfde083477 508ba851c0f230bfaa3c32b813d1fcd8 -5bf202e3d88a7efec5e540ed70ad384a +979ec7bc5aa8684ffd8ff718bdeca9b0 9f887891e44e6ccd4160a5863c49cc26 9ef6d1074b9e0752a3622a84e8905b34 6d2b54979cb5388a8dd1815643da9e06 620efc55eb30835ab25b36b1f23c7290 bcb7d212efff9d2f016db69793c8fa33 -0b4dd6e943dd9306b317eed68913c9c6 +742b0e2ef45c74154110cf689a6a0f29 1099de7c892403a38bcb3f388002b114 a9bd45c8e4c6e67f48f99a56ef46b676 -d7ba26d13af730189bc501d13559e132 -d24987c65d088520362103893227f3ae -f05d6d51e1e82efb996dd8d9f1852a03 -8d5fdc8aca951de3404531602e2916f2 +35bf75e1e9a05b941031c4f40d49a9e8 +8a0018034fdca48eb496dce3958b16e4 +91441652fe9dbc65fc40d5dc679ab051 +bf0ffdd73c0e91aad6aa4e4b86f2f4a0 0bd9d42b67a73a9b4df222e4245a5fcc 6ecb7391c7998ccbeca8f1209166c7e7 -150f1e19a0db5fa98394530c8411e9c7 +090ad581e9e8c566eb52aaa42dc8fb72 3caeaa1071c0c238662aa44dd4e6ba7b df6baaf86ed9f3d0e4b94c391d77f33f -f47ff765b4915a44c54faa3d163bd2b2 +343ded92c22f650d69a9fcfb35378364 a33b50027d330ad44adcd5e9e827bd42 -8105e983c7c0a05589656c438096dc91 -a831546dcda244a67ccea03479826fbd -fc56bc62abebd400b8f4ab3cc87f8720 +81bb0c6d4650c32d2fbc032040c48b4e +7568f35163d68aadbb84ea44330a13f0 +677f664243cf071749383041adec0414 a14311660639a521042796c468a23b1d 17645bfcf4473c061cffa6613cc4626f c85233e4f43ab8c971ffb9282bc4c4d3 ceba8c6ff078ab8eb79134c5fbdf1ecf 1cbabb1cf5ee731c28753634cc3dc7c6 -7224487a45dffc7e0f13c02b9c6eea88 +04551426a0aa4ed507140ac63f2e612a 182eb0be249cd128f6aa5be40849afc0 -018c598f2ee0b26ecda0f9adb9c70bda -1248cecc4c8d2cf8d69e0efd19704953 -eb1be29a090937f7c33ca595a2e94fb9 +defbcdd0247cab8d6f14fa0ae50220de +936cad9093a2d6bced1c9bdd5a8c8f9a +75bba8fb899d23990e498f170e323e78 2a02d65f7ee53f1a006212dd415343c4 -b2385e8203f4c30378b2c71c1e266516 +17826ac0abf776f5bc6d8c68e09c17d5 dc2cd95b6531d5b5cc7d52251523506a 57282ab3ba26185cd568d1838e0ab8f3 -c2b7ed7c04722eff8385d0241430809b -ebe5932635440bd465546c556456aaef -f0576e0bcf4a0640b558c1b1276ec03e +a86f2736db442ecdfbddabdc0c2e5357 +826aba4abd3429ff665409aebda73e5e +15fb15ce131f8143dab8ffcca18c39cc a094115816a8df0c006766c4000861c6 3e5ce3b248f7dda5c1eb88b75a642f5f 25088723418dcc167b4665c455714951 @@ -10252,8 +10263,8 @@ 73007a2ccf83a6a27aee949e342a7345 b05c8370bfbe8bc89c37c083624b5dff 910620b9e594d851f1f8a1f286890aec -43be26ba966b80ef6517d38ac89766ec -c8856962f7d0d100aeba2b57445bb22f +601f004f8adb4995ee968e7a3c01b5df +8c30f8f9c7899cc04652fa00345e8ccc 6b93db41124ee6e53e738d483b6f87ad b730a74048ae2d8663b272d1d41894c7 8958650d44eb12275fd720c326469f8d @@ -10265,49 +10276,50 @@ d7054e46baeb846c67f554fbaded072a 3aeb0bb955d966af8406506605547e1c e7ac3efa7156fac7b187b4e2d3aa6b32 -4e8e5c431c3c2e0f163a18bb8a1aa7b9 +15767402780bab0cb2b45a7cff19c948 90c202b94dcd09173f067e8bf5164b77 4b3416e5ad27f1623f5c9222cf93f491 7e75fd524735ea2bf2261b3d8ec3ecb6 6f11fdfa4b04669635edc07ca6efeca4 48a83412d06860f170a73a68d6d1d607 5c3ad5663f3d6527148247ff7312b385 -08b0e452934d0f9d1ec3449bc427cd40 -408ce9bd001e7239ab2fd7477852b26c -e215b43b88af268760867eb2ec99b361 +1b425e64c64c92a307c6e16aba8e0f6b +3b991a186f3742555e60e6f61785e885 +ea89357f6a833ce27bdaa3c633b73559 838ea08d95f65f9a06957a7d066f0891 925e7c28144a75b7e0fbc57715f523f8 1025f4364ac908d77f2f3ae4c592c601 1db9e49d446f770d60dd8d133b654b4c 4941939fc3ea3906cfe30989e3c07431 f804018f508887af815f81d054905620 -0653a89483aacfa3ba2896c048ef4cbc -95310d8f1dcdf8a12818686d9c23b39f +6e9ac5f9954ea167f40c686de9be6b7b +b840d63814462bb7fb797c729a302d52 140f52814650cf6fda4427eabd69f2b3 285145b8adf6d1d7e53a1c102b25c177 673f3e0c4062e13cdef27b581fb66461 d74248250355b90443c5340490731dcf cccf582b304132fe13245e9565ecdf91 c554a1d2923d04978f3fe5cd245bba9a -3e39957bf13181d405e59e8233960846 -2705a1a9758e5ae96c36f42eede064b8 +e4f036b504ab352e3bf58a912cea24bc +5ca61a0d6b95a636b2949ae460e1d05c e0f4c93906c140661ee859581b1a168f -37d8ef562d43b0e87495c19f5eeaf848 -e43a9ff7ffce0f4f6a5aa41b886c8577 -d43f4d2940a5be7bbfe8ef2a72604825 +feb14dfc2c998cee54ba6247bb784862 +3c4f6b1eacd24b5ec036788219f0fb1a +813838a5f1d8832941b8ea61ed2c7271 e17ab7d7f81ddef4dc5e5ff071a5152c 8e7647cbe7536c0a885439de89bf2d16 +14b937be198fc9c37d706a131f110c68 9f5ba8d00d619d312d40c07f38b35c6e -099c8f56a08f89b7e0eecca685f3a91b +6656b3e6dc07ae24df1501e0932f5ce5 2da9b931d17ade2a435827c23455e872 54f046768f3455e3fb35867c5b0f1ed7 -82a0907561ffff3979ffe2a001c0ef1f -e0f7acc7edad603e290a7a6e1bdaea4f -23c88d105b3ee1d9e32c8bb8cd630efc +9be923895e488ec1757cf0a45a39a5fb +08e9fc5f52a0c53994887f92e1fcc44a +4f1b28f5fabec7c2e7cba7b1baedec07 c7888707a258ca1950680b39e80cd6eb 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -10317,35 +10329,35 @@ e1161971bb06488cabe9066c8e827741 23b458105b635bbae85e8543b714f466 2a429e1a02d9f3305cf6db2eea26714f -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e ed56660e07d6d83851450fae4059f07c -0bfd616c0df985a3025caa6daf52d789 +00031f18fd4104d1b3e39b63c3d6dc2e 79089255158765aeec5fcef88335c136 -52ff000346dec8bbca28d2c86fc4c971 +58c57248c7881f25664f38bdf8a9cd64 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 2cd9e20c479aa18f908135af201a395d -3d23b4ffe1b853309ecd0b759eed52d9 +c949765e7e8fc39653e1d97d91d47b01 7b38146af31c9a2d81c95b41efd3855a 8eb7f101d38e1a354b316641fe4ad6e7 377e3fe36becd2edafe1a82c880b5e6f 5168ede7bbba74044a5a8745af74676e a7fa3d4ce82fda303db4c0e92a25ff8f -debfd8f7ccabb0005477d9ca9f001d06 +050543336f887a276a9c6e130f1a118c 19e47714f4bbb927bde7107edc730d9f 09fcf901f0bc76651c15015c36971ba6 22ed1ea1d7eee7eb18438d47888a926a -e0276d4016a4983a096f5c1f2eef203d -e591680531def0cc4b16d4b74e6ed6e5 -f433bd5b0cd0f62bd8fb6779aa2bf038 +a8b28dd3467b6f9462fcf4f8b4fd2619 +62e9ea41e1c061dac2602181fe68acd0 +ee8a076945ed7cb442619baa9be2442f 15587334eaa9a54668859526ef2a173d ae0b2989e0a8a56c8b4a3b9a77429586 -489ed0b7efeeeba5a0495f151c2a976c +87fc4e5a3fa058627fed5ec8543bd51b 5c3fca1a0fe9b4eb6ffe3c9d9f8f7062 f326d01ea1f9cb89d96aafdbf65dfcf7 -581f0b6ff7eb581d8e752d242798486a +e0a1d61c2106bcc5f3b9725a1eb5afd1 06d2f80c85c95fe57a57f846f411bae6 -b41b85c74d99728970c1f719e92db35f +305f3329e4c7cae712862c6869f738c5 c0fb37d9b7860c7cabe50b6ee00ddd7e 2be4d4a4c067b0e7d6abb9364ac01a7f 64d8c175fbdf22de3a58f0fe7a5d568d @@ -10353,20 +10365,20 @@ d891e2b01301a0a48b054d06ec3fc777 37c8cf292316d659b712e3e792776e3f b98b610f0ade06b2961c31ff32f6a5a0 -03e9324931e1eec0d8e6998ab46c9f9f +42f04c0dcc5624cf030f70eb6ac1380e 449de434949a3e2b8780a87e7b179d3c -568f3dd9e30e2a4d38fa97d42d47e19e -6494ff264aa9183f69f21aafbd0ed866 +e0ba63b632488657acea03751b852a64 +c8ab1ce70a23df70ca4f14487cf22f69 e381c02e0afe8e2e8f09da697882807c aae9d37af7193f531dd6b5ad8adadd3f -8f962a56cc1eb95a28b975881d3653eb +9cd84209473651f97c3104ba68683faa b62f02efdf9ac0a86c18a81908c92501 eab69fb2035665be0d1a792c15829bec -45b2b9e5aa430b6c7219d0e129453420 -aa413dd7c6ae84f7b5ff136ef8cac69e -20a232265b2bf9f516e8aae10b7cbfbc +c4e28aa0e00eabde40d653f4f45e8edd +804ed0670b3482332fc7410c05f2f835 +a26fe15779d39140f8b3e9d391368e42 4692462d58a2fd80d42a987c7ea8aee2 d90e588833456a9940a42f86e8542454 d52c7d2657535ea3b294a12cabdf39f5 @@ -10374,37 +10386,37 @@ 5adb21f679d4fcb748ca9c7ca58893ab f2aff6a51a5f3b1e5070d8296c0461bf 266192aec98a0387a8023d984029ff76 -7db583994dc5ab022ab0071de41a2998 -5e84bd4cf18176dbf58bed4c2fcd8d89 -fb57bd90f112240d375332cfdf7e0da5 +3da38f4ea86ed7257ddd3008e847ca93 +14b56945bcce39241bafdf5900176d1d +123a86fb0a51a6eb103794ccb2067ccd 047dbbd17226b58dc08692395ac3fd39 -4f3884b826dae4fc3b3cf15a36e3f46e +c632a366dcaa89159c561a5339552432 2eda9af82d13ef3affd1c4942fd3472f -d97c71dd8fe48bc0eed3c1ad9622a614 +56bfb296ce3e472c9ed60c59cac8f0bd 765bb7cd6ac5f4a20b68e8027c9b3885 f8f96ff7d44cbfc3936eb112c11a2462 df070d5cf97903c24e69d1b203cd6131 -8a2ec77d6efdcebf1d64719c6dec856f +c8d0d57fd5a8a90d3dfff59f1ff9c8ee 3e3f45be57bcb65cafc6165966deafcf 5fc61c1ea6a87f56d1e825e990ac0c3d -01b6db6977ee19628350f8e55c3d5b47 -d3478934f85de491c270fc953a917833 +591d5fb87ce8f828eff137f82f6b070a +fca9396ebf7b2d75dba9615adf461163 f071d8490f9dcfb84809ae212b48ba8e -fc83fd684b959345c87e917d3850e15b +95c672d950e58c2f823cb29d16a17933 02d605d8edf28de0d16ea863656a65db 371a05c7fd519e92e711b412705409ae 74d1fa4fde5edbf44b0c31187d32780a -b6d09581798066ea44ca74ae86e812f8 -ca8d9361bede75c82c36939a79e02149 -9bca73dae22ee162474c080ddd901cb1 +333b68fdfa93dd089339149f79ee30df +91f3346e73ea2f142701a879907da30b +9b1fb82ce3b0aca36928900f127917af e7a5b910b574a29bc09a1396d1567d38 a6cb6f452563d756b01b256916a59348 -d0212e0713d89605217f433facb89266 +d91fc3113104d8ba67c51b2476661514 de4fc74e022f46aaf85ea0ffbb360a25 540b636ced7493d4b7ead20e7c43962e -706c905b0a302139594d112dea7779a5 +21b3b4c2539ab8e634694c48bfa437bb 0d9a2bb9d65f21b755512afff479d8bc -2d3adf14e944e1f8d23d0ef2c229fa4b +4facaf16a4afd6222fab22a6dbc4f93f bf1d49b310154027adf1145539cc9d07 13c5ddf75492c68962c91afab763ab5d ab399d53ef38c91f15f5b8401f1919b2 @@ -10412,20 +10424,20 @@ 6cc343a1434a7c1ea38a90ca2f9a7c30 414e0494ccd20f84c7fe6e6a1717a9d3 5439979a35ceec0a2e4a491615e3b89f -c63c5d120b9079d70d3b3a8c32a9c140 +12a988c1312f99a6f713317bc02cb1aa 9b0594e3a334ebd57337950e1374b48e -c96f2a4d21e6f86de89fe92740fd3f00 -78473ea401748a9e0089f19e6b4a386c -b493f539b229bfced73d51b4a825563a +3260650c0ae93ef2b410b2c4d71511c2 +ea971260dafded2f5fe7aeb3f5ef5d26 +ce7f65478ac60238d60f16e432c5de9a 61d7d9b8502d45fb6dae1a0889effd14 -d62c6127684538146b59b071d8c20fd9 +b53cd6293e534fa9a1647621110670fe 3262db34410c13ae4d777e263d779217 31d65a4ce3cf788da72de88f7a6b2d06 -5604da80d8ddd78276d528ec8b5abde0 -3a912c03e32d3634dde18e639054bdf1 -922009c17aa4301fcee2d337d4f33f11 +3b8e62e491e04f7a0cb9a405355e7d89 +4dc3511b315c7d298a44c38ce7af2126 +e156cc73788016169fb0b981aa35c926 256de69b0185b8ac1e1164f52be30df4 7083dd601a0dd21afa5d5ffc09440d4a 5a302a8547e9d98cab90f51dc839a878 @@ -10435,35 +10447,35 @@ 186dbbf4b11a9684557157006bf2a232 d4adc458cbbf4ae1ae05b81bc08dc2d4 4aa381d9960a082fe174a717f922caaf -ac76855ef253277d8cd5e78ed5594005 +7a6572951716b3e4ebee8fe54ffc4023 8b88abc6a7cf70ce1acfbc1f92663f7a -ba98d4865d5afae679b0b723877b9d25 +a7181cacaf1235aefbc2b3aebf8047dd f5f165bb15c6391fc12ebac3e0a0f3e6 -128763d6ba3ce6e6c511b36cbf396009 +8119a59c27aac8df56ce4b2c4d5613e5 40f20ba0e389d91edb8b29b71da6c2b2 7508982db7d5e9e5c7fec3f096de32b0 08209ad0a5c53c953fa64bcb29dacf90 -c56f3ea358f24bb4e820768e948b416b +a083abb5e95590fe1cd60565bbadbfce 769fa149d74c5645c53a89575a1cea0b dc02836368ba0678cfc7289e18edc4f3 7f005dc1c4048f02914f491339a5669b 0c4ca601c83dcfc8d0f4f45dc773e2f7 2da0a1995db50d0752d2e509a3bca37f -2b1493edef23bb26f4dbf8794d44b9dd +f0c5c0185e5e1b2923910044a19706bc 10c2dcc555137e38039193ccedfc0cd3 bb194e9b127b46bb2271d19ed84603d3 15be1fe8f10c081149a3003de6ec6921 -7415830f4a7d8d18b48e39968936160c -1828e1b486b6a890951b34489c86017e -b40e1202a1db6bbe323530e5ee4b840f +0b3e76ac18a371234ecefd89ff06adb0 +d816d6622fcaf3c5f4e8f0a516128d20 +548bc532286b35f7a6ffee2a2801502a 199dcc4ae427c0d0e5fbde6c0d2d2f99 1be19aee93ff0725138722e0b534e207 -4c2d618e179e6f7735e59a4afb677ce8 +df05fb48ea5f4eaf82df101331b39e84 8c8991fdd1f8a737640549006175fdce db71e7656127c95fb902fc19efa94945 -8bc149131c8a22ac8a25612b037b2d50 +0db4c61ae8b84b7812fba61a45ea3826 b19954c856288b7fba6053c64471aebe -b0fa3e4f18ae1d8a1e32aa07a65ea44c +2e8be846099c5d7baeb4118704b5c7a8 32fd9960b92f92505a61f1032c2bb842 a475fb087b707ca8fa0d87a0a7e38dbd 7c8a83bee9be22e875c81d9fd80097f5 @@ -10471,20 +10483,20 @@ b8c18f933445fd71ce16eebb15efa13e c52a3fd956687b01a7767977926a155d 148af0f1428d264b2c1b5bb22da8708b -96fb1af5dc69e1d953ae49ac593bcad7 +8f2a67e23c71638099040fdc6062609a 739dcbdb1af7be20fde77fdb159f53a3 -7568223af1f5039fa1d8b3a865b52add -4b3c2c2ffdacfb76e972daaee03c7a36 +9a001cf479a5f9de7ecc25311cc65302 +056b4d4acab5eaf8f5b5cf2c568b1bcf 0117a2510602eb75bcd4a2dbc035a0fb 87eae3bfbea127d8e90970cf3fe8a9a1 -a11332921ba24f8949f07f1db7949551 +6a3f53e106a9855477acf063ac72a81c 2495aaa5b99df2676b6409c322d2d2ef dc3e7510d95a4e41c33aaea7347f7cf2 -32f977864eef576e4a13ef5a9d92f6d5 -4b18991316ef0a4f0c04bfdf87f3fdcb -93add5e4203f33eb2e6b964e095054b9 +a6e0277e377b1e3d616e6ee2dd878b1f +c4ee7398d07dbb57e9caddca4813a666 +adee349ef6622b70a76756e80e2467c5 0221d29ac695e320aa365ec04ae2985c 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -10494,35 +10506,35 @@ e1161971bb06488cabe9066c8e827741 ee2fbf76bab8bb7fa64c3fb5c1f8da89 333be837bd37efd00269ae5bcaf73d6e -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 9bd2f1b9f94f34b489b4f604f75c9034 -60728101bf3ac5e3e4943e87aec24a1d +f27d3b01a2b69930de1169490ac21d39 606ec4e8caaa77b3b8428f6d048ebdd8 -0ada29167ca0d2f8b9a389fb1085c655 +ad31feff80027308a7ae4f17a1b14aae 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 84aa8a05ba6f4023339aa1fbb9a3eabc -322b601af964bf5049308e5df90bf47c +dd079ae8cedc46e35d279c27543a81be 7709eb325cb2fc85c78639890ebd925c c668be265797094334ea182a0824494b a92ebb74af2774ebdfdcfe7e56109808 cad19d84a46e0e9153e4a0fe0e6059a2 4ce126e3a1d64bf191bcc3a693a4d1e8 -0efc45e48dd4ab91364fa4f9e227cc91 +07b4c6a0da6bdda6961e9362edff649e 9af8cb14d88c4c8e0c58571545917dc1 a3be14202734967e6859f61f03850e47 7d479610d62b7c06e474a7cae6565d60 -94c7316df0f05c21b27349600a088c53 -75fe98917868dda08360d1b2342f6ba6 -889c80f5e6e068734dbe8884ebbf835c +e159504fce68ecac57037ae2393e5de0 +2a838e25d2bb6bdc96edc985f0a150c7 +b0061480473128d4e3faacce851d5b5b ee23c6c8670ec36d43be842613bf1516 986d6c4908854449bc9ac2b008e75a7f -7f0ad68769fea1fe5c78967b4afd1f55 +83c16bd1d6727db3aaf2d25e72d37977 62f9203650557bc104780fcc7d9af944 f326d01ea1f9cb89d96aafdbf65dfcf7 -44cef3b90f16b1645fbc2a42b9739e75 +93ac5288276460d632069b043ee9b2f4 65cd279199c6ec5e320dedd7544c7a08 -42913ae05252d46cada67aed19f05f6c +a65b43dafa8181d31d7444209d4e76b6 b31a45fe5b315405019d9abad5544128 dee392760d4c24a3c7f6a9a218422148 4f3b5893f55d2462354b05f22afeeecc @@ -10530,10 +10542,10 @@ 8acc527e4a123b7ff5e2cf88f55140c8 37c8cf292316d659b712e3e792776e3f f894671ece4cd6cf3692362891a132f3 -a76b6051dae03eab8af525837fc45bcd +b9a4206a2da2631381f180f1d17c22a1 449de434949a3e2b8780a87e7b179d3c -a415f1302279a799d2a4f79a01d31898 -07b2190007ce223ad2ce0754bc5def86 +4e561adb5b30f6f32722022523612456 +066cbbeeb72e13ce72244a35760d8e4f 98df0b16465e8526f1a34f0e24e1d25b 8670dccfd7a31fa4c44bc8fffd978739 @@ -10541,17 +10553,18 @@ 36d54cc80744708ba9ec226b550c8daf b445026a015b310e55204739eab1d577 921ab7227ed3abcda2db9bf141411751 +14b937be198fc9c37d706a131f110c68 2172e11a30b062324fc2a90d1f6de9b2 34ea25003f05ded5624df898f2c1ac4b 7210212c531b08cb22055f395769fec4 -11323299339745b30a4fe90e0be071b4 +1f16414a30aa0a40379d1cf47ac9a6f4 dd301d88f6d45a5b41cc61fd0398013d 707db11ae318f0427fb4de517d7e73ec -aaa07900577524ed37aefc82a0a21f3e -4cfb9de9dd3667806fb0d2acf505102e -bc732b95dbb2ad1e5da6c69fd0aa4817 +42b67a1a0346b608e443e12f29b69e8d +bbc2657930596c2b154f00988ddcaedb +b439730a1adbbf881e2fddf1e0c83748 e88891dab9672d1abf2a93d6083e18b6 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -10561,35 +10574,35 @@ e1161971bb06488cabe9066c8e827741 f207e426d375d1a5fd4be856861f2a1a 86348ea789ef1314a6e53a41b454f065 -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 87ff59e320e9a3038f5a4a82bf3cd622 -af75a4c3083eb5d8a74d9981b2287fb3 +a2efa498bb6ec2e917bc885ebe972a2d a53138e64ad08cc1eeccebf36b7ee960 -2c05961df2e4e0126903dc74f22be8b7 +57556165ee5bc8d1536476cddaeda687 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 17d68c416413db1e496ad110d8a68bd8 -3fae4559bed375ac2e814fa2396a420a +f2200cc41cb26e664754ccdad356e8b9 c3fb35dd0fefe93bbf0dfd8976709bb7 0f24e3f9b662529afcd2611dc32f47f7 4a6daa4bad5d06c18e1375e326e5426d 97cdffb50afd0bd901cc9b4260e41f6c 3e2cfc1dbeef169bb2bec99537ba3acf -e7478884fc6463636e286fb010ac787a +1c7dc815c1409f1801dda799e0c4b93e 3d9f9e874cfd7dc5eb4cb48ce2767545 ec324a67cb8145820e9ea896a36b29f9 bd0bfc8b701484438eb51ca355c9e2b4 -e4c1b22222886c2ed2cc2691acdeddc8 -5aa4a992042e3c192ec0e891574e1fcf -0dedf22b8b15e90bb4df6b4060f435e4 +cc7f2006caac14a1e4e2ae4cc0875814 +f1583dac9a5e2b71250de9a8b2e34377 +8536e6609b02d26a3181678fa36d9761 ba65eb70925e2e80ec40306484253483 eb7629f4b3e417ac96b46ea2457ff477 -9c8550ca60a52725675b3cfab2fa5b2b +90d13efe717f8457b7851bba57dd5a44 4b0317bacbf44db749d81e899c0d0540 1bc2c11dc61564329b6e8db3603fe42d -3a6ac0b6837aa7ea03adc33fc1755d43 +9e6347a68f6318ed12e65da37c98183d 0aa68b2277a2af4acfa5e470260c4e0d -24ae1586b32f094ac97b67c1da09c3cc +351174de3584d284c0a2f111b1c096a8 298b684f1124cb649afa6081ee5b31da aa3dd95196d0ec83718e74c22d0a0da3 7b3cd67f5f1c421536def5926d137a9d @@ -10597,20 +10610,20 @@ b21bc1d1fa771c7e3e886c352fd73fb3 37c8cf292316d659b712e3e792776e3f 91325e5cb13290a437e5732dd7bd3bd1 -783e3322e60569aca849aea528b36a10 +8a9f17adb34dc1f9e52e51bacdb9a5c4 449de434949a3e2b8780a87e7b179d3c -02cffdfa89fcd5dc5a31a83707283466 -964ebd4a4c1baf8541adaa266044c471 +14f0f8c0c9ce76174baabd31994fda59 +a9b8e7319dc463d1e2bc9d41dd80f1d5 98df0b16465e8526f1a34f0e24e1d25b 9e65675700f44cd62f5ce4c4f3aa8226 -fe3759e454b3a81ab3c90b5c17229c18 +704c314279365af2f7c32e3c634ec423 09e6a05a8cfe5f1533fe8144beb1d05b f423a14d136e03186e7f43e2df7c3744 -c59a78ce0dae505cb398fd904759ed70 -0876e233190cd085e0fb0d20b270225f -1861d7b71bbbc20f35c2fdb5c491531b +ca81d1f11cc2b18f78819d3856c0117a +2a2912ece2fdf7a2e3c0c9ba78d3007d +50047740e8970baa3cfc5d3431f0f9ed 30f79908815a64fd943b8085d018e472 56abeea9ab436058834bac282558fd24 8fa599046396625428fddf3cccdc1bba @@ -10620,35 +10633,35 @@ 3096e6efc0f60e8072255213788ecab9 7416a64dd5ed04c73228284cff4b6e0a f41d6cc473a9edf9689bba196dffeaf3 -92adf70d7998062351c5c13e53995ca6 +df0c9e9884678ca5fd289648f5d4af47 4d09328a05ef25857faec9b18cfe925f -531c5b46ad56fcaa6dabb297127fcb17 +d8880eb89d2c17dfd2040914d4b41bfe d99b7ed121c50b6b1cb0d9ccbc65bbc8 -eac6bfd3571c27b247a84e10c1a6a7c8 +1b70c21c20d31a6dfcbb39ab299afcfd f5f46d2641ac2af573c70801a388a5b3 c5ffae12b8dbf993f93b82f81e07b7dc 5cd42f6767cdb4b451fc4f8e297dda01 -e572334c02a469b8237572f3ec6a4782 +a593b69458210cb28c54e1d4b39ee75c 0314cfeae04a5fe2c53b979688e15fe2 dfb1bc2fafa4eef62911dae18a41f28c 212d48ba08bf3758cd311791838056bb ba79d520b3293c9582b0646a29cf18d1 56e80512ad1d9bf5e1ea6baa776aa748 -d50807150f64426639a39af531a005f8 +b2a363d7ed5df1e955d8f5703db1ee9a a3ec4dfec292f3fd441f5e5d3010c20f c26a8142ff296d988cfe13332fb14bfc ab305cce806b6aede7aacb7b0804fecb -2713587038bbc6dd759c9d90754f4a6e -c3c80a11c12c248c717289f5f6693bcb -cc0b54fa4668262449f6afa94eb98f5e +d704c39224c814f121dbd4768d18660f +645fac5cb8fe7cb33064128459eafe54 +f7cc76455b53c9fb37c27554ed0967d0 55d24007a85eb0d6649e589f8b7c2a69 351d775a3d652783a5d015060c47a446 -37c9aa38ccb6ae697a5d526de4a43a67 +a5aff1132e18ab1546a154bcc75b3691 7ddff73aac78b8badf4bdba11cd541d2 7cbeff2cf852ffd059a2371bf23ec176 -c135b745344ecb53ab7237594c5af169 +d9c8363725cb3312dd3bcd8455939ece b6600bbd673dc1a967e3d613935b691b -938efd7decfc8e8d0d1a24a0f701435e +c867458a5c775c30db28c085c83c1af0 cc7759c6e5d64dd12aa85dfd9d0ff480 116c07ff8a67e2cdc94c62376e4290aa da0fb653b20f60acb1b32e763c94ee84 @@ -10656,20 +10669,20 @@ edeab20ff1445be1465996f1a7541559 4c5eea2a8145b886a2e8af4c13fdd8ec dba90846f4c60dad7507f8eb0a8c12b2 -c67a913f6904a26cd9d8e8cef93118c8 +78205956ea2e422bd0c3551470aaf917 fab7ad4774c8821b32f59a87368821de -ade134f689894d619ad1e20689cf4f43 -94603b7807624dcbf00fb33ef7945584 +ce461eba9060cfd90008040553ae19d8 +c19f8ce8e5075509c5203a5344f42c37 2f730e10e6ff1e342e722e985b54d863 338d9c56e6653c910dac441e3a519d25 -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -cb28a04e0c5427c7b3aef15674a67e8d -d28769c3031a9a73e168480bcd47d9db -6f47685830e644eb59c6ba0687de48a0 +df410eccf21d001f9f5e65da30258122 +5d9b7ccd6766e9e943b206c4e288cea8 +244ce95591c641e140899ecf82e3a091 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -10679,55 +10692,55 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -1067d88c346ab4405e0e9b3eca7906de +33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 de30767cf0a5d454269ab9986fce13c0 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 74f49c52ba746096316a8fabfdd197cb -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -26af5b43629c9b74c66c5bc87a6e9072 +78faa2226aeb9f90e52c0f6239002838 58c41f60235ea1a5fb3991bc4fa6a24b 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 59b195fcff4d3877045fee21c364d524 f6118b412225605b9bfe2d33480f8f4b bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -0476ab8f39e1134aecf687b94ba1921f +4a55e4d7f22e7d44ef5aec63acdadfc6 cec5dc207fc9e4399548607def63b953 481d05b63d8ecea12b14c26156a6f286 -9a2f50ccd349d7544a532a4562cf7c1b -b81188718eb0e6d0be21944da85e5225 -9431bc3e8fd55026cc714728f5a87715 +a89ac2972c17bd2c21b6e71f900bbefb +0117e9eb4ec62ae70cdc2cdb032ea4a3 +9c4a32938bb8475020d126dd27add3ea 41cb1b4912e7e63055cc42cd34501683 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -10737,35 +10750,35 @@ e1161971bb06488cabe9066c8e827741 e0ec416c7a5ab7c6ec37f1451273a21a 6df07d84b58a137e49213c42629dc6ca -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 23fa1196e7e0bf14078a6439fab7debb -bb8a7926187bc7b3a5e0dee4af3ab93f +d9b279a5b8b4444c22234eff94697dcb 9a09d0e39657eaa250296b8b7e11a986 -cc7ff7ff9398f8173931a58bbf926287 +64437501af41e6600d6817c47cc9bf59 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 1a2f787c54fbe6b561fbd776a25872fc -6416c58b52a9d2a2ef47e7d43aa655f9 +3c474980a7bb1fd8a758009a01992640 b5ac41b2d7993ff82acb9a8358a17202 6177e3c17c2beae1066e42d26b0a921b 587567f577fe01bd0a203203b11e082a 312e64c5493d745c91c4bf83e3eb0b01 c3666f4bf323f11ef7117f2952a0d6dd -3fe5399b234862211f128d023d53ebd0 +260f5ff084bfd5c323b9d0cb01a37c18 57160d6901b4fe33370e429c4cb06aac 04b5877b7648ce36557698aa48eab05e 053842730e380dfddffb45bf4684d34f -e77f6307cf535ce68a083085acdbf794 -b3aeaacb3b175898937f31474b3d1f77 -aab39797ad85bf3422d70b3af0bb8d13 +37b60d2d094535b36fbb865ba1b4d779 +8bee2c0a737282254675a9452c0d445e +27eaeadcf2739876f33c94d429c8a19c 1f2dfe32a45c0cc407b1e41483875c6d 889750973024b5b9ee80157128fdade9 -efa935642d7efc23b63df49d410fbbbd +48a054998227d1b323709fd33f76506b 0b2ff41b32ddac3abfdd5615b520392d 4a64102233f5cc6a326d74c738ed1333 -32426519dfc03553cf9b9d314b9c019b +2a0e599244a9d226987f6316bd4470ed b0056be7d136075c92352bb09ba6db76 -a139fcd7a613e8f3964ca10a14a17f04 +4f46917d26218717d682a103465dd0d4 fcc762cbe281878d82d7fd73350d5d97 a2176e70d49f029e4ef345e258cabcd2 1ec82f780ad10ccf1017f53ad0a982fb @@ -10773,20 +10786,20 @@ ade1ed2ca0e9fbd669f2e93bf489ace2 37c8cf292316d659b712e3e792776e3f 29b63a9f892720cd883ad2e1936fcc87 -7c81d9b1815859fd9678ce309e098417 +fcf9a22383bc602b4753feb9f2e09129 4468f3a8b5d7713027614c35c4edb4ba -4ad13e35b0e0dc8b361c77df804b7993 -8236daa94ec93f76b07232cded167c14 +c88f0b05f3446517570cd23270b79c9b +8dcd2c6de97e085c2f3129bbab2ad105 dcda25012e278d3a5725e260f37fbeeb ad72b32fa88b149015f6e9e0f8fd9411 -a447996882554e501a33c8653ec7a044 +8fe8a1661fce90674ba71e87e478fb97 59c457c3403be06b525dd7b8c427701b d68cfe7e1c70fc21a50eab0606fb7ea5 -5d10af7a52d112ea64e951155678bb83 -56ac01bdf95a58095b336f7c91ff68fb -15966685935af399b834385044ebd4fc +51cb1664bd3521843659cb05fae8a51b +826484beb032b1d93a3741e5607c7070 +e404ca3a2e8446294b1e470e47d53004 2ac1903fa962c3d3b928b911581cf300 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -10796,35 +10809,35 @@ 3418d50e2adfabf40c3272735e88bb53 11321835cdb2fefd6e81e49b46e3a283 494d686e5feeb9726ed87d6d96dbe693 -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 48d5fbbfba60dc8cf1d182fd728c9283 -9b57359604930d69681473facf8d17ad +75c36a756bdd4b4625cd7a68a6c9d496 17eae49005c9eb8ec8aacd15dcf38b6b -51c181882921c992e28ab0c9e424dc93 +7bcfc21fdbb79da96f7374f381bae4f9 8fd7ce4aeaf2b3be11f39bf9b2be332b 28de826c00f8408c18c1060cacc44808 015eef4f2ab821df5c61bc738def628f -047c5ce175245236274011b316991875 +431b1b78a4a4fafd05d4e0bbc2c47263 5bb64010fefff4ea7f80e1ab6a6e0122 e6d541551ff358ea366fa5705aa03f33 d6580ceeb4576c2ccb4f78a1a2ec77b8 553f742a0252568f24b9cc15e948f336 7952397f4d6f94f800d8c6d06b4067e7 -d977c82412ee4263417dccbd020f6fe7 +25750dea41c887e9ea61faa23b1516cd fc591b6dcf00663001336aeb2459e123 539a0357c179e6ed2094b7ca1ebbc344 ad0d58fc24b771522ca045e1ac65f943 -1336322f9a65a69cd05fa780402df059 -d1611ccc7398aac0852b4d8f21708afc -0a1971986061c1723db06f2ce10a6774 +93a0e71d518587e3bf856496319c775a +521b394ce8ec2f87ae79770ccf5dd58b +ec4d6fe04de1980f496e9caf6fabe534 0f18fd5af1f9ce788f5053e652842feb bb7be4d52dba41ff906024591864300e -6f7cdeaa94521a24696f30e100fe06b1 +4f3542ab71b20d7d28ae60817b2eb1d5 1d998745c1680fa335fed152b242cca5 a72a089766a7cf669f6b68270ce8f5ab -ca4037021285d0de1307a991e46afcd4 +14aaefd3cb1b4bbfeafd6bef7c185285 4146dd4f46253b59caf76dc6970cfb61 -ae285bd663eb45e7c1166f6597593b29 +879db84b3a960660b5c1dfb7338234c8 cf9e4c942d0a11ae766c0fed96b23144 4900f43900b2677888e3f7ec9a376c99 9c8629c3110dac7a00b21c554e869282 @@ -10832,20 +10845,20 @@ 0c509a1ff62dd144392973d21f6f4c1f 37c8cf292316d659b712e3e792776e3f 0ed20acef7cc4de2c88ee482435f3ccd -b71526c1b44dd20cd3e5c442d1f16a2d +9d5d06d5343520f1f2bd5560833b3693 b6786821a9641b2e90eb60d1cf955593 -b6bbabcbea9fafb5ad2fa6604cb09f20 -00a1d0f7f31142d929fc7fef2d96781a +29567ae731d5a20740dadb635820c0d7 +83da48fa37c40e4f8c5ca323d585e7d9 98df0b16465e8526f1a34f0e24e1d25b 1be24d68eebff59f8a3d55d1d248cdfb -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -cb28a04e0c5427c7b3aef15674a67e8d -d28769c3031a9a73e168480bcd47d9db -a33234a4e37ef9b32b86e2c9d7260e17 +df410eccf21d001f9f5e65da30258122 +5d9b7ccd6766e9e943b206c4e288cea8 +3265e4dbbf3e0c99bce19777eb25094b 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -10855,35 +10868,35 @@ e1161971bb06488cabe9066c8e827741 d4a0ea69d0b59441b8f0697456cc3140 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -c5446703ea09fc7df6c86b60e5a098ea +a9abc615abd8dcb10635fb127bfd511b baf38b4ec10a43d12a333a1c2a28224f -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f d91a412e4582686aee55e22120f10420 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 7bc61a1f1daf334bc893dd1f0b05ca37 -6fc6f141ab7edcce1e50ed262ee77e92 +844b39f8467ece7a7932e4bfee4bee76 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -e9451efd6d65dffdb9478b8617f7007b -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +8986c14f9db4b7871a5f96050aff82ef +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -5f159cb90408adc70e38433de187cc99 +21bad97ed84232f24a79e21f9f438961 c57c2471c7a6eddd29d27909cc422e41 -8c911b9bab3a5c1b853ee1e89c6cbe52 +3777bff94a23590b1939610196e43a32 0015287d927b33b71d654076c2b0773b 8cc192424d2a8a3a8439cf6c9e9c866d d32aa2e1c7b5bd07001c90bc13dc7b50 @@ -10891,80 +10904,80 @@ 5ef140466400c96d5e5cbbdc7cacee28 37c8cf292316d659b712e3e792776e3f a2b48c147b497f22bc9816616ca4cbd5 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -fea12cb5a87b79f522fb90d3bc37c754 +6cc0c652a67b7a726760dcdc608db98b a7a17bad11811e39b0164573964f3c18 3814711841ff79bfb1bffb653cfde0fb -3b1e3277f2215f65bf41f5cb22e422bc -414c6b81e62d76f84238870493a91898 -41a2598f95f0c082984c881514414215 +c6794aafb3744bde6e6f10406dfdcbea +40da93d7868af1bcee8c47d560dad545 +f7b95693315b045c22b7868e83fa419a d7a12190e2704590b4523ba5b60dd6b6 d85c3718dd925b2f2749a6293f5cb8a6 -33ba0fedc05566b4cbf736ee4592acc4 +6173cfe37fe100bca15d634b617e43ba 3da2d86b46b9f04a99b688e4341d9750 3394594b3b0fd3566c00254fbb89dc74 407ba5abeaf3f08069464027cb52bbba 8c6845892177aee173dbaa73e8cd8ddd -9a5bbc8bb17b41afa8bdfea9577f2479 -2098f27b31a488999d707a21d60a036a -63d6cff6956a13af8160d0b5c8dc323a +c314672849f4fb6754bc916bceaa7103 +de693f4543cb9af1e5999b8486f4da41 +baa8fc8768d82c06e62f9309cdcdd518 34b072a62869a2440744c844b1883efe -91f992ec94967d1d6222b1a5520a799e +861dd1133b381989d899332f484cc543 b80c70a4104afbcdddb55fea9a09f703 -fc33056a7adf821b9a94ac912846d837 +b2b79aa2d9b051ea649c131c5d7fc69c 1f454c455358e56662f3ddf5e1832a39 c336f582881f9f5ee8c96bbc8eaced3d af051e192fdf402fc272d8f347236fc5 -df962d37596dbd1a3142fae9eb418bdc +fc4ad53fd61f746fe581f447bf76d79e 70e166ce8c734b2c4b6215bef0875c3d 93350f7c0359f3cff6c242f2e5924e3c -a1a7e4f1dbe4e5d93a81af445cd26129 -f2abec4112941a84bebb3338fd2aa9cc +21f823c2cd67de9d315e5db41c85aee0 +d62dc162efce8a950de403e522b4657b e7e60217406bf671e98ae7124f69e8f4 -b4920a32cc2c0fbce995433c090ba551 +8fb6625d18bc2283bc2b745f7cfb47f4 bcaf0ee7ee4ede4c0b11d33262e06913 4508eefc4cbf06183f780a47550b51fd 624f8ffd5c36af2b87a06aee63b17bb0 -08a3aa3f2565298e4bf4c4fdf72bafa9 -4620777d2f202c6555fe8e6dedf98fcb -f85f9f7565a8a0f1a3f28336ad8ab6e5 +88f572d21982792d5393ee999d2c443b +301863f24dfdf588d170f0dd76389132 +307d48fb06eea97b2818146fbb8929cf bee0636e455ad5d9a8dcc288ac2abb4c 9875bc160f395b95a197ffbb4ac22190 -9c1e23da81dc4a63a31957d58854c6fe +af0368dd00b10198d8770cabebd9e6ed 77def64e09174fe0ebc597e0e0f643da 7b075b656401153b43a2fe09321bcdf1 -a20b3b4d6be0dbbd0fad50781b826d0c +d2e91c6a29e54a76ca5b983547d8850c fe7b10789faa1e33034ed5bea8a9520d -eca8de567f74ca2c37175e7ccae1cd14 -827630b184bb3fc85e20521c3990f6b9 +73c05b103c926a9cd6f6d4adb14bc0e8 +a0ee07d48296bba0fbe1154d8bf4f292 2bac51be88c59c5ee21511836859e221 0889424a15f7ae4d5147e680d379e3c0 1da322fd765395f75d1bbd0857995779 699d8c5cf75a68b342647cee67c44485 a1fe9c904ea0bd6d6ea490b977432ffc 78c3ad1c535be023623d3560b843afcb -3499b581cd90bad22b37220148cd7d02 +8f7220da3aec4a4e3960715b2153411b 89b6756ccb0d05b4191b704aafaf5803 becd3ff12eb9f1b6de5082ea51c5bf9b -3927cb9e213923b52be3627a8e75a6fd -2daef2e8342cd350adf3130b3b62d057 -70ba7037ac0408cb03d1b939ed65c1b7 +ba79a127979def278922a780ad5b1c5b +322469f3805d514f7b1d9c762d6cd232 +a519d93c30b602096b8eb9025f0a0441 af1f4c3b96562f5bf2f6a74c89f86c30 -a31b9ea446664690583d14f14eb5cb93 +301730ddc5a7a3b114fc6ad7ed7bbb4b 9e04b2cd1b93f421705034d5206749d8 6d53c83d0c2f41f894615f0efd6c8cc9 -a3c386c3bd9bcc6f7df031124e65f4bb -e50905daa3528b9182a1d886e9f13f54 -d043322c8b2ada62d508b8daac2311b1 +dc118354cf69a5a9d83213658f3dcd93 +7abcf80b038ed1d22f9a8025a6576eb7 +c2f264e2d0ffde1e9ffd64015d6882ee 7519e01ebfaf184e31451303d0fc5faa 83d51da6ce128a36cd2e5d2dbab76ce0 70ba2538054b4121e9e5869a5a611933 @@ -10974,35 +10987,35 @@ 54e556dc87e7e004fc79a780d8a15b5f a87a5823097f9b179e9ca41f4df15ff5 d198da62a38f45957224d91d0bb33871 -5a917224ff01128938882ae8b9dbdcb1 +5220ad42964fc5e17e0737370f1b02cd 8994f5de93743791446f9e43ce29d16e -212ec7ce17f1a085cc6601dd46aa12c1 +be9aaca861b2c4ec30707d2afc503f25 87204bb4bc4b2de9530578fce343498a -c2d079629f96115a9d0f1b502a2fb071 +3e6bd2e8c70356bb4529f497588c3d95 1898ba53941f49ece5a58b90fdac3ebd 74acfae0cf773d1140832af7e5667186 b8d00cecdd692f0b6cdbe4957f4ffcf3 -9f8adf4e7324896d5212987036e78551 +95edb6168835f5a622cd7fb18fa665d3 a42be7db361dd5993f28868e4a3f358f 2e649b660a18eb203a07078ca6f0ddb0 c63461bcd3764df8a686a5a17087c1b7 c590c3f7bd0bc1c8991c0b7f173d46cd 7bc61a1f1daf334bc893dd1f0b05ca37 -c2300c75472005b32a2bc599adb5924c +edce79cf3df5bc7d0df0017ec94811ed 5b4959ed0c32ed6a409144c78c8b9fb4 54ce90907c5b76dfccd2b3ce0eb7bcbc deb9e5e980af806b4cdb486e1f6dc295 -e574ff9b462486920fd0765bbb74f979 -33c9776d973640605907b0b504b6420c -7ae4039739f877e3effecc657d4001bb +2789e50ea7509c174142c258d1165c88 +2a07790ed7e677fcc256d2460e5590f4 +be52ecc505ea2cd13064e83f28eead68 1ca4e724a542dd90368a4612a878aa7a a114ac6eecd4701929fe3fd8f172dee5 -6c82b555404859d9e7c77be66b7a668b +e17132c2639ccf18dab581736d16ab19 a7af99484311ff510f4378fe059ed4b5 f326d01ea1f9cb89d96aafdbf65dfcf7 -a1edfdd1546848af612b1f4b25cfb92c +b1a1a60d95cd68deeb4cb45550dc804c 45045a9eec7c672c032ec3f2697cf63c -f38cf117187165f1cd256c7a9523cbde +c2e1993c06302b75188c19cbcc1f2f15 1b352ca85acfb0a6ca7ec47574221626 0ad67108567f99662f7dabc9585331da 9e73e48da807bd19ea533c4e65a2e6c7 @@ -11010,15 +11023,16 @@ bd993bfecb71e53562fe2f11ff3ec37c 37c8cf292316d659b712e3e792776e3f f663087045123171ae4ef4a5b282c7b9 -223a65bb5300e05f4f02b0cd06e419b4 +51ffcf7fea03b77d0078ac35e99944a9 1c69f14e9f4dfa446476883fe9faf925 -dbfe16acafc16e7e64a226fec0f624be -c83eee73475a2d6f95c903295beb60cd +369ab954165562248ee42ab33e6b12a0 +2772e4b190f0ac3a3de994f9edf10074 2db7fe18b1200b7eb75af0c44f79edbf 56d8a0b2df579f5cead684b83fdef191 a287d462bc71f579eea372c586ca1e65 +14b937be198fc9c37d706a131f110c68 9f5ba8d00d619d312d40c07f38b35c6e @@ -11030,46 +11044,16 @@ e70e0c0be5993759f867484624b7270f -3285f8a7c9e4d322a2068067f1fed85a -6047aaaf0262692e751f8b2b5a4d74ae -105d153b9d4e5d164bc9cc0937751534 -f4fe0457c05827125dc44587afcfc721 -9f0b0c6a5186ab5c5da48172ae76194a -99a28d08047f6c81ba7ff3f6fe95bfa4 -5d22af2d16433442fc36311329ba9d8c -5dcd73da5d83f31a6433afd556ed73f0 -10b082ab22eba4b151b5323769629e4c -e5e55ad983a4d66b3abb4bb2c81f3fc6 -58dfccf625a60694f9509b081b961bb4 -f179873e459544a3907d05e44d8ad70b -2882689c7d3e5e0c95852b4309f127ab -3ed38182bfbeac7199bcfab093a2e0d3 -5197d029a3997bbb53042f1542bedac7 -683d2e5adb581001bfb963108eedb9ed -0322f5bdc95433d78adaed428a0234dd -6e64f3cc1bc014d3697121ebd8b2ad31 -9ac95456537496d4be962a0202d220e6 -19f4a42d4fb2adeefca97d8e25419e08 -0dce8f99073b5b1da5a7430e1175d09c -e65a52cf4d36941cd248253dcde969c5 -323b8740b1b8878cdc58c7e24896882c -77c9fec56914d761497eb753d79ec03b -c4abfd085229f64c2e3c7a6ff445ca31 -85b587b7a690bcb4a33a5c0692c17c5d -ebd6de6f38a691c7eee2982f0722884d -e9ff911d60b95167d763b3ced8fe223b -cd8e8f437e67f5a70f7b2be23679f04c -86a9aafec679ed16e3dd3e0f3ae766fa -056aaa9c92c6ee9caaf680555426e22b -2b30da3ff0c32ac08a5c37f4321027d4 +a287d462bc71f579eea372c586ca1e65 +9f5ba8d00d619d312d40c07f38b35c6e -e6cc932faf2469cd6839ecedf203780d +001f89497d83b75fd374517b88d782ee c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -3a8c4db1499b8dbf5a8677e33dfe86f5 -d28769c3031a9a73e168480bcd47d9db -9b0b07c16b35fa33da754d07aaa96691 +fd49f158c63c1e262131727166661df4 +5d9b7ccd6766e9e943b206c4e288cea8 +e7cbb3f5347a6186501681bdbda58f9e 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -11079,35 +11063,35 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 d195ddd5ec7ed1f150a7ee113edc1a6a -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 2b2a2539bf08025ea2794371cb5d5edf -02a0d0ee4228763337eb9a0e8ecc493c +89d74d9cd7885c8ceaba6f9a15ec3589 d976f528676688719bb4ed9da722c798 -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 081ddaf3beab038b809eb6db2957285e 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 -01ce0b50fc1287f059584597f867285e +f5c74ffcbb82b66d295e84cb0c11b477 4e186ea8084c33de3fec3182f57150ec fb5913e34a812d5fdf9e25b8ca8c9fb2 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -03380d27d24a98217523ca6f46e270b9 +87aea5e86e2ac2e10e0f98c23a552640 ab667e6064cd5ecf206e86210ef81994 8cc192424d2a8a3a8439cf6c9e9c866d 3122c8015a2583d254fbdead8e4fde52 @@ -11115,20 +11099,20 @@ fe15c711278cda92b6fe60ad0bd4a4a1 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -946ef98cb632dae375060b1f1186f2c7 +b59c994938b335efe318af6e6cd7d977 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d6ccca2840c7230a4d36fb3d1b0d55e1 +3ecfa35141eae057f996daee3608c0c8 +d7385726059a0035f5c91a2c1602f235 98df0b16465e8526f1a34f0e24e1d25b f1f34d8c0f864daa5e8ab56801027430 -cc3d47304999f5e5a7149e30a7f5f082 +f67efb48f1c66c4a32a71e6f70f49b7d 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -a8ee9767266e3e45825fcc67fd8fbbff -db1fcb36377c49e6f8f36666a97115b9 -af82c7d6937f6450e9c0687b3f57dbb1 +ed09fddf882d9beadb8043fa20872c5b +58d8a88c479e8ef6bfe376130f2d7fd7 +46100ab9de7bbd18588c7d8bff0b7eb2 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 @@ -11138,35 +11122,35 @@ e1161971bb06488cabe9066c8e827741 d255ea5b9df613deb7f8f85bc5c93241 73cdaf1b551687a5a117792c1f128fcc -cce523f0de9f4c45020b92648a06a6cd +fb330418c81c08843a8ecc7b41911c3e 4e48bd3662bd4f3d43cac92e7796d89c -bb328d5c92573a42430b48c5edf4029b +06b696eb0e3787682befe68fb70ea395 87204bb4bc4b2de9530578fce343498a -29a827977393113d68b31afa85a40c2f +1ec6007e78b7fef3a0c46b285f5345f7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 -14284138d5f94467eb25db3495ebd96d +17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f 6debf0d0e4964cc8c9e574386a87e036 6f5383381ed0ddbf7be82d2bd8e158d6 05a11b19b5162789760c9838a936df75 7bc61a1f1daf334bc893dd1f0b05ca37 -8c957ca8bc2c227b29712e0b93e180c9 +24076c897f856af4bf47d86d96078688 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 7ac550b131a480505f0160feb1984344 -c04aaf1307303f886ee22942e61c6504 -b658500348a15f4736a1a2f3ace61d66 -e8d593dd57a0aff92da5c21487cbd68b +22fe87d6626de9d7ef505f8997309e1a +4f231e473fa377b7f6cf6b3a778952ea +5b4aa669a151dc30f4dba6f345177d91 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 -040b1884027518b0d658b646838e6e1e +589333633b6d1adbabfd86f078697ed1 309215b54637ec841c73ad9cb60c92c2 f326d01ea1f9cb89d96aafdbf65dfcf7 -29ed06655458ba047af7a30f78db3bc2 +3868fe6746505c0449f7ab2550a54795 e0ba51b98a7560425f1296e931803c92 -7cf6c53202c1c332983910289e7ab66a +fd5f5dbca99d9cd162b36d466d05397d 22a55c993f07ee610d137edab7539923 3c262e53abae368513df941815512cac 3122c8015a2583d254fbdead8e4fde52 @@ -11174,10 +11158,10 @@ f6118b412225605b9bfe2d33480f8f4b 37c8cf292316d659b712e3e792776e3f bdb2338095a4ea340c6d023c861169c6 -bc8210d59796c9c1d7b06888228180b7 +61d90889b920b416295702168623f0fc 449de434949a3e2b8780a87e7b179d3c -81702b31e6f4f76cbf671ce238bc01a7 -d1ed49a3ca42ff5c80311fdc840c921a +3ecfa35141eae057f996daee3608c0c8 +392d29d07b9eecdc15f88bbade3f4553 98df0b16465e8526f1a34f0e24e1d25b 5e857db1c2b2f3c5b49fd68ef1fbad23 @@ -11197,7 +11181,7 @@ adf4d0f538de7decd6b3e4c5140c159a -9f1dec68ba7234ffe710993fd505e182 +6cd1200c5de4e664f873c1131c4b4605 d41d8cd98f00b204e9800998ecf8427e @@ -11212,17 +11196,17 @@ fc61a3df1cb5d3d591c9bca0616b1e4d -78ef28597da219fe5d2942477759b539 -ef3339ddf78368742a8cbc4c3bb5b9a9 +32625500a075f907767f520e24cbb23b +91cea0a4ba9fce3afc289d5690fca4dd 8326aa93734dd8035a04c12062e68ce4 d41d8cd98f00b204e9800998ecf8427e -b3bd22b7caf656148a196852e5ed94a8 +5fbf322b32b161612161d4fdfcca5749 -099f9b1f56cae48a1b679ed282e3766d -4f6660f6709655f539d4e56721fc702f +f30fdf4ab338c390c86e1617a5426e0f +123d27cef1a58bd71d0be5d43709c150 cb9c4c953a1350de8d779500f2d4f30c 7c588d92e0178284a33300bcd72fc3c5 @@ -12872,7 +12856,7 @@ d41d8cd98f00b204e9800998ecf8427e -19048a685e07cfac38ace257e99293f5 +0f5f369eab5868128d08085572f6a912 d41d8cd98f00b204e9800998ecf8427e @@ -13185,7 +13169,7 @@ 016d324c588d6ce78db3c6625c5b86fc -669ddf571cce48dd60b0323fed7379d1 +d2c519cac686043d7686769a322fd1b5 c1d33938283415cd00527289b0d7c3f6 @@ -13195,23 +13179,23 @@ 2543eee751616a5c74e1bb37c5d64ae4 -afdf287857737937c6298e06f6b03e83 +e611f5c3d04bc4bd9cdee4a9a5af6d0a 11689e5722e4204b9d01e5e4483b92ef -50ef40de1032f86193f40b2f0295c59c +7529966db8d111e5c265262581e19e1e a20a84fb09238e216ab80d91674426b1 d41d8cd98f00b204e9800998ecf8427e 4b94e9ad89c520b4cc4ab986a1cfb5f8 -d2216521a6d5cef8ac0bfc0f1a4adc7d +86af0ee60c4aae4f6efeef2a521a0039 70c0bcc71422c17305e134929089ed0a 96a92bc03a6ca67f39d363c36031dee7 -408905fde09ef57f089ae9217427d720 -69f3cf8423a9ec5a21c8972ff3a8754d +353d0788a1b27e81a7c62446ca190de1 +24ec433a2020143f3a634ff9bf695024 5e1aea18f899b4a763a0291dcf1f2b90 b2c7012ed8f4226c6fda016a3ea1aff3 9dd4c109f77db954d5afcb20d5af9e4c @@ -13227,16 +13211,16 @@ 24b8f65ab4a24ff8241b8af469928f75 -26b079740fc3a556f3b8c82a30e75103 +e876e30d4e723313b9e22fc158a80117 7770e9e8e3fb4b98bc149059c5bc9633 d41d8cd98f00b204e9800998ecf8427e -cd61aebb32af1a899c52b35e860a6529 +094b73de61eaad218343e1183fe4a67a 7b7cde9c324feeed6e94f50e1655ba40 -cd59d5a20209a1d240927af651d3046e +61e24a32c8c6bbf13272f96433a9584e 984c0b75c89d9ef9fef1fb68dd727448 966129fc8b4d82883741779cf87ea57a 4291524b8a1b72ba1dddf8210dd394a7 @@ -13250,7 +13234,7 @@ 0b959ec99ed9ee63f065c7d40454b9ec -56b40bcc38c021993b8ea362b32858fb +178dc806a0546aacf323c2bd61b0b6fd d41d8cd98f00b204e9800998ecf8427e @@ -13258,19 +13242,19 @@ d41d8cd98f00b204e9800998ecf8427e -0e715ee8d8a5e223a030c0275976ba3c -224bff480a5e27f5adfc25071f12ec04 +cb7d56d6c48746ab5a1230b020b21475 +03c8aefc955ba78bc334718fd8e48f8d d41d8cd98f00b204e9800998ecf8427e -23953cffee3270ed1221919176056bd3 -8c2a7d488b31b5e478a8b081add40d79 +4b66ffd93217cb14fa44393d7ed28995 +7a3cae542041eaa003ce58a9ff3dc82b 419a141c971f0a5edd4c8d19ac6f9741 1f014c58fdf956eabae16c7b8774b02a dd36572d1e317345996c521a9ce5c221 -7a38db77d9e3e48f9ddd737f776a49c5 +9abec172cb37c2446866c25c2ce36671 ad18616245d53b066a8287e98845a8a8 66b616b872ef80968c8525b6b14f62fa @@ -13292,5 +13276,48 @@ c8794336eba88e9ce0af56f8b5cded4d - + + + +7c7d00777d21ed95c127af574c6ec4dc +391071254a71e5fe29f6a22cbfc27543 + + +d87e04818900b16e33d6ff072bb96ac4 + + +db1873d6baf2f70e94105ee43cc72633 +a9a4cf07f35679b20f9024bc4de3b3d5 +257ff234c2372ad89a1f45f5d1b418ee + + +5fd136bf4934520ef298c6a3afd58a4e + + +6aab5f541a8f35b6e04cdaa94e51bcfa + + +b63ae515c552eb1b143cedb9f80b7e4f +8e8a66035dd90a4e18ba500469166691 + + +d9fbd3c65ab7d5dcf5152ea76a605ea5 + + +b65459b4d85b0f5c0aa1db76025ee46e + + +c8375c535010671604b34b320866da37 +a5078a8ad692716abbc697b629f2cedb +e76a888f442774b3908a2beb35bc9f87 +a79b4df688dc6f03a468c89cf9345295 + + +d4034e549bfe8fff645d8d8978261d55 +69d546f3721f5c2695535a92bad97221 + + +bfcb5fb6ed7ec4fe114b3088b89d3687 + + From 1d4c747aa21e73560f7be2124a04410ce660b9e4 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 13 Sep 2015 21:44:59 +0200 Subject: [PATCH 081/205] Fix #3227 #3226 Missing translations in supplier exports --- htdocs/langs/en_US/projects.lang | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index 78b50356fd1..d9fecb40ad4 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -1,6 +1,8 @@ # Dolibarr language file - Source file is en_US - projects RefProject=Ref. project +ProjectRef=Project ref. ProjectId=Project Id +ProjectLabel=Project label Project=Project Projects=Projects ProjectStatus=Project status From 334766d1945cf2f4baac2aff2c916169c7cbdc96 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 13 Sep 2015 22:03:54 +0200 Subject: [PATCH 082/205] Fix #3225 Missing translations in interventions --- htdocs/langs/en_US/interventions.lang | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/htdocs/langs/en_US/interventions.lang b/htdocs/langs/en_US/interventions.lang index 67d4f61d9f1..2ef54f80516 100644 --- a/htdocs/langs/en_US/interventions.lang +++ b/htdocs/langs/en_US/interventions.lang @@ -51,3 +51,14 @@ PacificNumRefModelDesc1=Return numero with format %syymm-nnnn where yy is year, PacificNumRefModelError=An intervention card starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. PrintProductsOnFichinter=Print products on intervention card PrintProductsOnFichinterDetails=interventions generated from orders +##### Exports ##### +InterId=Intervention id +InterRef=Intervention ref. +InterDateCreation=Date creation intervention +InterDuration=Duration intervention +InterStatus=Status intervention +InterNote=Note intervention +InterLineId=Line id intervention +InterLineDate=Line date intervention +InterLineDuration=Line duration intervention +InterLineDesc=Line description intervention From 3b01b8cb4796de441c5d8f1d7c5193d2d5bad0d1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 13 Sep 2015 22:50:08 +0200 Subject: [PATCH 083/205] Fix security hole --- htdocs/filefunc.inc.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index dc3f1866382..1898b50e693 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -67,7 +67,9 @@ $conffiletoshow = "htdocs/conf/conf.php"; // Include configuration // --- End of part replaced by Dolibarr packager makepack-dolibarr + // Replace conf filename with "conf" parameter on url by GET +/* Disabled. This is a serious security hole if (! empty($_GET['conf'])) { $confname=basename($_GET['conf']); @@ -77,7 +79,7 @@ if (! empty($_GET['conf'])) $confname=basename(empty($_COOKIE['dolconf']) ? 'conf' : $_COOKIE['dolconf']); $conffile = 'conf/'.$confname.'.php'; } - +*/ // Include configuration $result=@include_once $conffile; // Keep @ because with some error reporting this break the redirect From b4c964760d6ba600a515ec318670466c4015a707 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 13 Sep 2015 23:25:55 +0200 Subject: [PATCH 084/205] Sync transifex --- htdocs/install/filelist.xml | 310 ++-- htdocs/langs/ca_ES/accountancy.lang | 36 +- htdocs/langs/ca_ES/admin.lang | 4 +- htdocs/langs/ca_ES/bills.lang | 8 +- htdocs/langs/ca_ES/boxes.lang | 4 +- htdocs/langs/ca_ES/companies.lang | 18 +- htdocs/langs/ca_ES/ecm.lang | 2 +- htdocs/langs/ca_ES/errors.lang | 12 +- htdocs/langs/ca_ES/exports.lang | 4 +- htdocs/langs/ca_ES/install.lang | 2 +- htdocs/langs/ca_ES/main.lang | 40 +- htdocs/langs/ca_ES/members.lang | 4 +- htdocs/langs/ca_ES/other.lang | 2 +- htdocs/langs/ca_ES/projects.lang | 58 +- htdocs/langs/ca_ES/propal.lang | 4 +- htdocs/langs/ca_ES/suppliers.lang | 4 +- htdocs/langs/ca_ES/trips.lang | 40 +- htdocs/langs/ca_ES/users.lang | 2 +- htdocs/langs/de_AT/bills.lang | 4 + htdocs/langs/de_AT/holiday.lang | 3 + htdocs/langs/de_AT/main.lang | 1 + htdocs/langs/de_CH/admin.lang | 3 + htdocs/langs/de_CH/banks.lang | 5 + htdocs/langs/de_CH/bills.lang | 52 + htdocs/langs/de_CH/holiday.lang | 3 + htdocs/langs/de_CH/main.lang | 1 + htdocs/langs/de_CH/projects.lang | 2 + htdocs/langs/de_DE/admin.lang | 22 +- htdocs/langs/de_DE/agenda.lang | 12 +- htdocs/langs/de_DE/bills.lang | 14 +- htdocs/langs/de_DE/bookmarks.lang | 4 +- htdocs/langs/de_DE/boxes.lang | 6 +- htdocs/langs/de_DE/categories.lang | 8 +- htdocs/langs/de_DE/commercial.lang | 4 +- htdocs/langs/de_DE/companies.lang | 8 +- htdocs/langs/de_DE/compta.lang | 2 +- htdocs/langs/de_DE/contracts.lang | 4 +- htdocs/langs/de_DE/donations.lang | 20 +- htdocs/langs/de_DE/ecm.lang | 2 +- htdocs/langs/de_DE/errors.lang | 2 +- htdocs/langs/de_DE/exports.lang | 4 +- htdocs/langs/de_DE/interventions.lang | 36 +- htdocs/langs/de_DE/link.lang | 14 +- htdocs/langs/de_DE/main.lang | 20 +- htdocs/langs/de_DE/margins.lang | 4 +- htdocs/langs/de_DE/printing.lang | 14 +- htdocs/langs/de_DE/products.lang | 2 +- htdocs/langs/de_DE/projects.lang | 12 +- htdocs/langs/de_DE/propal.lang | 2 +- htdocs/langs/de_DE/stocks.lang | 2 +- htdocs/langs/de_DE/users.lang | 2 +- htdocs/langs/el_GR/accountancy.lang | 4 +- htdocs/langs/el_GR/admin.lang | 2 +- htdocs/langs/el_GR/agenda.lang | 16 +- htdocs/langs/el_GR/banks.lang | 14 +- htdocs/langs/el_GR/bills.lang | 4 +- htdocs/langs/el_GR/boxes.lang | 6 +- htdocs/langs/el_GR/holiday.lang | 2 +- htdocs/langs/el_GR/main.lang | 4 +- htdocs/langs/el_GR/products.lang | 10 +- htdocs/langs/en_AU/admin.lang | 3 + htdocs/langs/en_AU/banks.lang | 5 + htdocs/langs/en_AU/bills.lang | 5 + htdocs/langs/en_AU/main.lang | 1 + htdocs/langs/en_AU/projects.lang | 2 + htdocs/langs/en_GB/admin.lang | 3 + htdocs/langs/en_GB/banks.lang | 5 + htdocs/langs/en_GB/bills.lang | 5 + htdocs/langs/en_GB/main.lang | 1 + htdocs/langs/en_GB/projects.lang | 2 + htdocs/langs/en_IN/admin.lang | 3 + htdocs/langs/en_IN/banks.lang | 5 + htdocs/langs/en_IN/bills.lang | 5 + htdocs/langs/en_IN/main.lang | 1 + htdocs/langs/en_IN/projects.lang | 2 + htdocs/langs/es_AR/admin.lang | 3 + htdocs/langs/es_AR/banks.lang | 5 + htdocs/langs/es_AR/bills.lang | 3 + htdocs/langs/es_AR/holiday.lang | 3 + htdocs/langs/es_AR/main.lang | 1 + htdocs/langs/es_AR/projects.lang | 2 + htdocs/langs/es_BO/admin.lang | 3 + htdocs/langs/es_BO/banks.lang | 5 + htdocs/langs/es_BO/bills.lang | 3 + htdocs/langs/es_BO/holiday.lang | 3 + htdocs/langs/es_BO/main.lang | 1 + htdocs/langs/es_BO/projects.lang | 2 + htdocs/langs/es_CL/admin.lang | 3 + htdocs/langs/es_CL/banks.lang | 5 + htdocs/langs/es_CL/bills.lang | 2 + htdocs/langs/es_CL/holiday.lang | 3 + htdocs/langs/es_CL/main.lang | 1 + htdocs/langs/es_CL/projects.lang | 1 + htdocs/langs/es_CO/admin.lang | 3 + htdocs/langs/es_CO/banks.lang | 5 + htdocs/langs/es_CO/bills.lang | 3 + htdocs/langs/es_CO/holiday.lang | 3 + htdocs/langs/es_CO/projects.lang | 2 + htdocs/langs/es_DO/admin.lang | 3 + htdocs/langs/es_DO/banks.lang | 5 + htdocs/langs/es_DO/bills.lang | 3 + htdocs/langs/es_DO/holiday.lang | 3 + htdocs/langs/es_DO/main.lang | 1 + htdocs/langs/es_DO/projects.lang | 2 + htdocs/langs/es_ES/errors.lang | 4 +- htdocs/langs/es_ES/exports.lang | 4 +- htdocs/langs/es_MX/admin.lang | 3 + htdocs/langs/es_MX/banks.lang | 5 + htdocs/langs/es_MX/bills.lang | 3 + htdocs/langs/es_MX/holiday.lang | 3 + htdocs/langs/es_MX/main.lang | 1 + htdocs/langs/es_MX/projects.lang | 2 + htdocs/langs/es_PE/admin.lang | 3 + htdocs/langs/es_PE/banks.lang | 5 + htdocs/langs/es_PE/bills.lang | 2 + htdocs/langs/es_PE/holiday.lang | 3 + htdocs/langs/es_PE/main.lang | 1 + htdocs/langs/es_PE/projects.lang | 2 + htdocs/langs/es_PY/admin.lang | 3 + htdocs/langs/es_PY/banks.lang | 5 + htdocs/langs/es_PY/bills.lang | 3 + htdocs/langs/es_PY/holiday.lang | 3 + htdocs/langs/es_PY/main.lang | 1 + htdocs/langs/es_PY/projects.lang | 2 + htdocs/langs/et_EE/accountancy.lang | 36 +- htdocs/langs/et_EE/agenda.lang | 34 +- htdocs/langs/et_EE/categories.lang | 8 +- htdocs/langs/et_EE/commercial.lang | 16 +- htdocs/langs/et_EE/companies.lang | 6 +- htdocs/langs/et_EE/contracts.lang | 10 +- htdocs/langs/fr_BE/admin.lang | 3 + htdocs/langs/fr_BE/banks.lang | 5 + htdocs/langs/fr_BE/bills.lang | 4 + htdocs/langs/fr_BE/main.lang | 1 + htdocs/langs/fr_BE/projects.lang | 2 + htdocs/langs/fr_CA/projects.lang | 2 + htdocs/langs/fr_CH/admin.lang | 3 + htdocs/langs/fr_CH/banks.lang | 5 + htdocs/langs/fr_CH/bills.lang | 5 + htdocs/langs/fr_CH/main.lang | 1 + htdocs/langs/fr_CH/projects.lang | 2 + htdocs/langs/fr_FR/bills.lang | 4 +- htdocs/langs/fr_FR/compta.lang | 4 +- htdocs/langs/hu_HU/bookmarks.lang | 18 +- htdocs/langs/it_IT/cron.lang | 28 +- htdocs/langs/lv_LV/admin.lang | 76 +- htdocs/langs/lv_LV/agenda.lang | 6 +- htdocs/langs/lv_LV/companies.lang | 2 +- htdocs/langs/lv_LV/cron.lang | 2 +- htdocs/langs/lv_LV/errors.lang | 2 +- htdocs/langs/lv_LV/incoterm.lang | 2 +- htdocs/langs/lv_LV/install.lang | 16 +- htdocs/langs/lv_LV/languages.lang | 2 +- htdocs/langs/lv_LV/main.lang | 6 +- htdocs/langs/lv_LV/orders.lang | 4 +- htdocs/langs/lv_LV/other.lang | 2 +- htdocs/langs/lv_LV/products.lang | 22 +- htdocs/langs/lv_LV/projects.lang | 12 +- htdocs/langs/lv_LV/trips.lang | 6 +- htdocs/langs/nl_BE/admin.lang | 4 - htdocs/langs/nl_NL/accountancy.lang | 30 +- htdocs/langs/pt_BR/admin.lang | 2056 ++++++++++++++----------- htdocs/langs/pt_BR/agenda.lang | 91 +- htdocs/langs/pt_BR/banks.lang | 225 +-- htdocs/langs/pt_BR/bills.lang | 2 + htdocs/langs/pt_BR/companies.lang | 380 +++-- htdocs/langs/pt_BR/contracts.lang | 2 + htdocs/langs/pt_BR/errors.lang | 1 + htdocs/langs/pt_BR/exports.lang | 1 + htdocs/langs/pt_BR/languages.lang | 2 + htdocs/langs/pt_BR/main.lang | 3 + htdocs/langs/pt_BR/products.lang | 3 + htdocs/langs/pt_BR/sendings.lang | 1 + htdocs/langs/sl_SI/banks.lang | 16 +- htdocs/langs/sl_SI/propal.lang | 12 +- htdocs/langs/sl_SI/withdrawals.lang | 8 +- htdocs/langs/sr_RS/companies.lang | 12 +- htdocs/langs/sr_RS/main.lang | 880 +++++------ htdocs/langs/sr_RS/users.lang | 186 +-- htdocs/langs/zh_CN/cron.lang | 2 +- 180 files changed, 3017 insertions(+), 2355 deletions(-) create mode 100644 htdocs/langs/de_AT/holiday.lang create mode 100644 htdocs/langs/de_CH/banks.lang create mode 100644 htdocs/langs/de_CH/bills.lang create mode 100644 htdocs/langs/de_CH/holiday.lang create mode 100644 htdocs/langs/de_CH/projects.lang create mode 100644 htdocs/langs/en_AU/banks.lang create mode 100644 htdocs/langs/en_AU/bills.lang create mode 100644 htdocs/langs/en_AU/projects.lang create mode 100644 htdocs/langs/en_GB/banks.lang create mode 100644 htdocs/langs/en_GB/bills.lang create mode 100644 htdocs/langs/en_GB/projects.lang create mode 100644 htdocs/langs/en_IN/banks.lang create mode 100644 htdocs/langs/en_IN/bills.lang create mode 100644 htdocs/langs/en_IN/projects.lang create mode 100644 htdocs/langs/es_AR/banks.lang create mode 100644 htdocs/langs/es_AR/bills.lang create mode 100644 htdocs/langs/es_AR/holiday.lang create mode 100644 htdocs/langs/es_AR/projects.lang create mode 100644 htdocs/langs/es_BO/banks.lang create mode 100644 htdocs/langs/es_BO/bills.lang create mode 100644 htdocs/langs/es_BO/holiday.lang create mode 100644 htdocs/langs/es_BO/projects.lang create mode 100644 htdocs/langs/es_CL/banks.lang create mode 100644 htdocs/langs/es_CL/holiday.lang create mode 100644 htdocs/langs/es_CO/banks.lang create mode 100644 htdocs/langs/es_CO/bills.lang create mode 100644 htdocs/langs/es_CO/holiday.lang create mode 100644 htdocs/langs/es_CO/projects.lang create mode 100644 htdocs/langs/es_DO/banks.lang create mode 100644 htdocs/langs/es_DO/bills.lang create mode 100644 htdocs/langs/es_DO/holiday.lang create mode 100644 htdocs/langs/es_DO/projects.lang create mode 100644 htdocs/langs/es_MX/banks.lang create mode 100644 htdocs/langs/es_MX/bills.lang create mode 100644 htdocs/langs/es_MX/holiday.lang create mode 100644 htdocs/langs/es_MX/projects.lang create mode 100644 htdocs/langs/es_PE/banks.lang create mode 100644 htdocs/langs/es_PE/holiday.lang create mode 100644 htdocs/langs/es_PE/projects.lang create mode 100644 htdocs/langs/es_PY/banks.lang create mode 100644 htdocs/langs/es_PY/bills.lang create mode 100644 htdocs/langs/es_PY/holiday.lang create mode 100644 htdocs/langs/es_PY/projects.lang create mode 100644 htdocs/langs/fr_BE/banks.lang create mode 100644 htdocs/langs/fr_BE/projects.lang create mode 100644 htdocs/langs/fr_CA/projects.lang create mode 100644 htdocs/langs/fr_CH/banks.lang create mode 100644 htdocs/langs/fr_CH/bills.lang create mode 100644 htdocs/langs/fr_CH/projects.lang delete mode 100644 htdocs/langs/nl_BE/admin.lang diff --git a/htdocs/install/filelist.xml b/htdocs/install/filelist.xml index d479f4b2de5..fb931f9fcdc 100644 --- a/htdocs/install/filelist.xml +++ b/htdocs/install/filelist.xml @@ -8068,18 +8068,18 @@ ed3b811dbf2f5f0da999aac45470a2eb -cff7d687e53e56d5de6d6358ec3982ea +4b3a795b74f619b597f1d2ebd5f0ed4d 36d8c10a2ce5713bc959bebc6b9bb3af 55323f24685f41d39d6a5d297e3654db -6daa54147b7db543898545900eedfd49 +b9c19de6ebfce5bf046caa3bbd6738bb 762641475619347539e2028a53f2ddf9 -62509f268db4b26b0475183f0357cd8f +9feb7142f076e8cb6562176417105676 a338de2b2e184a6a79b27c41ef758527 c7e95ae701ec540f03a566203de781b3 d9a551b3b77910142a904b5bff66b447 -0c303345656e37fc1519da1964cddbde -e75b11d818d994ef2df874ada88fedc5 -dd1173124be792e55578eeb469959fb5 +c19d107b0434906fbc0b459f61f85117 +b273aa429a16fe1379be33876a4d49f7 +8869a3a7b2a620a7621d4870c57aef75 e1161971bb06488cabe9066c8e827741 5477536cee0c749079f446676f85ba11 886b27ac5b94fa8a293aeae7226314c5 @@ -8093,45 +8093,48 @@ 8d6ef3890b3855e9c9901f905906f84a e8df1b36eeaf2d3020a71b0e273a4d99 97af8c6ef82a0f244fc815e6e16ccf90 -975a2947aca7feb0804787f73f8cfc86 -7361cedcebec9c497149e3b40e60483f +90ec5a83c874481c4db7a861ea540e62 +012cf35d940aed1700ac751a07331a41 fbbf6dd97870502f3b527a7855cc22fd 171adcd57eecc43d8ebea5bd3cff21dc -630c4c5bc0e842062b63ab3bae3d6ba5 +a9b978311e891d61a5a0a001933d7a6d 8ff03a197fb775293900b1652cbc2cae bbcc88993e093b880a682371243cc500 28eb991ac8777246895a581c360a9daa -7cb0a65fde8c5f2e2d7a0cb9519d137e +7b7811b0028140c1b0369fe9aa94304c 0c898de20d09cf4914877ebf2695dd53 -157fa0a114ad141c7ad556bc19f5bae5 +10d1641217a535f93ec6a25fb693b58f 72edeb3570c0c46201f53a9ecafea7cf 47f5032648762db635d3ac9e03848d6d f3b0f3b7f9597a5081dd6901be2eef39 c1da4b8a0934373f032daa2da245a23b 9bc9627697f6507eaac340ce462ea48f -07b3bbe8aa044d6d64bf25ecca5cd7f4 -47b62e8cc7056a679fc3aace6fb6a863 -9bf0635f1b8ed60e7c54e7e68ae0443d +d31e5e9b017c68c52f39451f6a4888ee +fb0d8c3726d85a9e032c4aba68fe5ca7 +eb245be274ad480eb8d849529678aea9 1f5d636a4df5141cf03332bf7192e96a 4c3b11586abcc5df7e395609ee7131be 45bc4e783f1c8f3b4cc8887ff320ac8a 02140c8aab60d378c25d218f29d4fd51 6a019476090e0d2e7e18ff0cb90d8244 a9e2cc6d99ccff9c1f8944d41f09a4ec -d70a8a5f266915543907b6d590b761f1 +344d119920534915d078b0bcf8139e6c 537f4288b80ea71ac01cd85436796b2b 5a39128e50a6a619cab4a84ed21fb5b0 -e9b6c71ac37c6e7980cc53e276b15a5e +6d59726d14209ced062616f6eabb9963 65b5c3e29f240fad7628e628e4f4b988 -01f40ece71aa9db066160bf309b94ee4 +ef7b6fa3ddd58753aa2f9e99c606c61e 1fb6c4f678f781062defcb85377e1223 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +02b4f98405e26fe54399ae5cf3d8e884 +dc9564fc481ddd3101734b4e01c40027 329a3456692fb25e9ddd96dba6698739 +5b5402436d2e5525c68fe96889c8628b 14b937be198fc9c37d706a131f110c68 da1eb7c39da28b862a798f37efa7ee43 -9f5ba8d00d619d312d40c07f38b35c6e +538ab10324a9a151d1944f94b590e3e2 dd8e45a37c5ef0fc6089df59605c284e @@ -8253,24 +8256,24 @@ cdfa3838283c176556fd986e1d077a37 -bd424fc217be0ffdbf0b3fd91b655237 +eba82bd2e88b7d544b96c6d99e3a0fb0 c9310d0a5a4f7e1f6b85201c0dc2fc5e 6e04edde5694fc8e6bbb47aa579d974f 9d3c42abc625b3259d4e5371f06263dd -10b0931c4d5572b126974fa14b0fd515 -8fac83bae24586fbae9330401017253d +97157f5de97d427dad060de635f0cbb2 +4d40e9d36ff84f7214a61043608504ce 74a51ee9815a4e81828f00e102f2b977 -24c63cbdef9fee26ca73e39677998398 +0c1d539dd0e536ab43cab029104330a2 f4edcec9ef405af2798f27a4d7902e12 f70756497c931aadd89edbe485e88fb7 f5e8ae5dcbf8191e1830afe13c85f33d dc628590b54606da6a6d3510ea4c94d1 86b10d96c3a969dbf3a625859ee245fe fb4f2e0c1a0a003c40b83cec58eb358d -ab63ebe42a0eab6813d2d36da0c9016a +2e93d30362c8d78a190c48a84ee14fcc 236eb01d61d0a87dc150f17fdd070f65 52bdee3176be9266973887c2b2862dba -c75cc3416f15f643240de33667382a0f +1402d10037a08d56070eee0ebf921e4d f8e9d0e2f7ca86f855a1fe6a39eab4d1 09f6758e377ebd553ff2a713b1e14f90 1461952a71c3b0dab73956e09db90725 @@ -8279,14 +8282,14 @@ 1a7bfdc52688934752339f4d77e7e84e 4bfee5904f91bea7f89e69b65d84edef 41880d289bea521ebd8f24215e6d5f07 -ebf811d997026c5833fa58e181a533ba +10fe8c6fba8b8a39a3fe4015c16a2fc1 aaaf43f06ec3b56fa2ce44165d8b2227 ece08cb7ed6810cdb3f0c1c917ec986c 7942ec5d8cbd1ded094458fae7db8f64 7f1cf10b121b601826c8160b97d9201a -519e04aa0c92c6e37e9008ed841bf930 +18c683d449cb983a0199f72f41bfa394 eb93565549b324f373ccb8ae14a9e82c -ab0531ca41b4d5a104290f4089e35c5d +f567192aeedd26a512a273c46a1b2e01 4620d5383d98264739be856cdfad21fe 526eded1162a09941869ab46ef83ef71 bf1409395306f2b2924a67beac05dd56 @@ -8294,19 +8297,19 @@ ecb08089d6cffff8cce5bc9928dbfda5 e0a2135bf8ba78d71c0162491021d9bb ae2a39ed84e9a8b31e97d34efd50bf79 -e59711d75e0002d1a4c428c12f78ec86 +6e5d7e32d2d4c4c9bb5b54e9b974c2fa 95562f393025b7c7156e666cb8b45bc6 -9be739c1831b7c878e30e31cb6c581bf -d08d7e1099b10c74bcb32199fb938a3d +7da38e511cb16a90594a443f9575c810 +67a5de359f633e9e24a8ef12bd1fc575 2ba914ba1f287a51e96117c8734d0370 98035fec612b1dea0f11fa299377d2bd cc44d8f6611ef62af800332274ddf91d f84dfcb30b9046145c153fe1e44201da 599dc37a15c362ea63096dfbf7f57bf1 -6e89b691b2b736950d61f73d949326ff +52b36012424c817a4e9fc5736417709c ae4b679a3888906e9e0544dd5a54d83e 1bb02f5007b998c89755a783129afce8 -0e44777c6c6ceaa9aa7a58d6d00ca07b +d7db058dfc7cd6d999d30e337b78fb5c df5f2db52f342e27dde87f01bcbd8e7e cb066077c3f9a76a2d5bca265971d2dd 98e1082970a865bf1264472c0367b2ea @@ -8318,24 +8321,24 @@ 11daeb226361692832cbfc06ea1f4c52 c4000c3a5f961950001bdbf0eada3ea1 7d36ebf391461a17289c2b5be7cf3e85 -015b28a27d7c57e400d5d5b391e1fe81 +3334f3288a65d910ed596c68a2043d00 dc5d5cdb1ddb2cabc4a153dc8153de91 -fda1964002458760af39fa368db41a5b +f3146c00e2d0b6667d17c5eebc31360f f42193f1b045aa8b255d4c544bbfbffb 577770bc1b047e531d1c8915b91c1b3a f2a97948d26385dbf048ef0cf2c525d7 -5bf30afb669fabbcaffa18890ff52efd +b46d5511e9d6998ff9c889cb8c0da1e8 0206639eae0df85877c2e2bcf3a6f449 5e31f5e7cbecac3ea5023184356defd2 a4f7de71fffb7fe66bbe1ead04e43890 f8a9ee9349754eca7dd8fa4a3b30923c 208960ca78917b6337d736cd20344a7f -e982533d31e1dca35dde12b9a2eaff16 +590a8bd1778eddcb5c069279b124e929 e7c013349082da3d9d5648c430c5fa17 -0c4829c41c9d83c00d52e4c9c3488dc7 -2b22c61e3f2ddd574c1cfee86af7d957 +703ed24e2722902f0bce8d3a3f7a59dd +403bc95d966adfd004f72ad0b8d859ad 426904859bbfa17b03832bb45bb04199 -a405559486829c7050b0479b2773f2c7 +1625f57e5654ad47f05fd7eccd6fb90b c5c8e08bddcd4b099e4421c7b876d3ca 2bad6855dcaaf4b18c3c92f32d94893f 81bfbfd57357a74c3f3af6987afe6f12 @@ -8359,7 +8362,7 @@ 491fa67114d3c382ca11c8beda1d2481 5ed950ce4cceab6d20489e7ac57531bf fda71a80dc11279fb51ad436388c1256 -e04f36be0e265fe419101c6ed96ee774 +94faf36ca44e55f0562c06b20b801c9f 425ba45315eed3b973749855951b51d3 f0b4dcb4ff338aae365219b7c90568c9 0495a2ce04fae425dc6a1d880ceb1dbe @@ -8371,7 +8374,7 @@ b3b43d5b59898b53c3438acc767d5fb3 8fe26f5460eea59779e88aca24436dbc 6f17157fa2d3d23e0552c7ef33efd818 -5ca8cbe45832b4da7724a6fb647437a5 +214b4bf175d9a576e99aa32a33ab3ae8 381fda47b3c28be5e86909a54ecf6f72 @@ -8681,7 +8684,7 @@ 5d79a6c5b00b1b46d1f52b4b43a829f6 198b3a29bd95db8f58b32d7db4bff003 0e42cb9139c1cecb18bf40882da184e2 -d72639b10d0ea524ad308f364518272e +58c19042214fce0286d38a8553680674 5f9bc55c61786609f6d57cc987d8f688 f2a97948d26385dbf048ef0cf2c525d7 ab89fbf62d7046c7327249be47ccefeb @@ -8691,7 +8694,7 @@ 20b3e0e6e75fd590b98bb3cb3773ea01 e37b2888a049752461749305cba2261f 34ef2a5c01a6de0d058eb647a73cda4f -eee37a0b37da7fa689ffe2c8c3af7f41 +66d599a5d64fdd125525f0ba69459838 7df456c127e3cb8ae8ae1a74f56c9c16 593a0056ee80a54a01c01c0c266034d4 c0aa0c1b0a8218a9bec70fd09f811600 @@ -8717,7 +8720,7 @@ 6312dc067c98595bb72d77dfcc9344b4 95c15ca3dd5f1f6760ef60df52b6dac5 1538105a599084c46759fc0103f3fc3c -76660e9880edbbb9ab9234291381f6cf +d360b1161b553a45255a5806f55382eb 8b75cf8f0252a48aa1c4d2af802b17f3 575d2dc8514dac008055d79898b96b7f 2c7e63fd6233af8fabc598cea968cd6b @@ -8793,58 +8796,58 @@ f249c5416780b6370b92514232af8da7 -fb8b3aedf89e165288efce917d9a77fc +0a86e4d4cf2f78188088bbcd94636dc5 96d264ca8820d06e79142a24331876a2 236388ae2d5c562bd3b7123817527f73 -9481dda9d86de7ce90b2088e039eee35 +7e60ab0c29e2988abb2c38706a25d810 0d26a4183a05beee36f73348e05ac1a9 -77a1476e5e41674569d8548428330d9b +b72976e76e3b5b1e06e3bdfe32f21bbf 7372240ddcfd567371833e17c55cf3bb 5fd0cdbdc0238bc2f9c0fde2e1cec05c 45ffe99a918a7bbc4a6042bd1f7ded89 -49b290a1c41d5e4863c504ed6735dcd3 +edcd6f0e266ebd3f8889d44444b1f874 6ffdee3464337d9022910038309669df -cb94c875e29680176d4d3dacda770b77 -bcf50b7b8461f7737f70e507955a7832 -de0c5aba2f753a8f85e6b788eb249940 -bee295ded961028412b6ffbc88216961 -3b895bdcd4cfc1dd6a583868daee6ae5 +2213ae80db2f9c6a475e1209d31ed2f7 +699b645ecaba7ee82e5a2b9c8e04d599 +817ce0b47f0dba9656d1ad1583596161 +360250f28958a294923f493023127c1f +5ed5c5747e7602e1b128fc541e0a2ffb 13885e7bd616e8210d416328c572935c -70924f10fb1a31a7126d3f68d520da3f +507560124bb9af9903a36e155fba3c96 94bb9cad9889690d55670af89e832ee8 1bbbd210a5b9232c6e58fee38086c5f8 4c7673b351fab33e0a33fa2910faf0d6 c36fa900ef2e082506bccd1fa51eed31 -648a63b131c0b8bda0cea5f5a5db0aa0 +e93c689a6bd1cf8e7670e4aec826d763 d19ff90add77cc081a9daf23f5b604fe 3080ff9fdb247eaf98b234710abdc34b -6d4756da26d3fe5b74a189472acb594a -16290ea856cf8aca0426f508cd3f69d0 -a5930a01fca7a5501914bd256de7dfad +87a5230bbfe882e0fbafacdd6fdcc67e +e55061d5b57b555a836c9943bf8a0ce7 +41f6a7ee8a9f798c0af92c1ca1dcf5bd 8b1f59559c969a8b8733993c72569c3f -91bf3149aa21917f18b1493c6f2927a9 +df8be38ee0615e261ce232877c0a80a1 64d4f3497d67b4e8da246b865501955a b66283810f815e888bc6f5ae1b52a6ac -07831ce10e9008053282872d7c82875d -e0b38c5103c67e9644cbc54dc2d940eb -448607c8896fd564a903155c740fb154 +9ec513148be43126359a4b2929a63e43 +ca0d391cb42af1a44e3583eda0d35444 +b3236f8c827a0eb88cee1c906b5bedea 77d571e5b03acdb7a2029a4f9218a323 a40157ef24e9a8c6ddfd3885dc186a96 -ac5c655d8e83649b5b5531688024a9c4 -0c9d162545da4751dc3126316404b496 +056998dce70220b02ec8ed7855ac8b8f +50d7642780c847932b5928f5ddc419bd 3533fdfc61408e851bdb68653ea870f0 cf24f0f04a6026a4d06cdaa7617586ac fa070151663aee0383a3c518d6a628d4 -0de50b823bbeeed38f82dfcd5106ccfd -b7aca869541be08df3c5732eee3b3c5e +2f46b0cf8ce598febf0c2f66eff0b230 +be743d008c1c7503dc8fe449ef70d31a 63bd42d2a260631f2b4eb7e32bff21bf -bbab00fb08ae238a1428f6b9332ff0d0 +53794030a3a02da1d3ebd2b15b95af35 8f8b08ea0127e8dd80c06c9e79896a61 6f3ad06950f1c62f4bd86e51a7ddae95 96efcb427a067568896a54d9cba6a836 2d1ed344ed1f795dc8ca3acc51cfeaa8 0f487a02eb56c25838b3ca7a44e3d340 -bab262d6460d9e578d15f084cd57c4c7 +23cd5ee0ff6441087199ef3f6f48f4cd 4c1471fc81697146f2072c4c55b16a9c 24ec07bccd0232ebebd94716dd6abaf9 7f96e18c0ac56314a33e35de090c5045 @@ -8852,9 +8855,13 @@ cbfc8102d5d4b206ce17095f41a08013 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +322d2f0d1f63bdac9a7179e8f597321b +dc9564fc481ddd3101734b4e01c40027 +5b5402436d2e5525c68fe96889c8628b +2ec28d7d8a03797203f724f8e5cdd8d3 14b937be198fc9c37d706a131f110c68 -9f5ba8d00d619d312d40c07f38b35c6e +538ab10324a9a151d1944f94b590e3e2 0b184c77fe31ae048a9527291610ab4c @@ -8981,9 +8988,13 @@ b72997707e75dd3fb9bb3344408f0fd8 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +322d2f0d1f63bdac9a7179e8f597321b +dc9564fc481ddd3101734b4e01c40027 +5b5402436d2e5525c68fe96889c8628b +2ec28d7d8a03797203f724f8e5cdd8d3 14b937be198fc9c37d706a131f110c68 -9f5ba8d00d619d312d40c07f38b35c6e +538ab10324a9a151d1944f94b590e3e2 fb46bbe6fd59edc488ae4cf9c9e59be7 @@ -9109,15 +9120,22 @@ f1f34d8c0f864daa5e8ab56801027430 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +02b4f98405e26fe54399ae5cf3d8e884 +dc9564fc481ddd3101734b4e01c40027 +5b5402436d2e5525c68fe96889c8628b 14b937be198fc9c37d706a131f110c68 -defd77128a4daa7471cd207350120cee +4dc7f339b479b935f54185ca937b5200 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +322d2f0d1f63bdac9a7179e8f597321b +dc9564fc481ddd3101734b4e01c40027 +5b5402436d2e5525c68fe96889c8628b +2ec28d7d8a03797203f724f8e5cdd8d3 86edd8b14802f697dde804a0b134a9f9 14b937be198fc9c37d706a131f110c68 -47e41f42a075152d70958fe89cbf8d37 +392ef1b0569abd200f863d93d88ad77e 37ed2423117fa214345519409b790293 @@ -9151,7 +9169,7 @@ edebaaf030b310580975751b4b7007e4 1700083ef9212badec296d94e212cd0c 2c27edeee3a6e7883ed719fe44d6d145 -8617166efb147696761492d83e9a1324 +a47439737e5532545747c6f73d6b90cd 43db758beb5f856b7e9b6baea10c3a50 39ae77d3255b573476dbf4bac144c91f 32cdae7ed3b21f35edbddf5810f28711 @@ -9238,7 +9256,11 @@ 86d18225c3ec4d2ab47d5b96594e1d74 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +322d2f0d1f63bdac9a7179e8f597321b +dc9564fc481ddd3101734b4e01c40027 +5b5402436d2e5525c68fe96889c8628b +2ec28d7d8a03797203f724f8e5cdd8d3 4a73b1420652c433015ba38d07a82126 14b937be198fc9c37d706a131f110c68 09cd93b89ceaf280cdf4e3ed95113d5e @@ -9306,7 +9328,7 @@ 3c1901d15b11b7c8d9411305c2c10e47 -43f67ab455d8d7d37792adf1b07c5d9a +f0b73e105427c026e55c1eb06adccac1 0f4cabd5c702824c0432a5b16dedf3ef f22819b1a3eb265c2e589bcc71fc7562 e5be41a111cad12948b3c30fcd5a41c3 @@ -9318,6 +9340,7 @@ 616c29b85368aae480120bb30455f2e8 d87b686508e12bb408c58888689211a2 5e5684f776f1a7354578715682f38651 +2ec28d7d8a03797203f724f8e5cdd8d3 fedf292cca2809a18d78f474c1334447 b1d9c0b57b93cd0b5584fab53a6c227d dcd4b0caa14caf886102e9aca04e8b7b @@ -9333,7 +9356,7 @@ 82a6941cc4dc14b88f1053af0b499e4e 59addea31dca998c1b712c1ed87d3f9d ba8ea3ba48fae1c8c7bf1e4a44d31dd1 -380507f4784c904ee80136f10dc4c93a +9747da73ccbc43226cc6b5a74ffc4fa6 85086256e7de8ee29545bcd5c1063a55 5695f95ab75430e71ca7e91b1d4a7993 5df22313fdd1f6434b42a5a11f635460 @@ -9448,7 +9471,7 @@ b62965af8cd454ed73aa42db77882ce8 e34f203f621a58e6a025f8d5776c747c b79ef3622f679533a44325aebaf50f74 -14de703774957e32462615ce075e168a +f11caf85f97048d91c71324fa554e8cf d7076d1ba0b16124aa157994fdb7ec3e c16ead4fa40f9b157f7c4f0ec8afefd5 4174a4faff345145b6fe6ff3f2aa337c @@ -9462,9 +9485,13 @@ ef990f1dec41193b1367ff9ff985ca67 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +1db1d7ff0f6ef232f1aaac2c2cb56b43 +dc9564fc481ddd3101734b4e01c40027 +5b5402436d2e5525c68fe96889c8628b +2ec28d7d8a03797203f724f8e5cdd8d3 14b937be198fc9c37d706a131f110c68 -93fc25faef2e4a631602c033427fd12b +65d76d4a51649d67a90d5c49c8ca7430 001f89497d83b75fd374517b88d782ee @@ -9526,12 +9553,14 @@ f1f34d8c0f864daa5e8ab56801027430 -3f6327969cc147dd5bbaebce67dcabed -176fcc18540d7f71d144108fd02b61e4 +c294d42b0c532a0d0ed0ecd75b2da20f +523ab8741e3df41c6147df2003e726a8 +21f130550e39e481ce9cb357516e6ab1 3332e7e07f91da6313b26cb61dbca6ee +5b5402436d2e5525c68fe96889c8628b 2cd37a211a31a13ce61875112cd9b50b 14b937be198fc9c37d706a131f110c68 -c86d9cd72187d66eca91c2d2671c3c7e +34e9924a5543f5c9f8d42f68852aa1ce 68459fc84ea935a6d7c3c01688685585 73e9edb0163694ae2e0a80744ec41138 @@ -9797,8 +9826,8 @@ 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d -d91a412e4582686aee55e22120f10420 -081ddaf3beab038b809eb6db2957285e +59862f5cdca62471f71fcab151781df3 +ee05f7fb91d29da2977b7374f9cff85f 05a11b19b5162789760c9838a936df75 eead927af63207df007d30bbefa0bb40 24076c897f856af4bf47d86d96078688 @@ -9815,7 +9844,7 @@ fb5913e34a812d5fdf9e25b8ca8c9fb2 3868fe6746505c0449f7ab2550a54795 c57c2471c7a6eddd29d27909cc422e41 -78faa2226aeb9f90e52c0f6239002838 +976677f9986a37f46dd8cb078afdce50 4dc8101030bd3c2080accb4bcb04f9cd 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 @@ -9948,26 +9977,29 @@ e77cfae1b2c9124ddd567cc6f0bcd7a9 -d04237165096c4ab4aae777ac08a63c1 +9eb7de069f59815934e071aa4bc8a400 d644237a73e898a62393491905b4ed87 -857cfdee8d1a70d9357f829ff7465ec3 +4160f02f654932bedd29edd671b51d46 b39c038e6e8b0628c90d5114271dc50e -8b1af0ee9bd757f406a9085e52cb3e1a +72b5eccc9277874ce99e16752aba159c 18381fbfd3da6eb62195dd3d7c2025b5 fab0071a1a02bdff2c962825b43c2dfd f254234f7743f533f091e707ae5c6e5a 93d2324320ddf2609d33828f0070e552 +5b5402436d2e5525c68fe96889c8628b 07dba3c5fa878727518a110582690996 +2ec28d7d8a03797203f724f8e5cdd8d3 169e53e9bb18aead3d080bed0fb9a311 14b937be198fc9c37d706a131f110c68 721f864f34ed9957a1da79a505146c16 f03b0dcf6c6febaec231650b079d2f69 0dcf4ac06cd149d2c5828b8563cbe01b -436545df3d1465a5a48adb9868ac07a4 +1a6ce5cdb1c6c8e0101031ed7aa4cffb d0e4982b7bc6a1cd62b339dd4edef863 a946d614786a829d9964c0e27d143e0c +c294d42b0c532a0d0ed0ecd75b2da20f 08acb8a8ca3a1dd92759d583424913af 5db0fae663b6387d4176b8cd656f89b9 1f9c4608541c8e95cd6189b122aaec7b @@ -10028,7 +10060,7 @@ 68bdddeadf40d3061dd009fe77eec5d2 487ac2c661ac6747c4931ffd4e094d6d bfdffc1cf6e42979f52384d3125b72ad -e2e0d56d7a9126019e91b05281dc523b +5136e39159be1875f8f6ba4489500d09 8028b9965a200c62fd4a16eee39c0e19 6dea95444fa084d9f9f33be87ab60a07 2edcb98d384fa73b9452c76b88602e06 @@ -10074,16 +10106,16 @@ 0f859bffb657420f91289f3404c3ac5f fb330418c81c08843a8ecc7b41911c3e 70bab55d7cb9bda9286475b0e83d5667 -1d96699f1c6dd1a9cd56e70eb905207c +c89a0952620429ffc07402cf29cb6343 db6c98d5d67b4033e5b2c0669a0defcb 440254be3afebcb1e39048e3d150f20d 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 -ae5891d4d6ff46e24a0d271dbfbc3cea +98e462f88ab14c1a545de484f1b66166 72ccc97c1267b7432a5a34838c729dbd 8568e4d03cdcc1874f6f39e21f994007 70b002fd1a16e5e9f19e1ca9c51797ba -abaf5e5dc04b686a761c0f8f40953845 +0ad29ff756130d52f6263650570736a3 cc12ebdf72077be80525d64e6a7ed5ec 418be20b4d4d50ff450dfb18734e4722 11972a00c6080c23c92f9dfb07d15d6c @@ -10095,7 +10127,7 @@ 5940b1e0d9e4ef0693e6f862f1fca63c 976e6f39654ffd979a1633da2107011e 7e73be5f5ef1f54d09eae743625e6e72 -2959472be49271fad183a7687007452a +23688a6549a080e528796537be16b9fc 2b39e01ef2d55c7b3a24671fcd570e59 0b5290b5856769452f96d8557ae4af4f b5468bbd78484c8d55f8cb41dba6bc7a @@ -10108,11 +10140,11 @@ 493c788205c2f5743e9ba7d6e084f9c8 37c8cf292316d659b712e3e792776e3f 1c6a361487dcc57e627543fb69cf58b1 -9caf24505bb667bb3dd7e228f8ddaf0a +37a149141ae55f1f1ec1f84529379e6a d0739d358ed00196d99144e88cdd7f7a 3e1b068f6c8c349c1deff0e88c8ca80a 0e72f1e88211f93ee64eebbfe1564d1d -ebc36cfe6862d9742703ea60b6bcb873 +b13be9ebaee90884f0445788681ac8fe 1e261eaa004ceeffa908ff6569fc2119 @@ -10180,15 +10212,22 @@ 69e863de65c7c11b4d4359dd33933737 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +322d2f0d1f63bdac9a7179e8f597321b +dc9564fc481ddd3101734b4e01c40027 +5b5402436d2e5525c68fe96889c8628b +2ec28d7d8a03797203f724f8e5cdd8d3 14b937be198fc9c37d706a131f110c68 -9f5ba8d00d619d312d40c07f38b35c6e +538ab10324a9a151d1944f94b590e3e2 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +02b4f98405e26fe54399ae5cf3d8e884 +dc9564fc481ddd3101734b4e01c40027 ab59d61bbffe26c3fdf53d3c6b5b05d9 +5b5402436d2e5525c68fe96889c8628b 14b937be198fc9c37d706a131f110c68 -9f5ba8d00d619d312d40c07f38b35c6e +538ab10324a9a151d1944f94b590e3e2 fb147cbb17dbe7162bdfe77907095f58 @@ -10253,9 +10292,9 @@ 17826ac0abf776f5bc6d8c68e09c17d5 dc2cd95b6531d5b5cc7d52251523506a 57282ab3ba26185cd568d1838e0ab8f3 -a86f2736db442ecdfbddabdc0c2e5357 +b12fb144c4254826c2d04579be5b5f45 826aba4abd3429ff665409aebda73e5e -15fb15ce131f8143dab8ffcca18c39cc +f2ba671f9d17aef7228fc204ed1b7398 a094115816a8df0c006766c4000861c6 3e5ce3b248f7dda5c1eb88b75a642f5f 25088723418dcc167b4665c455714951 @@ -10264,10 +10303,10 @@ b05c8370bfbe8bc89c37c083624b5dff 910620b9e594d851f1f8a1f286890aec 601f004f8adb4995ee968e7a3c01b5df -8c30f8f9c7899cc04652fa00345e8ccc +d9c71112e2d9ed882f346e18ef246004 6b93db41124ee6e53e738d483b6f87ad -b730a74048ae2d8663b272d1d41894c7 -8958650d44eb12275fd720c326469f8d +24c57b650c2e20498aa850503992564d +fe4355e5361957737c127212b9ab7777 3509f62c9752bbac4f9bde2df2c7c8f0 99414bbf1bf1e685f4f730c760b96fd4 20422b3e39bd1f7a977afcc1b14f3103 @@ -10276,25 +10315,25 @@ d7054e46baeb846c67f554fbaded072a 3aeb0bb955d966af8406506605547e1c e7ac3efa7156fac7b187b4e2d3aa6b32 -15767402780bab0cb2b45a7cff19c948 +07fa6f601297cb41a1a6668d8a4137c1 90c202b94dcd09173f067e8bf5164b77 4b3416e5ad27f1623f5c9222cf93f491 -7e75fd524735ea2bf2261b3d8ec3ecb6 +4f30c615b5054649acfe658b41c64664 6f11fdfa4b04669635edc07ca6efeca4 48a83412d06860f170a73a68d6d1d607 5c3ad5663f3d6527148247ff7312b385 -1b425e64c64c92a307c6e16aba8e0f6b +2e611ed7fc633ec32354afd2809d8312 3b991a186f3742555e60e6f61785e885 ea89357f6a833ce27bdaa3c633b73559 838ea08d95f65f9a06957a7d066f0891 925e7c28144a75b7e0fbc57715f523f8 -1025f4364ac908d77f2f3ae4c592c601 +b9e738744ff3a33a47ae67f529eead70 1db9e49d446f770d60dd8d133b654b4c 4941939fc3ea3906cfe30989e3c07431 f804018f508887af815f81d054905620 6e9ac5f9954ea167f40c686de9be6b7b -b840d63814462bb7fb797c729a302d52 -140f52814650cf6fda4427eabd69f2b3 +562889c108c03eb1b52e7c4819b3b125 +d1a2602d42b8e7df617ca9c2ad3fb71f 285145b8adf6d1d7e53a1c102b25c177 673f3e0c4062e13cdef27b581fb66461 d74248250355b90443c5340490731dcf @@ -10304,14 +10343,18 @@ 5ca61a0d6b95a636b2949ae460e1d05c e0f4c93906c140661ee859581b1a168f feb14dfc2c998cee54ba6247bb784862 -3c4f6b1eacd24b5ec036788219f0fb1a +48ec52231c3493ab0344cba74e220a61 813838a5f1d8832941b8ea61ed2c7271 e17ab7d7f81ddef4dc5e5ff071a5152c -8e7647cbe7536c0a885439de89bf2d16 +c294d42b0c532a0d0ed0ecd75b2da20f +322d2f0d1f63bdac9a7179e8f597321b +01ecdb579e7aaa2f7a35a9d9f9e706a0 +5b5402436d2e5525c68fe96889c8628b +2ec28d7d8a03797203f724f8e5cdd8d3 14b937be198fc9c37d706a131f110c68 -9f5ba8d00d619d312d40c07f38b35c6e +538ab10324a9a151d1944f94b590e3e2 6656b3e6dc07ae24df1501e0932f5ce5 @@ -10461,11 +10504,11 @@ 7f005dc1c4048f02914f491339a5669b 0c4ca601c83dcfc8d0f4f45dc773e2f7 2da0a1995db50d0752d2e509a3bca37f -f0c5c0185e5e1b2923910044a19706bc +215c2affe164ae37a7089481fb874de3 10c2dcc555137e38039193ccedfc0cd3 bb194e9b127b46bb2271d19ed84603d3 15be1fe8f10c081149a3003de6ec6921 -0b3e76ac18a371234ecefd89ff06adb0 +a1c2c9bfc0b6f28497c1869f91b54afa d816d6622fcaf3c5f4e8f0a516128d20 548bc532286b35f7a6ffee2a2801502a 199dcc4ae427c0d0e5fbde6c0d2d2f99 @@ -10550,13 +10593,16 @@ 8670dccfd7a31fa4c44bc8fffd978739 -36d54cc80744708ba9ec226b550c8daf -b445026a015b310e55204739eab1d577 +c294d42b0c532a0d0ed0ecd75b2da20f +725c0db804f21f04b78982da61ff2d7e +e9ab65cca74d0d1069c0bb6b50074d1a +5b5402436d2e5525c68fe96889c8628b +2ec28d7d8a03797203f724f8e5cdd8d3 921ab7227ed3abcda2db9bf141411751 14b937be198fc9c37d706a131f110c68 2172e11a30b062324fc2a90d1f6de9b2 34ea25003f05ded5624df898f2c1ac4b -7210212c531b08cb22055f395769fec4 +3007373ed2951f690530327240c5f115 1f16414a30aa0a40379d1cf47ac9a6f4 @@ -10849,7 +10895,7 @@ b6786821a9641b2e90eb60d1cf955593 29567ae731d5a20740dadb635820c0d7 83da48fa37c40e4f8c5ca323d585e7d9 -98df0b16465e8526f1a34f0e24e1d25b +233e3c0da4808e32e5bff1b70a00caf7 1be24d68eebff59f8a3d55d1d248cdfb @@ -10915,7 +10961,7 @@ 6cc0c652a67b7a726760dcdc608db98b a7a17bad11811e39b0164573964f3c18 3814711841ff79bfb1bffb653cfde0fb -c6794aafb3744bde6e6f10406dfdcbea +ce04cd21ab1a71817562e3bfa4207f49 40da93d7868af1bcee8c47d560dad545 f7b95693315b045c22b7868e83fa419a d7a12190e2704590b4523ba5b60dd6b6 @@ -10946,7 +10992,7 @@ 4508eefc4cbf06183f780a47550b51fd 624f8ffd5c36af2b87a06aee63b17bb0 88f572d21982792d5393ee999d2c443b -301863f24dfdf588d170f0dd76389132 +c283b0ba64ed9301e67a9d18923aed60 307d48fb06eea97b2818146fbb8929cf bee0636e455ad5d9a8dcc288ac2abb4c 9875bc160f395b95a197ffbb4ac22190 @@ -11031,9 +11077,12 @@ 56d8a0b2df579f5cead684b83fdef191 -a287d462bc71f579eea372c586ca1e65 +c294d42b0c532a0d0ed0ecd75b2da20f +02b4f98405e26fe54399ae5cf3d8e884 +dc9564fc481ddd3101734b4e01c40027 +5b5402436d2e5525c68fe96889c8628b 14b937be198fc9c37d706a131f110c68 -9f5ba8d00d619d312d40c07f38b35c6e +538ab10324a9a151d1944f94b590e3e2 eb0d31b8fe30bfb4b4a2cac24e104c61 @@ -11044,7 +11093,6 @@ e70e0c0be5993759f867484624b7270f -a287d462bc71f579eea372c586ca1e65 9f5ba8d00d619d312d40c07f38b35c6e @@ -11181,7 +11229,7 @@ adf4d0f538de7decd6b3e4c5140c159a -6cd1200c5de4e664f873c1131c4b4605 +5b06c4c900114c4ce894c39022aad38f d41d8cd98f00b204e9800998ecf8427e diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index eac7ef67bfe..6667540b9a4 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -1,10 +1,10 @@ # Dolibarr language file - en_US - Accounting Expert CHARSET=UTF-8 -ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file -ACCOUNTING_EXPORT_DATE=Date format for export file +ACCOUNTING_EXPORT_SEPARATORCSV=Separador de columna pel fitxer d'exportació +ACCOUNTING_EXPORT_DATE=Format de data pel fitxer d'exportació ACCOUNTING_EXPORT_PIECE=Export the number of piece ? ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account ? -ACCOUNTING_EXPORT_LABEL=Export the label ? +ACCOUNTING_EXPORT_LABEL=Exportar l'etiqueta? ACCOUNTING_EXPORT_AMOUNT=Export the amount ? ACCOUNTING_EXPORT_DEVISE=Export the devise ? @@ -22,18 +22,18 @@ JournalFinancial=Diaris financers Exports=Exportacions Export=Exporta Modelcsv=Model d'exportació -OptionsDeactivatedForThisExportModel=For this export model, options are deactivated +OptionsDeactivatedForThisExportModel=Per aquest model d'exportació les opcions estan desactivades Selectmodelcsv=Selecciona un model d'exportació Modelcsv_normal=Exportació clàssica -Modelcsv_CEGID=Export towards CEGID Expert -BackToChartofaccounts=Return chart of accounts -Back=Return +Modelcsv_CEGID=Exporta cap a CEGID Expert +BackToChartofaccounts=Tornar al Pla comptable +Back=Tornar -Definechartofaccounts=Define a chart of accounts -Selectchartofaccounts=Select a chart of accounts +Definechartofaccounts=Definir el Pla comptable +Selectchartofaccounts=Seleccionar el Pla comptable Validate=Validar -Addanaccount=Add an accounting account -AccountAccounting=Accounting account +Addanaccount=Afegir un compte comptable +AccountAccounting=Compte comptable Ventilation=Breakdown ToDispatch=A desglossar Dispatched=Desglossats @@ -44,11 +44,11 @@ TradeMargin=Trade margin Reports=Informes ByCustomerInvoice=By invoices customers ByMonth=Per mes -NewAccount=New accounting account -Update=Update +NewAccount=Nou compte comptable +Update=Actualitzar List=Llistat Create=Crear -CreateMvts=Create movement +CreateMvts=Crear moviment UpdateAccount=Modification of an accounting account UpdateMvts=Modification of a movement WriteBookKeeping=Record accounts in general ledger @@ -58,7 +58,7 @@ AccountBalanceByMonth=Account balance by month AccountingVentilation=Breakdown accounting AccountingVentilationSupplier=Breakdown accounting supplier AccountingVentilationCustomer=Breakdown accounting customer -Line=Line +Line=Línia CAHTF=Total purchase supplier HT InvoiceLines=Lines of invoice to be ventilated @@ -131,14 +131,14 @@ CashPayment=Cash Payment SupplierInvoicePayment=Payment of invoice supplier CustomerInvoicePayment=Payment of invoice customer -ThirdPartyAccount=Thirdparty account +ThirdPartyAccount=Compte de tercer NewAccountingMvt=Nou moviment NumMvts=Nombre de moviment -ListeMvts=List of the movement +ListeMvts=Llistat del moviment ErrorDebitCredit=Debit and Credit cannot have a value at the same time -ReportThirdParty=List thirdparty account +ReportThirdParty=Llitat de comptes de tercers DescThirdPartyReport=Consult here the list of the thirdparty customers and the suppliers and their accounting accounts ListAccounts=List of the accounting accounts diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index c0f1a092c7d..76879d8530a 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -231,8 +231,8 @@ Security=Seguretat Passwords=Contrasenyes DoNotStoreClearPassword=No emmagatzemar la contrasenya sense xifrar a la base MainDbPasswordFileConfEncrypted=Encriptar la contrasenya de la base en l'arxiu conf.php -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; +InstrucToEncodePass=Per tenir la contrasenya encriptada al fitxer conf.php reemplaça la línia
$dolibarr_main_db_pass="...";
per
$dolibarr_main_db_pass="crypted:%s"; +InstrucToClearPass=Per tenir la contrasenya descodificada en el fitxer de configuració conf.php , reemplaça en aquest fitxer la línia
$dolibarr_main_db_pass="crypted:..."
per
$dolibarr_main_db_pass="%s" ProtectAndEncryptPdfFiles=Protecció i encriptació dels pdf generats ProtectAndEncryptPdfFilesDesc=La protecció d'un document pdf deixa el document lliure a la lectura ia la impressió a qualsevol lector de PDF. Per contra, la modificació i la còpia resulten impossibles. Feature=Funció diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang index fe0b3986bba..68f7d01f903 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -178,7 +178,7 @@ NumberOfBills=Nº de factures NumberOfBillsByMonth=Nº de factures per mes AmountOfBills=Import de les factures AmountOfBillsByMonthHT=Import de les factures per mes (Sense IVA) -ShowSocialContribution=Show social/fiscal tax +ShowSocialContribution=Mostra l'impost social ShowBill=Veure factura ShowInvoice=Veure factura ShowInvoiceReplace=Veure factura rectificativa @@ -270,7 +270,7 @@ BillAddress=Direcció de facturació HelpEscompte=Un descompte és un descompte acordat sobre una factura donada, a un client que va realitzar el seu pagament molt abans del venciment. HelpAbandonBadCustomer=Aquest import es va abandonar (client jutjat com morós) i es considera com una pèrdua excepcional. HelpAbandonOther=Aquest import es va abandonar ja que es tractava d'un error de facturació (mala introducció de dades, factura substituïda per una altra). -IdSocialContribution=Social/fiscal tax payment id +IdSocialContribution=Id. pagament d'impost social PaymentId=ID pagament InvoiceId=Id factura InvoiceRef=Ref. factura @@ -330,8 +330,8 @@ PaymentTypeCB=Targeta PaymentTypeShortCB=Targeta PaymentTypeCHQ=Xec PaymentTypeShortCHQ=Xec -PaymentTypeTIP=Deposit -PaymentTypeShortTIP=Deposit +PaymentTypeTIP=Bestreta +PaymentTypeShortTIP=Bestreta PaymentTypeVAD=Pagament On Line PaymentTypeShortVAD=Pagament On Line PaymentTypeTRA=Lletra de canvi diff --git a/htdocs/langs/ca_ES/boxes.lang b/htdocs/langs/ca_ES/boxes.lang index 8cde2db0235..bf8c68b2bbd 100644 --- a/htdocs/langs/ca_ES/boxes.lang +++ b/htdocs/langs/ca_ES/boxes.lang @@ -19,7 +19,7 @@ BoxLastContracts=Últims contractes BoxLastContacts=Últims contactes/adreçes BoxLastMembers=Últims membres modificats BoxFicheInter=Últimes intervencions modificades -BoxCurrentAccounts=Open accounts balance +BoxCurrentAccounts=Balanç de comptes oberts BoxSalesTurnover=Volum de vendes BoxTotalUnpaidCustomerBills=Total factures a clients pendents de cobrament BoxTotalUnpaidSuppliersBills=Total factures de proveïdors pendents de pagament @@ -47,7 +47,7 @@ BoxTitleLastModifiedMembers=Últims %s membres modificats BoxTitleLastFicheInter=Les %s últimes intervencions modificades BoxTitleOldestUnpaidCustomerBills=Les %s factures més antigues a clients pendents de cobrament BoxTitleOldestUnpaidSupplierBills=Les %s factures més antigues de proveïdors pendents de pagament -BoxTitleCurrentAccounts=Open accounts balances +BoxTitleCurrentAccounts=Balanços de comptes oberts BoxTitleSalesTurnover=Volum de vendes realitzades BoxTitleTotalUnpaidCustomerBills=Factures a clients pendents de cobrament BoxTitleTotalUnpaidSuppliersBills=Factures de proveïdors pendents de pagament diff --git a/htdocs/langs/ca_ES/companies.lang b/htdocs/langs/ca_ES/companies.lang index 53669e6b9af..8592fb6fc4b 100644 --- a/htdocs/langs/ca_ES/companies.lang +++ b/htdocs/langs/ca_ES/companies.lang @@ -30,8 +30,8 @@ ThirdPartyContact=Contacte tercer StatusContactValidated=Estat del contacte Company=Empresa CompanyName=Raó social -AliasNames=Alias name (commercial, trademark, ...) -AliasNameShort=Alias name +AliasNames=Àlies (nom comercial, marca, ...) +AliasNameShort=Nom comercial Companies=Empreses CountryIsInEEC=Pais de la Comunitat Econòmica Europea ThirdPartyName=Nom del tercer @@ -69,7 +69,7 @@ Country=Pais CountryCode=Codi pais CountryId=Id pais Phone=Telèfon -PhoneShort=Phone +PhoneShort=Telèfon Skype=Skype Call=Trucar Chat=Xat @@ -413,10 +413,10 @@ OutstandingBillReached=S'ha arribat al màx. de factures pendents MonkeyNumRefModelDesc=Retorna un número sota el format %syymm-nnnn per als codis de clients i %syymm-nnnn per als codis dels proveïdors, on yy és l'any, mm el mes i nnnn un comptador seqüencial sense ruptura i sense tornar a 0. LeopardNumRefModelDesc=Codi de client/proveïdor lliure sense verificació. Pot ser modificat en qualsevol moment. ManagingDirectors=Nom del gerent(s) (CEO, director, president ...) -SearchThirdparty=Search third party +SearchThirdparty=Buscar tercer SearchContact=Cercar contacte -MergeOriginThirdparty=Duplicate third party (third party you want to delete) -MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one ? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. -ThirdpartiesMergeSuccess=Thirdparties have been merged -ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted. +MergeOriginThirdparty=Duplicar tercer (tercer que vols eliminar) +MergeThirdparties=Fusionar tercers +ConfirmMergeThirdparties=Estàs segur que vols fusionar aquest tercer amb l'actual? Tots els objectes relacionats (factures, comandes, ...) serán mogudes al tercer actual i el duplicat serà esborrat. +ThirdpartiesMergeSuccess=Els tercers han sigut fusionats +ErrorThirdpartiesMerge=Hi ha hagut un error mentre s'esborraven els tercers. Per favor, revisa el log. Els canvis han sigut revertits. diff --git a/htdocs/langs/ca_ES/ecm.lang b/htdocs/langs/ca_ES/ecm.lang index 67bee6d0889..1a89340e7be 100644 --- a/htdocs/langs/ca_ES/ecm.lang +++ b/htdocs/langs/ca_ES/ecm.lang @@ -35,7 +35,7 @@ ECMSearchByEntity=Cercar per objecte ECMSectionOfDocuments=Carpetes de documents ECMTypeManual=Manual ECMTypeAuto=Automàtic -ECMDocsBySocialContributions=Documents linked to social or fiscal taxes +ECMDocsBySocialContributions=Documents relacionats als impostos socials o fiscals ECMDocsByThirdParties=Documents associats a tercers ECMDocsByProposals=Documents associats a pressupostos ECMDocsByOrders=Documents associats a comandes diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang index 1245b6b6664..87976f20caa 100644 --- a/htdocs/langs/ca_ES/errors.lang +++ b/htdocs/langs/ca_ES/errors.lang @@ -65,7 +65,7 @@ ErrorNoValueForCheckBoxType=Els valors de la llista han de ser indicats ErrorNoValueForRadioType=Els valors de la llista han de ser indicats ErrorBadFormatValueList=Els valors de la llista no peudo contenir més d'una coma: %s , però necessita una: clau, valors ErrorFieldCanNotContainSpecialCharacters=El camp %s no ha de contenir caràcters especials -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field %s must not contain special characters, nor upper case characters and cannot contain only numbers. +ErrorFieldCanNotContainSpecialNorUpperCharacters=El camp %s no ha de contenir caràcters especials, ni caràcters en majúscula i no pot contindre només números. ErrorNoAccountancyModuleLoaded=Mòdul de comptabilitat no activat ErrorExportDuplicateProfil=El nom d'aquest perfil ja existeix per aquest conjunt d'exportació ErrorLDAPSetupNotComplete=La configuració Dolibarr-LDAP és incompleta. @@ -79,7 +79,7 @@ ErrorModuleRequireJavascript=Javascript ha d'estar activat per a que aquesta opc ErrorPasswordsMustMatch=Les 2 contrasenyes indicades s'han de correspondre ErrorContactEMail=S'ha produït un error tècnic. Contacti amb l'administrador al e-mail %s, indicant el codi d'error %s en el seu missatge, o pot també adjuntar una còpia de pantalla d'aquesta pàgina. ErrorWrongValueForField=Valor incorrecte per al camp número %s (el valor '%s' no compleix amb la regla %s) -ErrorFieldValueNotIn=Wrong value for field number %s (value '%s' is not a value available into field %s of table %s) +ErrorFieldValueNotIn=Valor incorrecte per al camp número %s (el valor '%s' no és un valors disponible en el camp %s de la taula %s) ErrorFieldRefNotIn=Valor incorrecte per al camp nombre %s (el valor '%s' no és una referència existent en %s) ErrorsOnXLines=Errors a %s línies font ErrorFileIsInfectedWithAVirus=L'antivirus no ha pogut validar aquest arxiu (és probable que estigui infectat per un virus)! @@ -100,7 +100,7 @@ ErrorProdIdAlreadyExist=%s es troba assignat a altre tercer ErrorFailedToSendPassword=Error en l'enviament de la contrasenya ErrorFailedToLoadRSSFile=Error en la recuperació del flux RSS. Afegiu la constant MAIN_SIMPLEXMLLOAD_DEBUG si el missatge d'error no és molt explícit. ErrorPasswordDiffers=Les contrasenyes no són identiques, torni a introduir-les -ErrorForbidden=Access denied.
You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user. +ErrorForbidden=Accés denegat.
Intentes accedir a una pàgina, àrea o funcionalitat d'un mòdul amb desactivat o sense estar en una sessió autenticada o que no se li permet al seu usuari. ErrorForbidden2=Els permisos per a aquest usuari poden ser assignats per l'administrador Dolibarr mitjançant el menú %s-> %s. ErrorForbidden3=Dolibarr no sembla funcionar en una sessió autentificada. Consulteu la documentació d'instal lació de Dolibarr per saber com administrar les autenticacions (htacces, mod_auth o altre ...). ErrorNoImagickReadimage=La classe imagick_readimage no està present en aquesta instal lació de PHP. La ressenya no està doncs disponible. Els administradors poden desactivar aquesta pestanya en el menú Configuració->Visualització. @@ -170,8 +170,8 @@ ErrorGlobalVariableUpdater4=El client SOAP ha fallat amb l'error '%s' ErrorGlobalVariableUpdater5=Sense variable global seleccionada ErrorFieldMustBeANumeric=El camp %s ha de contenir un valor numèric ErrorFieldMustBeAnInteger=El camp %s ha de ser un enter -ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorMandatoryParametersNotProvided=Paràmetre/s obligatori/s no definits +ErrorOppStatusRequiredIfAmount=S'estableix una quantitat estimada per aquesta oportunitat/prospecte. Així que també has d'introduir el seu estat # Warnings WarningMandatorySetupNotComplete=Els paràmetres obligatoris de configuració no estan encara definits @@ -192,4 +192,4 @@ WarningNotRelevant=Operació irrellevant per a aquest conjunt de dades WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Funcionalitat desactivada quant la configuració de visualització és optimitzada per a persones cegues o navegadors de text. WarningPaymentDateLowerThanInvoiceDate=La data de pagament (%s) és anterior a la data (%s) de la factura %s. WarningTooManyDataPleaseUseMoreFilters=Masses dades. Utilitzi més filtres. -WarningSomeLinesWithNullHourlyRate=Some times were recorded by users when their hourly rate was not defined. A value of 0 was used but this may result in wrong valuation of time spent. +WarningSomeLinesWithNullHourlyRate=Algunes vegades van ser registrats pels usuaris quan no s'havia definit el seu preu per hora. Es va utilitzar un valor de 0, però això pot resultar en una valoració equivocada del temps invertit. diff --git a/htdocs/langs/ca_ES/exports.lang b/htdocs/langs/ca_ES/exports.lang index b04d2b75c43..193deaa9f94 100644 --- a/htdocs/langs/ca_ES/exports.lang +++ b/htdocs/langs/ca_ES/exports.lang @@ -48,7 +48,7 @@ NoImportableData=Sense taules de dades importables (cap mòdul amb les definicio FileSuccessfullyBuilt=Arxiu d'exportació generat SQLUsedForExport=Consulta SQL utilitzada per construir el fitxer d'exportació LineId=ID de línia -LineLabel=Label of line +LineLabel=Etiqueta de la línia LineDescription=Descripció de línia LineUnitPrice=Preu unitari de la línia LineVATRate=Tipus d'IVA de la línia @@ -133,4 +133,4 @@ SelectFilterFields=Si vol aplicar un filtre sobre alguns valors, introduïu-los FilterableFields=Camps filtrables FilteredFields=Campos filtrats FilteredFieldsValues=Valors de filtres -FormatControlRule=Format control rule +FormatControlRule=Regla de control de format diff --git a/htdocs/langs/ca_ES/install.lang b/htdocs/langs/ca_ES/install.lang index fd1954da433..1385988fb71 100644 --- a/htdocs/langs/ca_ES/install.lang +++ b/htdocs/langs/ca_ES/install.lang @@ -63,7 +63,7 @@ DatabaseSuperUserAccess=Base de dades - Accés super usuari CheckToCreateDatabase=Seleccioneu aquesta opció si la base de dades no existeix i s'ha de crear. En aquest cas, cal indicar usuari/contrasenya de superusuari, més endavant en aquesta pàgina. CheckToCreateUser=Seleccioneu aquesta opció si l'usuari no existeix i s'ha de crear.
En aquest cas, cal indicar usuari/contrasenya de superusuari, més endavant en aquesta pàgina. Experimental=(experimental) -Deprecated=(deprecated) +Deprecated=(obsolet) DatabaseRootLoginDescription=Usuari de la base que té els drets de creació de bases de dades o compte per a la base de dades, inútil si la base de dades i el seu usuari ja existeixen (com quan estan en un amfitrió). KeepEmptyIfNoPassword=Deixi buit si l'usuari no té contrasenya SaveConfigurationFile=Gravació del fitxer de configuració diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index 3f4f3e72120..c03059cc575 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -57,7 +57,7 @@ ErrorSomeErrorWereFoundRollbackIsDone=S'han trobat alguns errors. Modificacions ErrorConfigParameterNotDefined=El paràmetre %s no està definit en el fitxer de configuració Dolibarr conf.php. ErrorCantLoadUserFromDolibarrDatabase=Impossible trobar l'usuari %s a la base de dades Dolibarr. ErrorNoVATRateDefinedForSellerCountry=Error, cap tipus d'IVA definit per al país '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. +ErrorNoSocialContributionForSellerCountry=Error, cap tipus d'impost social definit per al país '%s'. ErrorFailedToSaveFile=Error, el registre del fitxer ha fallat. SetDate=Definir data SelectDate=Seleccioneu una data @@ -108,7 +108,7 @@ Yes=Sí no=no No=No All=Tot -Alls=All +Alls=Tot Home=Inici Help=Ajuda OnlineHelp=Ajuda en línia @@ -128,7 +128,7 @@ Disable=Desactivar Disabled=Desactivat Add=Afegir AddLink=Enllaçar -RemoveLink=Remove link +RemoveLink=Elimina enllaç Update=Modificar AddActionToDo=Afegir acció a realitzar AddActionDone=Afegir acció realitzada @@ -303,8 +303,8 @@ UnitPriceHT=Preu base UnitPriceTTC=Preu unitari total PriceU=P.U. PriceUHT=P.U. -AskPriceSupplierUHT=U.P. net Requested -PriceUTTC=U.P. (inc. tax) +AskPriceSupplierUHT=Preu Unitari sol·licitat +PriceUTTC=Preu unitari (IVA inclòs) Amount=Import AmountInvoice=Import factura AmountPayment=Import pagament @@ -341,7 +341,7 @@ IncludedVAT=IVA inclòs HT=Sense IVA TTC=IVA inclòs VAT=IVA -VATs=Sales taxes +VATs=IVAs LT1ES=RE LT2ES=IRPF VATRate=Taxa IVA @@ -416,8 +416,8 @@ Qty=Qt. ChangedBy=Modificat per ApprovedBy=Aprovat per ApprovedBy2=Aprovat per (segona aprovació) -Approved=Approved -Refused=Refused +Approved=Aprovat +Refused=Rebutjada ReCalculate=Recalcular ResultOk=Èxit ResultKo=Error @@ -426,7 +426,7 @@ Reportings=Informes Draft=Esborrany Drafts=Esborranys Validated=Validat -Opened=Open +Opened=Actiu New=Nou Discount=Descompte Unknown=Desconegut @@ -683,7 +683,7 @@ LinkedToSpecificUsers=Enllaçat a un contacte d'usuari particular DeleteAFile=Eliminació d'arxiu ConfirmDeleteAFile=Confirme l'eliminació de l'arxiu NoResults=Cap resultat -SystemTools=System tools +SystemTools=Utilitats sistema ModulesSystemTools=Utilitats mòduls Test=Prova Element=Element @@ -709,14 +709,14 @@ ShowTransaction=Mostra transacció GoIntoSetupToChangeLogo=Anar a Inici->Configuració->Empresa per canviar el logotip o anar a Inici->Configuració->Visualització per amagar. Deny=Denegar Denied=Denegad -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely +ListOfTemplates=Llistat de plantilles +Gender=Sexe +Genderman=Home +Genderwoman=Dona +ViewList=Vista llistat +Mandatory=Obligatori +Hello=Hola +Sincerely=Sincerament # Week day Monday=Dilluns Tuesday=Dimarts @@ -746,5 +746,5 @@ ShortThursday=Dj ShortFriday=Dv ShortSaturday=Ds ShortSunday=Dg -SelectMailModel=Select email template -SetRef=Set ref +SelectMailModel=Selecciona plantilla d'email +SetRef=Definiar ref diff --git a/htdocs/langs/ca_ES/members.lang b/htdocs/langs/ca_ES/members.lang index e4f1bdd380c..f53d33b7996 100644 --- a/htdocs/langs/ca_ES/members.lang +++ b/htdocs/langs/ca_ES/members.lang @@ -199,8 +199,8 @@ Entreprises=Empreses DOLIBARRFOUNDATION_PAYMENT_FORM=Per realitzar el pagament de la seva cotització per transferència bancària, visiteu la pàgina http://wiki.dolibarr.org/index.php/Subscribirse.
Per pagar amb targeta de crèdit o PayPal, feu clic al botó a la part inferior d'aquesta pàgina.

ByProperties=Per característiques MembersStatisticsByProperties=Estadístiques dels membres per característiques -MembersByNature=This screen show you statistics on members by nature. -MembersByRegion=This screen show you statistics on members by region. +MembersByNature=Aquesta pantalla mostra les estadístiques de membres per naturalesa. +MembersByRegion=Aquesta pantalla mostra les teves estadístiques de membres per regió. VATToUseForSubscriptions=Taxa d'IVA per les afiliacions NoVatOnSubscription=Sense IVA per a les afiliacions MEMBER_PAYONLINE_SENDEMAIL=E-Mail per advertir en cas de recepció de confirmació d'un pagament validat d'una afiliació diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang index 5dc62cb7821..c5b54076c73 100644 --- a/htdocs/langs/ca_ES/other.lang +++ b/htdocs/langs/ca_ES/other.lang @@ -204,7 +204,7 @@ ClickHereToGoTo=Faci clic aquí per anar a %s YouMustClickToChange=però, primer ha de fer clic en el següent enllaç per validar aquest canvi de contrasenya ForgetIfNothing=Si vostè no ha sol·licitat aquest canvi, simplement ignori aquest e-mail. Les seves credencials són guardades de forma segura IfAmountHigherThan=si l'import es major que %s -SourcesRepository=Repository for sources +SourcesRepository=Repositori de fonts ##### Calendar common ##### AddCalendarEntry=Afegir entrada al calendari diff --git a/htdocs/langs/ca_ES/projects.lang b/htdocs/langs/ca_ES/projects.lang index 63f74811402..99fc6da9fa5 100644 --- a/htdocs/langs/ca_ES/projects.lang +++ b/htdocs/langs/ca_ES/projects.lang @@ -11,7 +11,7 @@ ProjectsPublicDesc=Aquesta vista mostra tots els projectes en els que vostè té ProjectsPublicTaskDesc=Aquesta vista mostra tots els projectes als que té dret a visualitzar ProjectsDesc=Aquesta vista mostra tots els projectes (les seves autoritzacions li ofereixen una visió completa). MyTasksDesc=Aquesta vista es limita als projectes i tasques en què vostè és un contacte afectat en almenys una tasca (qualsevol tipus). -OnlyOpenedProject=Only open projects are visible (projects in draft or closed status are not visible). +OnlyOpenedProject=Només visibles els projectes oberts (els projectes en estat d'esborrany o tancats no són visibles) TasksPublicDesc=Aquesta vista mostra tots els projectes i tasques en els que vostè té dret a tenir visibilitat. TasksDesc=Aquesta vista mostra tots els projectes i tasques (les sevas autoritzacions li ofereixen una visió completa). AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task you are assigned on. Assign task to you if you want to enter time on it. @@ -26,8 +26,8 @@ ConfirmDeleteATask=Esteu segur de voler eliminar aquesta tasca? OfficerProject=Responsable del projecte LastProjects=Els %s ultims projectes AllProjects=Tots els projectes -OpenedProjects=Opened projects -OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects +OpenedProjects=Projectes oberts +OpportunitiesStatusForOpenedProjects=Estat d'oportunitats per projectes oberts ProjectsList=Llistat de projectes ShowProject=Veure projecte SetProject=Definir projecte @@ -78,10 +78,10 @@ ListFichinterAssociatedProject=Llistat d'intervencions associades al projecte ListExpenseReportsAssociatedProject=Llistat d'informes de despeses associades al projecte ListDonationsAssociatedProject=Llistat de donacions associades al projecte ListActionsAssociatedProject=Llista d'esdeveniments associats al projecte -ListTaskTimeUserProject=List of time consumed on tasks of project -TaskTimeUserProject=Time consumed on tasks of project -ActivityOnProjectToday=Activity on project today -ActivityOnProjectYesterday=Activity on project yesterday +ListTaskTimeUserProject=Llistat del temps consumit en tasques d'aquest projecte +TaskTimeUserProject=Temps consumit en tasques del projecte +ActivityOnProjectToday=Activitat en el projecte avui +ActivityOnProjectYesterday=Activitat en el projecte ahir ActivityOnProjectThisWeek=Activitat en el projecte aquesta setmana ActivityOnProjectThisMonth=Activitat en el projecte aquest mes ActivityOnProjectThisYear=Activitat en el projecte aquest any @@ -97,7 +97,7 @@ ReOpenAProject=Reobrir projecte ConfirmReOpenAProject=Esteu segur de voler reobrir aquest projecte? ProjectContact=Contactes projecte ActionsOnProject=Esdeveniments del projecte -OpenedProjects=Opened projects +OpenedProjects=Projectes oberts YouAreNotContactOfProject=Vostè no és contacte d'aquest projecte privat DeleteATimeSpent=Eliminació de temps dedicat ConfirmDeleteATimeSpent=Esteu segur de voler eliminar aquest temps dedicat? @@ -126,10 +126,10 @@ ProjectCreatedInDolibarr=Projecte %s creat TaskCreatedInDolibarr=La tasca %s a sigut creada TaskModifiedInDolibarr=La tasca %s a sigut modificada TaskDeletedInDolibarr=La tasca %s a sigut eliminada -OpportunityStatus=Opportunity status -OpportunityStatusShort=Opp. status -OpportunityAmount=Opportunity amount -OpportunityAmountShort=Opp. amount +OpportunityStatus=Estat d'oportunitats +OpportunityStatusShort=Estat d'oportunitat +OpportunityAmount=Import d'oportunitats +OpportunityAmountShort=Import d'oportunitat ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=Cap de projecte TypeContact_project_external_PROJECTLEADER=Cap de projecte @@ -150,7 +150,7 @@ PlannedWorkloadShort=Carrega de treball WorkloadOccupation=Assignació de carrega de treball ProjectReferers=Objectes vinculats SearchAProject=Cercar un projecte -SearchATask=Search a task +SearchATask=Cerca una tasca ProjectMustBeValidatedFirst=El projecte primer ha de ser validat ProjectDraft=Projectes esborrany FirstAddRessourceToAllocateTime=Associate a resource to allocate time @@ -158,28 +158,28 @@ InputPerDay=Entrada per dia InputPerWeek=Entrada per setmana InputPerAction=Entrada per acció TimeAlreadyRecorded=Temps dedicat ja registrat per aquesta tasca/dia i usuari %s -ProjectsWithThisUserAsContact=Projects with this user as contact -TasksWithThisUserAsContact=Tasks assigned to this user -ResourceNotAssignedToProject=Not assigned to project -ResourceNotAssignedToTask=Not assigned to task -AssignTaskToMe=Assign task to me -AssignTask=Assign -ProjectOverview=Overview -ManageTasks=Use projects to follow tasks and time -ManageOpportunitiesStatus=Use projects to follow leads/opportinuties -ProjectNbProjectByMonth=Nb of created projects by month +ProjectsWithThisUserAsContact=Projectes amb aquest usuari com a contacte +TasksWithThisUserAsContact=Tasques asignades a l'usuari +ResourceNotAssignedToProject=No assignat a cap projecte +ResourceNotAssignedToTask=No assignat a cap tasca +AssignTaskToMe=Assignar-me una tasca +AssignTask=Assigna +ProjectOverview=Informació general +ManageTasks=Utilitza els projectes per seguir tasques i temps +ManageOpportunitiesStatus=Utilitza els projectes per seguir oportunitats +ProjectNbProjectByMonth=Nº de projectes creats per mes ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Opened project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. -OpenedProjectsByThirdparties=Opened projects by thirdparties -OpportunityTotalAmount=Opportunities total amount +OpenedProjectsByThirdparties=Projectes oberts per tercers +OpportunityTotalAmount=Import total d'oportunitats OpportunityPonderatedAmount=Opportunities weighted amount OppStatusPROSP=Prospection OppStatusQUAL=Qualification -OppStatusPROPO=Proposal +OppStatusPROPO=Pressupost OppStatusNEGO=Negociation -OppStatusPENDING=Pending -OppStatusWIN=Won -OppStatusLOST=Lost +OppStatusPENDING=Pendent +OppStatusWIN=Guanyat +OppStatusLOST=Perdut diff --git a/htdocs/langs/ca_ES/propal.lang b/htdocs/langs/ca_ES/propal.lang index e5cc3479e1e..677a28058de 100644 --- a/htdocs/langs/ca_ES/propal.lang +++ b/htdocs/langs/ca_ES/propal.lang @@ -52,7 +52,7 @@ PropalsToBill=Pressupostos signats a facturar ListOfProposals=Llistat de pressupostos ActionsOnPropal=Esdeveniments sobre el pressupost NoOpenedPropals=Sense pressupostos oberts -NoOtherOpenedPropals=No other open commercial proposals +NoOtherOpenedPropals=No hi ha altres pressupostos oberts RefProposal=Ref. pressupost SendPropalByMail=Enviar pressupost per e-mail AssociatedDocuments=Documents associats al pressupost: @@ -98,4 +98,4 @@ DocModelJauneDescription=Model de pressupost Jaune DefaultModelPropalCreate=Model per defecte DefaultModelPropalToBill=Model per defecte en tancar un pressupost (a facturar) DefaultModelPropalClosed=Model per defecte en tancar un pressupost (no facturat) -ProposalCustomerSignature=Written acceptance, company stamp, date and signature +ProposalCustomerSignature=Acceptació per escrit, segell de l'empresa, data i signatura diff --git a/htdocs/langs/ca_ES/suppliers.lang b/htdocs/langs/ca_ES/suppliers.lang index 6e2e6d161cd..be4d1a4a36f 100644 --- a/htdocs/langs/ca_ES/suppliers.lang +++ b/htdocs/langs/ca_ES/suppliers.lang @@ -42,5 +42,5 @@ SentToSuppliers=Enviat a proveïdors ListOfSupplierOrders=Llista de comandes a proveïdors MenuOrdersSupplierToBill=Comandes a proveïdors a facturar NbDaysToDelivery=Temps d'entrega en dies -DescNbDaysToDelivery=The biggest deliver delay of the products from this order -UseDoubleApproval=Use double approval when amount (without tax) is higher than (The second approval can be done by any user with the dedicated permission. Set to 0 for no double approval) +DescNbDaysToDelivery=El retard més gran d'entrega dels productes d'aquesta comanda +UseDoubleApproval=Utilitza la doble aprovació quan l'import (sense impostos) és més gran (la segona aprovació es pot fer per un usuari amb els permisos dedicats. Posa 0 per deshabilitar la doble aprovació). diff --git a/htdocs/langs/ca_ES/trips.lang b/htdocs/langs/ca_ES/trips.lang index 8f0546ed429..5ba330cadd5 100644 --- a/htdocs/langs/ca_ES/trips.lang +++ b/htdocs/langs/ca_ES/trips.lang @@ -1,21 +1,21 @@ # Dolibarr language file - Source file is en_US - trips ExpenseReport=Expense report ExpenseReports=Expense reports -Trip=Expense report -Trips=Expense reports -TripsAndExpenses=Expenses reports -TripsAndExpensesStatistics=Expense reports statistics +Trip=Informe de despeses +Trips=Informes de despeses +TripsAndExpenses=Informes de despeses +TripsAndExpensesStatistics=Estadístiques de l'informe de despeses TripCard=Expense report card -AddTrip=Create expense report -ListOfTrips=List of expense reports +AddTrip=Crear informe de despeses +ListOfTrips=Llistat de informes de despeses ListOfFees=Llistat notes de honoraris -ShowTrip=Show expense report -NewTrip=New expense report +ShowTrip=Mostra l'informe de despeses +NewTrip=Nou informe de despeses CompanyVisited=Empresa/institució visitada Kilometers=Quilòmetres FeesKilometersOrAmout=Import o quilòmetres -DeleteTrip=Delete expense report -ConfirmDeleteTrip=Are you sure you want to delete this expense report ? +DeleteTrip=Eliminar informe de despeses +ConfirmDeleteTrip=Esteu segur de voler eliminar aquest informe de despeses? ListTripsAndExpenses=List of expense reports ListToApprove=Waiting for approval ExpensesArea=Expense reports area @@ -54,17 +54,17 @@ Date_DEBUT=Period date start Date_FIN=Period date end ModePaiement=Payment mode Note=Note -Project=Project +Project=Projecte VALIDATOR=User responsible for approval -VALIDOR=Approved by -AUTHOR=Recorded by -AUTHORPAIEMENT=Paid by -REFUSEUR=Denied by -CANCEL_USER=Deleted by +VALIDOR=Aprovat per +AUTHOR=Desat per +AUTHORPAIEMENT=Pagat per +REFUSEUR=Denegat per +CANCEL_USER=Eliminat per -MOTIF_REFUS=Reason -MOTIF_CANCEL=Reason +MOTIF_REFUS=Raó +MOTIF_CANCEL=Raó DATE_REFUS=Deny date DATE_SAVE=Validation date @@ -72,8 +72,8 @@ DATE_VALIDE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date -TO_PAID=Pay -BROUILLONNER=Reopen +TO_PAID=Pagar +BROUILLONNER=Reobrir SendToValid=Sent on approval ModifyInfoGen=Edita ValidateAndSubmit=Validate and submit for approval diff --git a/htdocs/langs/ca_ES/users.lang b/htdocs/langs/ca_ES/users.lang index cb82636b03d..1642d6e9b8f 100644 --- a/htdocs/langs/ca_ES/users.lang +++ b/htdocs/langs/ca_ES/users.lang @@ -57,7 +57,7 @@ RemoveFromGroup=Eliminar del grup PasswordChangedAndSentTo=Contrasenya canviada i enviada a %s. PasswordChangeRequestSent=Petició de canvi de contrasenya per a %s enviada a %s. MenuUsersAndGroups=Usuaris i grups -MenuMyUserCard=My user card +MenuMyUserCard=La meva fitxa d'usuari LastGroupsCreated=Els %s darrers grups creats LastUsersCreated=Els %s darrers usuaris creats ShowGroup=Veure grup diff --git a/htdocs/langs/de_AT/bills.lang b/htdocs/langs/de_AT/bills.lang index 5ff216e9fd4..dcd0a6ed2bd 100644 --- a/htdocs/langs/de_AT/bills.lang +++ b/htdocs/langs/de_AT/bills.lang @@ -15,6 +15,10 @@ NewRelativeDiscount=Neue relative Rabatt DescTaxAndDividendsArea=Dieser Bereich stellt eine Übersicht über alle Zahlungen, die für die Steuer-oder Sozialabgaben. Nur Datensätze mit der Bezahlung während der festgesetzten Jahr hier. RelatedBill=Verwandte Rechnung PaymentConditionRECEP=Prompt nach Rechnungserhalt +PaymentTypeTIP=Deposit +PaymentTypeShortTIP=Deposit +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill LawApplicationPart2=Die Ware bleibt Eigentum der LawApplicationPart3=der Verkäufer bis zur vollständigen Einlösung des LawApplicationPart4=ihren Preis. diff --git a/htdocs/langs/de_AT/holiday.lang b/htdocs/langs/de_AT/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/de_AT/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/de_AT/main.lang b/htdocs/langs/de_AT/main.lang index d90d69cf151..25ce50989f6 100644 --- a/htdocs/langs/de_AT/main.lang +++ b/htdocs/langs/de_AT/main.lang @@ -65,3 +65,4 @@ AttributeCode=Attribut-Code OptionalFieldsSetup=Optionale Felder einrichten CreateDraft=Erstelle Entwurf NoPhotoYet=Es wurde noch kein Bild hochgeladen +ShowTransaction=Show transaction diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/de_CH/admin.lang +++ b/htdocs/langs/de_CH/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/de_CH/banks.lang b/htdocs/langs/de_CH/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/de_CH/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/de_CH/bills.lang b/htdocs/langs/de_CH/bills.lang new file mode 100644 index 00000000000..09a15aeb373 --- /dev/null +++ b/htdocs/langs/de_CH/bills.lang @@ -0,0 +1,52 @@ +# Dolibarr language file - Source file is en_US - bills +BillsCustomersUnpaid=Unbezahlte Kundenrechnungen +BillsCustomersUnpaidForCompany=Unbezahlte Rechnungen vom Kunden %s +BillsSuppliersUnpaid=Unbezahlte Lieferantenrechnungen +BillsSuppliersUnpaidForCompany=Unbezahlte Rechnungen für den Lieferanten %s +BillsStatistics=Zahlungsstatistik - Kundenrechnungen +BillsStatisticsSuppliers=Zahlungsstatistik - Lieferantenrechnungen +DisabledBecauseNotErasable=Das ist deaktiviert, weil ich das nicht löschen kann. +InvoiceStandardAsk=Eine Standardrechnung erstellen +InvoiceStandardDesc=Eine normale Kundenrechnung erstellen +InvoiceDeposit=Akontorechnung +InvoiceDepositAsk=Akontorechnung erstellen +InvoiceDepositDesc=Eine Akontorechnung erstellen +InvoiceProForma=Proformarechnung +InvoiceProFormaAsk=Eine Proformarechnung erstellen +InvoiceReplacementAsk=Eine Ersatzrechnung erstellen +InvoiceReplacementDesc=Eine Ersatzrechnung wird an Stelle einer anderen Rechnung erzeugt. Die andere Rechnung wird so storniert Sie.

Hinweis: Das funktioniert nur, wenn zur Ursprungsrechnung noch keine Zahlung eingegangen ist. Eine noch nicht geschlossene ersetzte Rechnung fällt automatisch in den Status 'zurückgezogen'. +InvoiceAvoirAsk=Gutschrift zum Vermindern des Rechnungsbetrages +InvoiceAvoirDesc=Mit einer Gutschrift gleichst du eine Rechnung aus, z.B. weil jemand zuviel bezahlt hat, oder du zuviel verrechnet hast. Das kannst du auch bei Minderung benutzen, also einer Preisreduktion durch gelieferte mangelhafte Ware. +CorrectionInvoice=Korrigierte Rechnung +NotConsumed=Nicht verbraucht +NoReplacableInvoice=Ich habe keine ersatzfähige Rechnung. +NoInvoiceToCorrect=Ich habe keine Rechnung zu korrigieren. +InvoiceHasAvoir=Korrigiert durch eine oder mehrere Gutschriften +CardBill=Rechnungsübersicht +InvoiceLine=Rechnungsposition +SupplierBill=LIeferantenrechnung +PaidBack=Zurückbezahlt +DeletePayment=Zahlung löschen +ConfirmDeletePayment=Nur zur Sicherheit: Willst du diese Zahlung wirklich löschen? +ConfirmConvertToReduc=Willst du diese Gutschrift in einen absoluten Rabatt umwandeln?
Ich mache dir deinen angegebenen Betrag als Rabatt auswählbar, den du in Zukunft bei Rechnungen wieder verwenden kannst. +ReceivedPayments=Zahlungseingang +ReceivedCustomersPayments=Erhaltene Kundenzahlungen +PaymentsReportsForYear=Zahlungsbericht laufendes Jahr für %s +PaymentsBackAlreadyDone=Bereits erledigte Rückzahlungen +PaymentRule=Zahlungsmodalitäten +PaymentConditions=Zahlungsfrist +PaymentConditionsShort=Frist +PaymentAmount=Betrag +PaymentHigherThanReminderToPay=Der eingegangene Betrag ist höher als der Mahnbetrag. +HelpPaymentHigherThanReminderToPay=Hoppla, du willst einen höheren Betrag angeben, als noch offen ist.
Falls das so stimmt und du daraus z.B. eine Gutschrift machen willst - kein Problem. +ClassifyCanceled=Als 'zurückgezogen' markieren +AddBill=Erstelle eine Rechnung oder Gutschrift +DeleteBill=Rechnung löschen +SearchACustomerInvoice=Kundenrechnung finden +SearchASupplierInvoice=Lieferantenrechnung finden +CancelBill=Rechnung stornieren +SendRemindByMail=Mahnung per E-Mail senden +PaymentTypeTIP=Deposit +PaymentTypeShortTIP=Deposit +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/de_CH/holiday.lang b/htdocs/langs/de_CH/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/de_CH/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/de_CH/main.lang b/htdocs/langs/de_CH/main.lang index 6a5173b676f..30f559a53dc 100644 --- a/htdocs/langs/de_CH/main.lang +++ b/htdocs/langs/de_CH/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M +ShowTransaction=Show transaction diff --git a/htdocs/langs/de_CH/projects.lang b/htdocs/langs/de_CH/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/de_CH/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index 042fe460c9e..38116938ad2 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -39,7 +39,7 @@ InternalUsers=Interne Benutzer ExternalUsers=Externe Benutzer GlobalSetup=Allgemeine Einstellungen GUISetup=Anzeige -SetupArea=Einstellungsübersicht +SetupArea=Einstellungen - Übersicht FormToTestFileUploadForm=Formular für das Testen von Datei-Uplads (je nach Konfiguration) IfModuleEnabled=Anmerkung: Ist nur wirksam wenn Modul %s aktiviert ist RemoveLock=Entfernen Sie die Datei %s falls vorhanden, um das Aktualisierungs-Tool auszuführen @@ -151,7 +151,7 @@ System=System SystemInfo=Systeminformationen SystemToolsArea=Systemwerkzeugsübersicht SystemToolsAreaDesc=In diesem Bereich finden Sie die Verwaltungsfunktionen. Verwenden Sie das linke Menü zur Auswahl der gesuchten Funktion. -Purge=Löschen +Purge=Säubern PurgeAreaDesc=Hier können Sie alle vom System erzeugten und gespeicherten Dateien löschen (temporäre Dateien oder alle Dateien im Verzeichnis %s). Diese Funktion ist nicht erforderlich und richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete) PurgeDeleteLogFile=Löschen der Protokolldatei %s des Systemprotokollmoduls (kein Risiko des Datenverlusts) PurgeDeleteTemporaryFiles=Alle temporären Dateien löschen (kein Datenverlustrisiko) @@ -461,7 +461,7 @@ Module58Name=ClickToDial Module58Desc=ClickToDial-Integration Module59Name=Bookmark4u Module59Desc=Neues Bookmark4u Konto zu Systembenutzerkonto hinzufügen -Module70Name=Service +Module70Name=Arbeitseinsätze Module70Desc=Serviceverwaltung Module75Name=Spesen- und Reiseaufzeichnungen Module75Desc=Reise- und Fahrtspesenverwaltung @@ -566,7 +566,7 @@ Permission13=Rechnungsfreigabe aufheben Permission14=Rechnungen freigeben Permission15=Rechnungen per E-Mail versenden Permission16=Rechnungszahlungen erstellen -Permission19=Rechnungen löschen +Permission19=Kundenrechnungen löschen Permission21=Angebote einsehen Permission22=Angebote erstellen/bearbeiten Permission24=Angebote freigeben @@ -581,10 +581,10 @@ Permission36=Projekte/Leistungen exportieren Permission38=Produkte exportieren Permission41=Projekte und Aufgaben lesen (Geteilte Projekte und Projekte in denen ich Kontakt bin). Es kann auch Zeitaufwand auf zugewiesenen Aufgaben gebucht werden. Permission42=Projekte/Aufgaben erstellen/bearbeiten (Meine) -Permission44=Projekte löschen +Permission44=Projekte und Aufgaben löschen (gemeinsame Projekte und Projekte in welchen ich Ansprechpartner bin) Permission61=Leistungen ansehen Permission62=Leistungen erstellen/bearbeiten -Permission64=Leistungen löschen +Permission64=Interventionen löschen Permission67=Leistungen exportieren Permission71=Mitglieder einsehen Permission72=Mitglieder erstellen/bearbeiten @@ -609,7 +609,7 @@ Permission101=Auslieferungen einsehen Permission102=Auslieferungen erstellen/bearbeiten Permission104=Auslieferungen freigeben Permission106=Auslieferungen exportieren -Permission109=Auslieferungen löschen +Permission109=Sendungen löschen Permission111=Finanzkonten einsehen Permission112=Transaktionen erstellen/ändern/löschen und vergleichen Permission113=Einstellungen Finanzkonten (erstellen, Kategorien verwalten) @@ -852,7 +852,7 @@ LocalTax1IsUsedDescES= Die RE Rate standardmäßig beim Erstellen Aussichten, Re LocalTax1IsNotUsedDescES= Standardmäßig werden die vorgeschlagenen RE 0 ist. Ende der Regel. LocalTax1IsUsedExampleES= In Spanien sind sie Profis unterliegen bestimmten Abschnitten der spanischen IAE. LocalTax1IsNotUsedExampleES= In Spanien sind sie professionelle und Gesellschaften und vorbehaltlich bestimmter Abschnitte der spanischen IAE. -LocalTax2ManagementES= IRPF Management +LocalTax2ManagementES= EKSt. Management LocalTax2IsUsedDescES= Die RE Rate standardmäßig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel:
Ist der Verkäufer nicht zu IRPF ausgesetzt, dann durch IRPF default = 0. Ende der Regel.
Ist der Verkäufer zur IRPF dann der Einkommenssteuer unterworfen standardmäßig. Ende der Regel.
LocalTax2IsNotUsedDescES= Standardmäßig werden die vorgeschlagenen IRPF 0 ist. Ende der Regel. LocalTax2IsUsedExampleES= In Spanien, Freiberufler und unabhängigen Fachleuten, die ihre Dienstleistungen und Unternehmen, die das Steuersystem von Modulen gewählt haben. @@ -1254,14 +1254,14 @@ LDAPServerUseTLSExample=Ihr LDAP-Server TLS LDAPServerDn=Server DN LDAPAdminDn=Administrator DN LDAPAdminDnExample=Vollständige DN (zB: cn=adminldap,dc=society,dc=com) -LDAPPassword=Administratorpasswort +LDAPPassword=Administrator-Passwort LDAPUserDn=Benutzer DN LDAPUserDnExample=Vollständige DN (zB: ou=users,dc=society,dc=com) LDAPGroupDn=Gruppen DN LDAPGroupDnExample=Vollständige DN (zB: ou=users,dc=society,dc=com) LDAPServerExample=Server-Adresse (zB: localhost, 192.168.0.2, ldaps://ldap.example.com/) LDAPServerDnExample=Complete DN (zB: dc=company,dc=com) -LDAPPasswordExample=Administratorenpasswort +LDAPPasswordExample=Administrator-Passwort LDAPDnSynchroActive=Benutzer und Gruppensynchronisation LDAPDnSynchroActiveExample=LDAP zu dolibarr oder dolibarr zu LDAP-Synchronisation LDAPDnContactActive=Kontaktesynchronisation @@ -1564,7 +1564,7 @@ WSDLCanBeDownloadedHere=Die WSDL-Datei der verfügbaren Webservices können Sie EndPointIs=SOAP-Clients müssen Ihre Anfragen an den dolibarr-Endpoint unter der folgenden Url stellen ##### API #### ApiSetup=API-Modul-Setup -ApiDesc=Wenn dieses Modula aktiviert ist, wird Dolibarr zum REST Server für diverse web services. +ApiDesc=Wenn dieses Modul aktiviert ist, wird Dolibarr zum REST Server für diverse web services. KeyForApiAccess=Schlüssel um das API zu nutzen (Parameter "api_key") ApiProductionMode=Aktiviere Produktionsmodus ApiEndPointIs=Sie können das API mit dieser URL verwenden diff --git a/htdocs/langs/de_DE/agenda.lang b/htdocs/langs/de_DE/agenda.lang index ee6f3ca0065..f4072dcbbd8 100644 --- a/htdocs/langs/de_DE/agenda.lang +++ b/htdocs/langs/de_DE/agenda.lang @@ -74,8 +74,8 @@ AgendaUrlOptions2=login=%s begrenzt die Ausgabe auf den Benutzer %slogina=%s begrenzt die Ausgabe auf den Benutzer %s erstellte Ereignissen. AgendaUrlOptions4=logint=%s begrenzt die Ausgabe auf den Benutzer %s zugewiesene Ereignissen. AgendaUrlOptionsProject=project=PROJECT_ID begrenzt die Ausgabe auf die dem Projekte PROJECT_ID zugewiesene Ereignissen. -AgendaShowBirthdayEvents=Zeige Geburtstage -AgendaHideBirthdayEvents=Geburtstage ausblenden +AgendaShowBirthdayEvents=Zeige Geburtstage von Kontakten +AgendaHideBirthdayEvents=Geburtstage von Kontakten ausblenden Busy=Besetzt ExportDataset_event1=Liste Ereignisse des Kalender DefaultWorkingDays=Standard-Werktage der Woche (z.B. 1-5, 1-6) @@ -90,15 +90,15 @@ ExtSiteUrlAgenda=URL Adresse um .ical Datei zu erreichen ExtSiteNoLabel=Keine Beschreibung WorkingTimeRange=Arbeitszeit-Bereich WorkingDaysRange=Arbeitstag-Bereich -VisibleTimeRange=Visible time range -VisibleDaysRange=Visible days range +VisibleTimeRange=Sichtbare Stunden Bereich +VisibleDaysRange=Sichtbare Tage Bereich AddEvent=Ereignis erstellen MyAvailability=Meine Verfügbarkeit ActionType=Ereignistyp DateActionBegin=Beginnzeit des Ereignis -CloneAction=dupliziere Ereignis +CloneAction=Dupliziere Ereignis ConfirmCloneEvent=Möchten Sie dieses Ereignis %s wirklich duplizieren? -RepeatEvent=wiederhole Ereignis +RepeatEvent=Wiederhole Ereignis EveryWeek=Jede Woche EveryMonth=Jeden Monat DayOfMonth=Tag des Monat diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang index 47f7a2914dc..82834228778 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -142,7 +142,7 @@ LastBills=%s neueste Rechnungen LastCustomersBills=%s neueste Kundenrechnungen LastSuppliersBills=Letzte %s Lieferantenrechnungen AllBills=Alle Rechnungen -OtherBills=Sonstige Rechnungen +OtherBills=Weitere Rechnungen DraftBills=Rechnungsentwürfe CustomersDraftInvoices=Entwürfe Kundenrechnungen SuppliersDraftInvoices=Entwürfe Lieferantenrechnungen @@ -211,7 +211,7 @@ SendBillByMail=Rechnung per E-Mail versenden SendReminderBillByMail=Erinnerung per E-Mail versenden RelatedCommercialProposals=Verknüpfte Angebote MenuToValid=Zur Freigabe -DateMaxPayment=Zahlungsziel +DateMaxPayment=Zahlung fällig bis DateEcheance=Zahlungsfrist (Limit) DateInvoice=Rechnungsdatum NoInvoice=Keine Rechnung @@ -227,7 +227,7 @@ RepeatableInvoice=Rechnungs-Vorlage RepeatableInvoices=Rechnungs-Vorlagen Repeatable=Vorlage Repeatables=Vorlagen -ChangeIntoRepeatableInvoice=In Rechnungs-Vorlage umwandeln +ChangeIntoRepeatableInvoice=erzeuge Rechnungsvorlage CreateRepeatableInvoice=Rechnungs-Vorlage erstellen CreateFromRepeatableInvoice=Aus Rechnungs-Vorlage erzeugen CustomersInvoicesAndInvoiceLines=Kundenrechnungen und -positionen @@ -294,8 +294,8 @@ TotalOfTwoDiscountMustEqualsOriginal=Insgesamt zwei neue Rabatt muss gleich zu d ConfirmRemoveDiscount=Sind Sie sicher, dass Sie diesen Rabatt entfernen möchten? RelatedBill=Ähnliche Rechnung RelatedBills=Ähnliche Rechnungen -RelatedCustomerInvoices=Ähnliche Rechnungen -RelatedSupplierInvoices=Ähnliche Rechnungen +RelatedCustomerInvoices=Ähnliche Kundenrechnungen +RelatedSupplierInvoices=Ähnliche Lieferantenrechnungen LatestRelatedBill=Letzte ähnliche Rechnung WarningBillExist=Achtung, es existiert bereits mindestens eine Rechnung MergingPDFTool=PDF zusammenfügen @@ -330,8 +330,8 @@ PaymentTypeCB=Kreditkarte PaymentTypeShortCB=Kreditkarte PaymentTypeCHQ=Scheck PaymentTypeShortCHQ=Scheck -PaymentTypeTIP=Deposit -PaymentTypeShortTIP=Deposit +PaymentTypeTIP=Anzahlung +PaymentTypeShortTIP=Anzahlung PaymentTypeVAD=Online-Zahlung PaymentTypeShortVAD=Online-Zahlung PaymentTypeTRA=Zahlung auf Rechnung diff --git a/htdocs/langs/de_DE/bookmarks.lang b/htdocs/langs/de_DE/bookmarks.lang index 78f28cf4a1e..4fad7a9b231 100644 --- a/htdocs/langs/de_DE/bookmarks.lang +++ b/htdocs/langs/de_DE/bookmarks.lang @@ -10,10 +10,10 @@ BookmarkTargetNewWindowShort=Neues Fenster BookmarkTargetReplaceWindowShort=Aktuelles Fenster BookmarkTitle=Titel des Lesezeichens UrlOrLink=Link -BehaviourOnClick=Verhalten bei Klick auf den Link +BehaviourOnClick=Verhalten wenn ein Link geklickt wird CreateBookmark=Lesezeichen erstellen SetHereATitleForLink=Erfasse hier einen Titel für das Lesezeichen UseAnExternalHttpLinkOrRelativeDolibarrLink=Verwenden Sie eine absolute externe URL oder eine relative Dolibarr URL -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Bitte wählen Sie, ob sich ein geklickter Link in einem neuen oder demselben Fenster öffnet +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Bitte wählen Sie, ob sich ein geklickter Link in einem neuen oder im selben Fenster öffnet BookmarksManagement=Verwalten von Lesezeichen ListOfBookmarks=Liste der Lesezeichen diff --git a/htdocs/langs/de_DE/boxes.lang b/htdocs/langs/de_DE/boxes.lang index cbb0b1a9d18..b9479edcda5 100644 --- a/htdocs/langs/de_DE/boxes.lang +++ b/htdocs/langs/de_DE/boxes.lang @@ -2,7 +2,7 @@ BoxLastRssInfos=RSS-Information BoxLastProducts=Letzte %s Produkte/Leistungen BoxProductsAlertStock=Lagerbestands-Warnungen -BoxLastProductsInContract=Letzte %s verkauften Leistungen in Verträgen +BoxLastProductsInContract=Letzte %s Produkte/Leistungen unter Vertrag genommen BoxLastSupplierBills=Zuletzt bearbeitete Lieferantenrechnungen BoxLastCustomerBills=Zuletzt bearbeitete Kundenrechnungen BoxOldestUnpaidCustomerBills=Älteste offene Kundenrechnungen @@ -18,7 +18,7 @@ BoxLastActions=Zuletzt bearbeitete Ereignisse BoxLastContracts=Zuletzt abgeschlossene Verträge BoxLastContacts=Letzte Kontakte/Adressen BoxLastMembers=Letzte Mitglieder -BoxFicheInter=Neueste Eingriffe +BoxFicheInter=Letzte Einsätze BoxCurrentAccounts=Saldo offene Konten BoxSalesTurnover=Umsatz BoxTotalUnpaidCustomerBills=Summe offener Kundenrechnungen (OP Gesamt) @@ -78,7 +78,7 @@ NoRecordedProducts=Keine erfassten Produkte/Leistungen NoRecordedProspects=Keine erfassten Leads NoContractedProducts=Keine Produkte/Leistungen im Auftrag NoRecordedContracts=Keine Verträge erfasst -NoRecordedInterventions=Keine bearbeiteten Eingriffe +NoRecordedInterventions=Keine verzeichneten Einsätze BoxLatestSupplierOrders=Neueste Lieferantenbestellungen BoxTitleLatestSupplierOrders=Letzte %s Lieferantenbestellungen BoxTitleLatestModifiedSupplierOrders=Letzte %s bearbeiteten Lieferantenbestellungen diff --git a/htdocs/langs/de_DE/categories.lang b/htdocs/langs/de_DE/categories.lang index b9e68579204..20d39df1385 100644 --- a/htdocs/langs/de_DE/categories.lang +++ b/htdocs/langs/de_DE/categories.lang @@ -8,10 +8,10 @@ In=In AddIn=Einfügen in modify=Ändern Classify=Einordnen -CategoriesArea=Kategorienbereich-Übersicht +CategoriesArea=#tags/Kategorien - Übersicht ProductsCategoriesArea=Produkte/Leistungen Kategorien-Übersicht SuppliersCategoriesArea=Lieferantenkategorienübersicht -CustomersCategoriesArea=Kunden- Kategorien/#tags +CustomersCategoriesArea=Kundenkategorien bzw. Suchwörter Übersicht ThirdPartyCategoriesArea=Partner- Kategorien/#tags MembersCategoriesArea=Mitglieder- Kategorien/#tags ContactsCategoriesArea=Kontaktkategorien-Übersicht @@ -49,7 +49,7 @@ CompanyIsInCustomersCategories=Dieser Partner ist folgenden Kunden- Kategorien/# CompanyIsInSuppliersCategories=Dieser Parnter ist folgenden Lieferanten- Kategorien/#tags zugewiesen MemberIsInCategories=Dieses Mitglied ist folgenden Mitglieder- Kategorien/#tags zugewiesen ContactIsInCategories=Dieser Kontakt ist folgenden Kontakte- Kategorien/#tags verknüpft -ProductHasNoCategory=Dieses Produkt/Service ist keiner Kategorie zugewiesen. +ProductHasNoCategory=Dieses Produkt/Leistung ist keiner Kategorie zugewiesen. SupplierHasNoCategory=Dieser Lieferant ist keiner Kategorie zugewiesen. CompanyHasNoCategory=Dieser Partner ist in keiner Kategorie MemberHasNoCategory= Dieses Mitglied ist keiner Kategorie zugewiesen. @@ -101,7 +101,7 @@ CatProdLinks=Verbindung zwischen Produkten/Leistungen und Kategorien CatMemberLinks=Verbindung zwischen Mitgliedern und Kategorien DeleteFromCat=Aus Kategorie entfernen DeletePicture=Bild löschen -ConfirmDeletePicture=Bild wirklich löschen? +ConfirmDeletePicture=Möchten Sie dieses Bild wirklich löschen? ExtraFieldsCategories=Ergänzende Attribute CategoriesSetup=Suchwörter/Kategorien Einstellungen CategorieRecursiv=Automatisch mit übergeordneter Kategorie verbinden diff --git a/htdocs/langs/de_DE/commercial.lang b/htdocs/langs/de_DE/commercial.lang index 36e31421c60..ac088eb9dfb 100644 --- a/htdocs/langs/de_DE/commercial.lang +++ b/htdocs/langs/de_DE/commercial.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - commercial Commercial=Vertrieb -CommercialArea=Vertriebsübersicht +CommercialArea=Vertriebs - Übersicht CommercialCard=Vertriebskarte CustomerArea=Kundenübersicht Customer=Kunde @@ -22,7 +22,7 @@ TaskRDV=Treffen TaskRDVWith=Treffen mit %s ShowTask=Zeige Aufgabe ShowAction=Ereignisse anzeigen -ActionsReport=Ereignis Report +ActionsReport=Ereignis Journal ThirdPartiesOfSaleRepresentative=Partner mit Vertriebsmitarbeiter SalesRepresentative=Vertriebsmitarbeiter SalesRepresentatives=Vertreter diff --git a/htdocs/langs/de_DE/companies.lang b/htdocs/langs/de_DE/companies.lang index b65fe6eb2c4..9c9032f9c04 100644 --- a/htdocs/langs/de_DE/companies.lang +++ b/htdocs/langs/de_DE/companies.lang @@ -24,7 +24,7 @@ SocGroup=Unternehmensgruppe IdThirdParty=Partner ID IdCompany=Unternehmens ID IdContact=Kontakt ID -Contacts=Kontakte +Contacts=Kontakte/Adressen ThirdPartyContacts=Partnerkontakte ThirdPartyContact=Partnerkontakt StatusContactValidated=Status des Kontakts @@ -93,7 +93,7 @@ LocalTax1IsNotUsedES= RE wird nicht verwendet LocalTax2IsUsedES= IRPF wird verwendet LocalTax2IsNotUsedES= IRPF wird nicht verwendet LocalTax1ES=RE -LocalTax2ES=IRPF +LocalTax2ES=EKSt. TypeLocaltax1ES=RE Typ TypeLocaltax2ES=EKSt. Typ TypeES=Typ @@ -109,7 +109,7 @@ ProfId2Short=Prof. ID 2 ProfId3Short=Prof. ID 3 ProfId4Short=Prof. ID 4 ProfId5Short=Prof. ID 5 -ProfId6Short=Prof. ID 6 +ProfId6Short=- ProfId1=Professional ID 1 ProfId2=Professional ID 2 ProfId3=Professional ID 3 @@ -379,7 +379,7 @@ PriceLevel=Preisstufe DeliveriesAddress=Lieferadressen DeliveryAddress=Lieferadresse DeliveryAddressLabel=Lieferadressen-Label -DeleteDeliveryAddress=Lieferadresse löschen +DeleteDeliveryAddress=Löschen einer Lieferadresse ConfirmDeleteDeliveryAddress=Möchten Sie diese Lieferadresse wirklich löschen? NewDeliveryAddress=Neue Lieferadresse AddDeliveryAddress=Adresse erstellen diff --git a/htdocs/langs/de_DE/compta.lang b/htdocs/langs/de_DE/compta.lang index 08abbfcda37..0cf4ae6bb8a 100644 --- a/htdocs/langs/de_DE/compta.lang +++ b/htdocs/langs/de_DE/compta.lang @@ -63,7 +63,7 @@ MenuSpecialExpenses=Sonstige Ausgaben MenuTaxAndDividends=Steuern und Dividenden MenuSalaries=Löhne MenuSocialContributions=Sozialabgaben/Steuern -MenuNewSocialContribution=New social/fiscal tax +MenuNewSocialContribution=Neue Abgabe/Steuer NewSocialContribution=Neue Sozialabgabe / Steuersatz ContributionsToPay=Sozialabgaben/Unternehmenssteuern zu bezahlen AccountancyTreasuryArea=Rechnungswesen/Vermögensverwaltung diff --git a/htdocs/langs/de_DE/contracts.lang b/htdocs/langs/de_DE/contracts.lang index 92ba1779802..145d996c8f6 100644 --- a/htdocs/langs/de_DE/contracts.lang +++ b/htdocs/langs/de_DE/contracts.lang @@ -21,8 +21,8 @@ ServicesLegend=Services Legende Contracts=Verträge ContractsAndLine=Verträge und Zeilen von Verträgen Contract=Vertrag -ContractLine=Contract line -Closing=Closing +ContractLine=Vertragszeile +Closing=Schließen NoContracts=Keine Verträge MenuServices=Leistungen MenuInactiveServices=Inaktive Leistungen diff --git a/htdocs/langs/de_DE/donations.lang b/htdocs/langs/de_DE/donations.lang index 4299cb5025c..f3682d0bcb8 100644 --- a/htdocs/langs/de_DE/donations.lang +++ b/htdocs/langs/de_DE/donations.lang @@ -6,8 +6,8 @@ Donor=Spender Donors=Spender AddDonation=Spende erstellen NewDonation=Neue Spende -DeleteADonation=Delete a donation -ConfirmDeleteADonation=Are you sure you want to delete this donation ? +DeleteADonation=Ein Spende löschen +ConfirmDeleteADonation=Sind Sie sicher, dass diese Spende löschen wollen? ShowDonation=Spenden anzeigen DonationPromise=Zugesagte Spende PromisesNotValid=Ungültige Zusage @@ -16,15 +16,15 @@ DonationsPaid=Bezahlte Spenden DonationsReceived=Erhaltene Spenden PublicDonation=Öffentliche Spenden DonationsNumber=Spendenanzahl -DonationsArea=Spendenübersicht +DonationsArea=Spenden - Übersicht DonationStatusPromiseNotValidated=Zugesagt (nicht freigegeben) DonationStatusPromiseValidated=Zugesagt (freigegeben) DonationStatusPaid=Spende bezahlt DonationStatusPromiseNotValidatedShort=Entwurf DonationStatusPromiseValidatedShort=Freigegeben DonationStatusPaidShort=Bezahlt -DonationTitle=Donation receipt -DonationDatePayment=Payment date +DonationTitle=Spendenbescheinigung +DonationDatePayment=Zahlungsdatum ValidPromess=Zusage freigeben DonationReceipt=Spendenbescheinigung BuildDonationReceipt=Erzeuge Spendenbeleg @@ -35,9 +35,9 @@ DonationRecipient=Spenden Empfänger ThankYou=Danke IConfirmDonationReception=Der Empfänger bestätigt den Erhalt einer Spende in Höhe von MinimumAmount=Mindestbetrag ist %s -FreeTextOnDonations=Free text to show in footer +FreeTextOnDonations=Freier Text der in der Fußzeile angezeigt wird FrenchOptions=Optionen für Frankreich -DONATION_ART200=Show article 200 from CGI if you are concerned -DONATION_ART238=Show article 238 from CGI if you are concerned -DONATION_ART885=Show article 885 from CGI if you are concerned -DonationPayment=Donation payment +DONATION_ART200=Zeige Artikel 200 des CGI, falls Sie betroffen sind +DONATION_ART238=Zeige Artikel 238 des CGI, falls Sie betroffen sind +DONATION_ART885=Zeige Artikel 885 des CGI, falls Sie betroffen sind +DonationPayment=Spendenzahlung diff --git a/htdocs/langs/de_DE/ecm.lang b/htdocs/langs/de_DE/ecm.lang index ab792d8e0c7..a88fe25fc2d 100644 --- a/htdocs/langs/de_DE/ecm.lang +++ b/htdocs/langs/de_DE/ecm.lang @@ -47,7 +47,7 @@ ECMDocsByUsers=Mit Benutzern verknüpfte Dokumente ECMDocsByInterventions=Mit Eingriffen verknüpfte Dokumente ECMNoDirectoryYet=Noch kein Ordner erstellt ShowECMSection=Ordner anzeigen -DeleteSection=Ordner löschen +DeleteSection=Verzeichnis löschen ConfirmDeleteSection=Möchten Sie das Verzeichnis %s wirklich löschen? ECMDirectoryForFiles=Relatives Verzeichnis für Dateien CannotRemoveDirectoryContainsFiles=Entfernen des Ordners nicht möglich, da dieser noch Dateien enthält diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang index f9c8d9956da..b20bc17a37b 100644 --- a/htdocs/langs/de_DE/errors.lang +++ b/htdocs/langs/de_DE/errors.lang @@ -79,7 +79,7 @@ ErrorModuleRequireJavascript=Diese Funktion erfordert aktiviertes JavaScript. Ak ErrorPasswordsMustMatch=Die eingegebenen Passwörter müssen identisch sein. ErrorContactEMail=Ein technischer Fehler ist aufgetreten. Bitte kontaktieren Sie Ihren Administrator unter der folgenden E-Mail-Adresse %s und fügen Sie den Fehlercode %s in Ihrer Nachricht ein, oder (noch besser) fügen Sie einen Screenshot dieser Seite als Anhang bei. ErrorWrongValueForField=Falscher Wert für Feld Nr. %s (Wert '%s' passt nicht zur Regex-Regel %s) -ErrorFieldValueNotIn=Wrong value for field number %s (value '%s' is not a value available into field %s of table %s) +ErrorFieldValueNotIn=Nicht korrekter Wert für das Feld Nummer %s (Wert '%s' ist kein verfügbarer Wert im Feld %s der Tabelle %s) ErrorFieldRefNotIn=Falscher Wert für Feldnummer %s (für den Wert '%s' besteht keine %s Referenz) ErrorsOnXLines=Fehler in %s Quellzeilen ErrorFileIsInfectedWithAVirus=Der Virenschutz konnte diese Datei nicht freigeben (eventuell ist diese mit einem Virus infiziert) diff --git a/htdocs/langs/de_DE/exports.lang b/htdocs/langs/de_DE/exports.lang index 8c6f9f7de6e..a0e6dd65b6a 100644 --- a/htdocs/langs/de_DE/exports.lang +++ b/htdocs/langs/de_DE/exports.lang @@ -48,7 +48,7 @@ NoImportableData=Keine importfähigen Daten (kein Modul mit Erlaubnis für Daten FileSuccessfullyBuilt=Exportdatei erfolgreich erzeugt SQLUsedForExport=SQL-Abfrage für Erstellung der Exportdatei genutzt LineId=ID der Zeile -LineLabel=Label of line +LineLabel=Zeilenbeschriftung LineDescription=Beschreibung der Zeile LineUnitPrice=Stückpreis der Zeile LineVATRate=Steuersatz der Zeile @@ -56,7 +56,7 @@ LineQty=Menge der Zeile LineTotalHT=Nettobetrag der Zeile LineTotalTTC=Bruttobetrag der Zeile LineTotalVAT=Steuerbetrag der Zeile -TypeOfLineServiceOrProduct=Art der Zeile (0=Produkt, 1=Service) +TypeOfLineServiceOrProduct=Art der Zeile (0=Produkt, 1=Leistung) FileWithDataToImport=Datei mit zu importierenden Daten FileToImport=Quelldatei für Import FileMustHaveOneOfFollowingFormat=Die Importdatei muss in einem der folgenden Formate vorliegen diff --git a/htdocs/langs/de_DE/interventions.lang b/htdocs/langs/de_DE/interventions.lang index 06db7c0d046..2a94bb1cc95 100644 --- a/htdocs/langs/de_DE/interventions.lang +++ b/htdocs/langs/de_DE/interventions.lang @@ -1,29 +1,29 @@ # Dolibarr language file - Source file is en_US - interventions -Intervention=Eingriff -Interventions=Eingriffe -InterventionCard=Eingriffskarte -NewIntervention=Neuer Eingriff -AddIntervention=Eingriff erstellen -ListOfInterventions=Liste der Eingriffe +Intervention=Arbeitseinsatz +Interventions=Arbeitseinsätze +InterventionCard=Arbeitszeitdokumentation +NewIntervention=Neuer Einsatz +AddIntervention=Einsatz erstellen +ListOfInterventions=Liste der Einsätze EditIntervention=Eingriff bearbeiten ActionsOnFicheInter=Aktionen zum Eingriff -LastInterventions=Letzte %s Eingriffe -AllInterventions=Alle Eingriffe +LastInterventions=Letzte %s Einsätze +AllInterventions=Alle Einsätze CreateDraftIntervention=Eingriffsentwurf CustomerDoesNotHavePrefix=Kunde hat kein Präfix InterventionContact=Kontakt für Eingriffe -DeleteIntervention=Eingriff löschen -ValidateIntervention=Eingriff freigeben +DeleteIntervention=Einsatz löschen +ValidateIntervention=Einsatz freigeben ModifyIntervention=Geänderte Eingriff DeleteInterventionLine=Eingriffszeile löschen -ConfirmDeleteIntervention=Möchten Sie diesen Eingriff wirklich löschen? -ConfirmValidateIntervention=Möchten Sie diesen Eingriff wirklich freigeben? -ConfirmModifyIntervention=Sind Sie sicher, dass Sie ändern möchten diese Intervention? -ConfirmDeleteInterventionLine=Möchten Sie diese Eingriffszeile wirklich löschen? +ConfirmDeleteIntervention=Möchten Sie diese Arbeitsleistung wirklich löschen? +ConfirmValidateIntervention=Möchten Sie diese Arbeitsleistung mit der Referenz %s wirklich freigeben? +ConfirmModifyIntervention=Möchten sie diese Arbeitsleistung wirklich verändern? +ConfirmDeleteInterventionLine=Möchten Sie diese Arbeitsleistung wirklich löschen? NameAndSignatureOfInternalContact=Name und Unterschrift des Mitarbeiter: NameAndSignatureOfExternalContact=Name und Unterschrift des Kunden: -DocumentModelStandard=Standard-Dokumentvorlage für Eingriffe -InterventionCardsAndInterventionLines=Eingriffe und Eingriffszeilen +DocumentModelStandard=Standard-Dokumentvorlage für Arbeitseinsätze +InterventionCardsAndInterventionLines=Einsatzkarte und Einsatzzeilen InterventionClassifyBilled=Eingeordnet "Angekündigt" InterventionClassifyUnBilled=Als "nicht verrechnet" markieren StatusInterInvoiced=Angekündigt @@ -38,7 +38,7 @@ InterventionClassifiedBilledInDolibarr=Eingriff %s als verrechnet eingestuft InterventionClassifiedUnbilledInDolibarr=Eingriff %s als nicht verrechnet eingestuft InterventionSentByEMail=Eingriff %s per E-Mail versandt InterventionDeletedInDolibarr=Eingriff %s gelöscht -SearchAnIntervention=Eingriff suchen +SearchAnIntervention=Arbeitseinsatz suchen ##### Types de contacts ##### TypeContact_fichinter_internal_INTERREPFOLL=Eingriffsnachverfolgung durch Vertreter TypeContact_fichinter_internal_INTERVENING=Eingriff läuft @@ -46,7 +46,7 @@ TypeContact_fichinter_external_BILLING=Rechnungskontakt Kunde TypeContact_fichinter_external_CUSTOMER=Kundenkontakt-Nachverfolgung # Modele numérotation ArcticNumRefModelDesc1=Generisches Nummernmodell -ArcticNumRefModelError=Fehler beim aktivieren +ArcticNumRefModelError=Aktivierung nicht möglich PacificNumRefModelDesc1=Liefere Nummer im Format %syymm-nnnn zurück, wobei yy das Jahr, mm das Monat und nnnn eine Zahlensequenz ohne Nullwert oder Leerzeichen ist PacificNumRefModelError=Eine Interventionskarte beginnend mit $syymm existiert bereits und ist nicht mir dieser Numerierungssequenz kompatibel. Bitte löschen oder umbenennen. PrintProductsOnFichinter=Drucke Produkte auf Eingriffskarte diff --git a/htdocs/langs/de_DE/link.lang b/htdocs/langs/de_DE/link.lang index 0961f84c644..6e40ae870fc 100644 --- a/htdocs/langs/de_DE/link.lang +++ b/htdocs/langs/de_DE/link.lang @@ -1,8 +1,8 @@ -LinkANewFile=Verknüpfen Sie eine neue Datei / Dokument +LinkANewFile=Verknüpfe eine neue Datei /Dokument LinkedFiles=Verknüpfte Dateien und Dokumente -NoLinkFound=Keine eingetragenen Verknüpfungen -LinkComplete=Die Datei wurde erfolgreich verknüpft -ErrorFileNotLinked=Die Datei konnte nicht Verknüpft werden -LinkRemoved=Die Verknüpfung %s wurde entfernt -ErrorFailedToDeleteLink= Fehler beim Löschen des Links '%s' -ErrorFailedToUpdateLink= Fehler beim Aktualisieren der Verknüpfung '%s' +NoLinkFound=Keine verknüpften Links +LinkComplete=Die Datei wurde erfolgreich verlinkt +ErrorFileNotLinked=Die Datei konnte nicht verlinkt werden +LinkRemoved=Der Link %s wurde entfernt +ErrorFailedToDeleteLink= Fehler beim entfernen des Links '%s' +ErrorFailedToUpdateLink= Fehler beim aktualisieren des Link '%s' diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index cfbb6db32ba..6d22cb3bf8d 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -25,7 +25,7 @@ FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M DatabaseConnection=Datenbankverbindung NoTranslation=Keine Übersetzung -NoRecordFound=Kein Eintrag gefunden +NoRecordFound=Keinen Eintrag gefunden NoError=kein Fehler Error=Fehler ErrorFieldRequired=Feld '%s' ist erforderlich @@ -44,7 +44,7 @@ ErrorFailedToSendMail=Fehler beim Senden der E-Mail (Absender=%s, Empfänger=%s) ErrorAttachedFilesDisabled=Dateianhänge sind auf diesem Server deaktiviert ErrorFileNotUploaded=Die Datei konnte nicht hochgeladen werden. Stellen Sie sicher dass die Dateigröße nicht den gesetzten Maximalwert übersteigt, das Zielverzeichnis über genügend freien Speicherplatz verfügt und noch keine Datei mit gleichem Namen existiert. ErrorInternalErrorDetected=Interner Fehler entdeckt -ErrorNoRequestRan=Abfrage ist nicht erfolgreich gelaufen +ErrorNoRequestRan=Es wurde keine Abfrage ausgeführt ErrorWrongHostParameter=Ungültige Host-Parameter ErrorYourCountryIsNotDefined=Ihr Land ist nicht definiert. Bitte vervollständigen Sie das Profil unter Start - Einstellungen - Firma/Stiftung ErrorRecordIsUsedByChild=Kann diesen Eintrag nicht löschen. Dieser Eintrag wird von mindestens einem untegeordneten Datensatz verwendet. @@ -58,7 +58,7 @@ ErrorConfigParameterNotDefined=Parameter %s innerhalb der Konfigurationsd ErrorCantLoadUserFromDolibarrDatabase=Kann Benutzer %s nicht aus der Systemdatenbank laden. ErrorNoVATRateDefinedForSellerCountry=Fehler, keine MwSt.-Sätze für Land '%s' definiert. ErrorNoSocialContributionForSellerCountry=Fehler, keine Definition für Sozialabgaben/Steuerwerte definiert in Firma '%s'. -ErrorFailedToSaveFile=Fehler beim Speichern der Datei. +ErrorFailedToSaveFile=Fehler, konnte Datei nicht speichern. SetDate=Datum SelectDate=Wählen Sie ein Datum SeeAlso=Siehe auch %s @@ -108,7 +108,7 @@ Yes=Ja no=nein No=Nein All=Alle -Alls=All +Alls=Alle Home=Start Help=Hilfe OnlineHelp=Online-Hilfe @@ -152,14 +152,14 @@ ToClone=Duplizieren ConfirmClone=Wählen Sie die zu duplizierenden Daten: NoCloneOptionsSpecified=Keine Duplikationsoptionen ausgewählt. Of=von -Go=Los +Go=Weiter Run=bearbeiten CopyOf=Duplikat von Show=Zeige ShowCardHere=Zeige Karte Search=Suchen SearchOf=Suche nach -Valid=Gültig +Valid=Freigabe Approve=Genehmigen Disapprove=Abgelehnt ReOpen=Wiedereröffnen @@ -343,7 +343,7 @@ TTC=Brutto VAT=MwSt. VATs=Mehrwertsteuern LT1ES=RE -LT2ES=IRPF +LT2ES=EKSt. VATRate=Steuersatz Average=Durchschnitt Sum=Summe @@ -422,7 +422,7 @@ ReCalculate=Neuberechnung ResultOk=Erfolg ResultKo=Fehlschlag Reporting=Berichterstattung -Reportings=Berichterstattungen +Reportings=Berichte Draft=Entwurf Drafts=Entwürfe Validated=Freigegeben @@ -710,7 +710,7 @@ GoIntoSetupToChangeLogo=Gehen Sie zu Start - Einstellungen - Firma/Stiftung um d Deny=ablehnen Denied=abgelehnt ListOfTemplates=Liste der Vorlagen -Gender=Gender +Gender=Geschlecht Genderman=Mann Genderwoman=Frau ViewList=Listenansicht @@ -747,4 +747,4 @@ ShortFriday=Fr ShortSaturday=Sa ShortSunday=So SelectMailModel=Wähle E-Mail-Vorlage -SetRef=Set ref +SetRef=Set Ref diff --git a/htdocs/langs/de_DE/margins.lang b/htdocs/langs/de_DE/margins.lang index eec6295e31b..884e87460a7 100644 --- a/htdocs/langs/de_DE/margins.lang +++ b/htdocs/langs/de_DE/margins.lang @@ -4,7 +4,7 @@ Margin=Gewinnspanne Margins=Gewinnspannen TotalMargin=Gesamt-Spanne MarginOnProducts=Gewinnspanne / Produkte -MarginOnServices=Gewinnspanne / Services +MarginOnServices=Gewinnspanne / Leistungen MarginRate=Gewinnspannen-Rate MarkRate=Gewinnspannen-Rate DisplayMarginRates=Zeige Gewinnspannen-Raten an @@ -18,7 +18,7 @@ CustomerMargins=Kunden-Gewinnspannen SalesRepresentativeMargins=Vertreter-Gewinnspannen UserMargins=Spannen nach Benutzer ProductService=Produkt oder Service -AllProducts=Alle Produkte und Services +AllProducts=Alle Produkte und Leistungen ChooseProduct/Service=Produkt oder Service wählen StartDate=Vertragsbeginn EndDate=Vertragsende diff --git a/htdocs/langs/de_DE/printing.lang b/htdocs/langs/de_DE/printing.lang index 8da303937fd..1f55661d190 100644 --- a/htdocs/langs/de_DE/printing.lang +++ b/htdocs/langs/de_DE/printing.lang @@ -3,8 +3,8 @@ Module64000Name=Direkt drucken Module64000Desc=Direkt-Druck-System aktivieren PrintingSetup=Direkt-Druck-System einrichten PrintingDesc=Dieses Modul fügt einen "Drucken"-Button zu, um Dokumente direkt zu einen Drucker zu senden. Dies erfordert ein Linux-System mit installiertem CUPS. -MenuDirectPrinting=Direct Printing -DirectPrint=Direct print +MenuDirectPrinting=Direkt drucken +DirectPrint=Direkt drucken ModuleDriverSetup=Modul Treiber einrichten PrintingDriverDesc=Konfigurationsvariablen für den Druck-Treiber. ListDrivers=Treiberliste @@ -12,11 +12,11 @@ PrintTestDesc=Druckerliste FileWasSentToPrinter=Datei %s wurde an den Drucker gesendet NoActivePrintingModuleFound=Kein aktives Modul, um Druckvorgang auszuführen PleaseSelectaDriverfromList=Bitte wählen Sie einen Treiber von der Liste -PleaseConfigureDriverfromList=Please configure the selected driver from list. -SetupDriver=Treibereinstellungen +PleaseConfigureDriverfromList=Bitte konfiguriere den ausgewählten Treiber aus der Liste +SetupDriver=Treiber Einstellungen TestDriver=Test TargetedPrinter=Zieldrucker -UserConf=Je Nutzer einrichten +UserConf=Pro Benutzer einrichten PRINTGCP=Google Cloud Print PrintGCPDesc=Dieser Treiber erlaubt das direkte senden zu ein Drucker via Google Cloud Print PrintingDriverDescprintgcp=Konfigurationsvariablen für den Druck Fahrer Google Cloud Print. @@ -53,7 +53,7 @@ PRINTIPP_USER=Anmeldung PRINTIPP_PASSWORD=Passwort NoPrinterFound=Keine Drucker gefunden (CUPS-Konfiguration prüfen) NoDefaultPrinterDefined=Kein Standarddrucker defininert -DefaultPrinter=Standarddrucker +DefaultPrinter=Standard-Drucker Printer=Drucker CupsServer=CUPS-Server IPP_Uri=Drucker Uri @@ -61,7 +61,7 @@ IPP_Name=Druckername IPP_State=Druckerstatus IPP_State_reason=Status Grund IPP_State_reason1=Status Grund 1 -IPP_BW=schwarz und weiß +IPP_BW=schwarz / weiß IPP_Color=Farbe IPP_Device=IPP Gerät IPP_Media=Druckermedium diff --git a/htdocs/langs/de_DE/products.lang b/htdocs/langs/de_DE/products.lang index ff98247348f..37e9e174459 100644 --- a/htdocs/langs/de_DE/products.lang +++ b/htdocs/langs/de_DE/products.lang @@ -241,7 +241,7 @@ ProductBuilded=Produktion fertiggestellt ProductsMultiPrice=Produkt Multi-Preis ProductsOrServiceMultiPrice=Kundenpreise (von Produkten oder Leistungen, Multi-Preise) ProductSellByQuarterHT=Umsatz Produkte pro Quartal -ServiceSellByQuarterHT=Umsatz Services pro Quartal +ServiceSellByQuarterHT=Umsatz von Leistungen pro Quartal Quarter1=1. Quartal Quarter2=2. Quartal Quarter3=3. Quartal diff --git a/htdocs/langs/de_DE/projects.lang b/htdocs/langs/de_DE/projects.lang index 14cd6b17299..4a219023957 100644 --- a/htdocs/langs/de_DE/projects.lang +++ b/htdocs/langs/de_DE/projects.lang @@ -45,7 +45,7 @@ TaskTimeUser=Benutzer TaskTimeNote=Hinweis TaskTimeDate=Datum TasksOnOpenedProject=Aufgaben in offenen Projekten -WorkloadNotDefined=Workload nicht definiert +WorkloadNotDefined=Arbeitsaufwand nicht definiert NewTimeSpent=Neuer Zeitaufwand MyTimeSpent=Mein Zeitaufwand MyTasks=Meine Aufgaben @@ -80,7 +80,7 @@ ListDonationsAssociatedProject=Liste Spenden, die mit diesem Projekt verknüpft ListActionsAssociatedProject=Liste Ereignisse, die mit diesem Projekt verknüpft sind ListTaskTimeUserProject=Liste mit Zeitaufwand der Projektaufgaben TaskTimeUserProject=Zeitaufwand für Aufgaben des Projektes -ActivityOnProjectToday=Heutige Projektaktivität +ActivityOnProjectToday=Projektaktivitäten von heute ActivityOnProjectYesterday=Projektaktivitäten von gestern ActivityOnProjectThisWeek=Projektaktivitäten dieser Woche ActivityOnProjectThisMonth=Projektaktivitäten dieses Monats @@ -143,11 +143,11 @@ SelectElement=Element wählen AddElement=Mit Element verknüpfen UnlinkElement=Verknüpfung zu Element aufheben # Documents models -DocumentModelBeluga=Project template for linked objects overview -DocumentModelBaleine=Project report template for tasks +DocumentModelBeluga=Bericht Vorlage für verknüpfte Objekte-Übersicht +DocumentModelBaleine=Projektberichtsvorlage für Aufgaben PlannedWorkload=Geplante Auslastung -PlannedWorkloadShort=Workload -WorkloadOccupation=Workloadzuordnung +PlannedWorkloadShort=Arbeitsaufwand +WorkloadOccupation=Zugeordneter Arbeitsaufwand ProjectReferers=Verknüpfte Objekte SearchAProject=Projekt suchen SearchATask=Aufgabe suchen diff --git a/htdocs/langs/de_DE/propal.lang b/htdocs/langs/de_DE/propal.lang index c5ecebc064d..095d3a308cf 100644 --- a/htdocs/langs/de_DE/propal.lang +++ b/htdocs/langs/de_DE/propal.lang @@ -42,7 +42,7 @@ PropalStatusNotSigned=Nicht unterzeichnet (geschlossen) PropalStatusBilled=Verrechnet PropalStatusDraftShort=Entwurf PropalStatusValidatedShort=Freigegeben -PropalStatusOpenedShort=offen +PropalStatusOpenedShort=Offen PropalStatusClosedShort=Geschlossen PropalStatusSignedShort=Unterzeichnet PropalStatusNotSignedShort=Nicht unterzeichnet diff --git a/htdocs/langs/de_DE/stocks.lang b/htdocs/langs/de_DE/stocks.lang index 72003dfbe11..be091b2950e 100644 --- a/htdocs/langs/de_DE/stocks.lang +++ b/htdocs/langs/de_DE/stocks.lang @@ -24,7 +24,7 @@ ErrorWarehouseLabelRequired=Warenlager-Label erforderlich CorrectStock=Lagerbestand anpassen ListOfWarehouses=Liste der Warenlager ListOfStockMovements=Liste der Lagerbewegungen -StocksArea=Lagerbereich +StocksArea=Warenlager - Übersicht Location=Standort LocationSummary=Kurzbezeichnung Standort NumberOfDifferentProducts=Anzahl unterschiedlicher Produkte diff --git a/htdocs/langs/de_DE/users.lang b/htdocs/langs/de_DE/users.lang index f5cc4aa714a..a9751c544fd 100644 --- a/htdocs/langs/de_DE/users.lang +++ b/htdocs/langs/de_DE/users.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - users -HRMArea=PM - Personalmanagment - Übersicht +HRMArea=Personalmanagment - Übersicht UserCard=Benutzerkarte ContactCard=Kontaktkarte GroupCard=Firmenverbundkarte diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index 26bc6462cf4..8d8ed1ae60d 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -1,7 +1,7 @@ # Dolibarr language file - en_US - Accounting Expert CHARSET=UTF-8 -ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file -ACCOUNTING_EXPORT_DATE=Date format for export file +ACCOUNTING_EXPORT_SEPARATORCSV=Διαχωριστής στηλών για το αρχείο που θα εξαχθεί +ACCOUNTING_EXPORT_DATE=Μορφή ημερομηνίας για το αρχείο που θα εξαγθεί ACCOUNTING_EXPORT_PIECE=Export the number of piece ? ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account ? ACCOUNTING_EXPORT_LABEL=Export the label ? diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index eec83b85740..91489e502f2 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -948,7 +948,7 @@ DoNotSuggestPaymentMode=Χωρίς πρόταση πληρωμής NoActiveBankAccountDefined=Δεν έχει οριστεί ενεργός λογαριασμός τράπεζας OwnerOfBankAccount=Ιδιοκτήτης του λογαριασμού τράπεζας %s BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" +ShowBugTrackLink=Εμφάνιση συνδέσμου link %s ShowWorkBoard=Show "workbench" on homepage Alerts=Συναγερμοί Delays=Καθυστερήσεις diff --git a/htdocs/langs/el_GR/agenda.lang b/htdocs/langs/el_GR/agenda.lang index c31604d15da..403ae111939 100644 --- a/htdocs/langs/el_GR/agenda.lang +++ b/htdocs/langs/el_GR/agenda.lang @@ -96,11 +96,11 @@ AddEvent=Δημιουργία συμβάντος MyAvailability=Η διαθεσιμότητα μου ActionType=Τύπος συμβάντος DateActionBegin=Έναρξη ημερομηνίας του συμβάντος -CloneAction=Clone event -ConfirmCloneEvent=Are you sure you want to clone the event %s ? -RepeatEvent=Repeat event -EveryWeek=Every week -EveryMonth=Every month -DayOfMonth=Day of month -DayOfWeek=Day of week -DateStartPlusOne=Date start + 1 hour +CloneAction=Κλωνοποίηση συμβάντος +ConfirmCloneEvent=Θέλεις σίγουρα να κλωνοποιήσεις το συμβάν%τα; +RepeatEvent=Επανάληψη συμβάντος +EveryWeek=Εβδομαδιαίο +EveryMonth=Μηνιαίο +DayOfMonth=Ημέρα του Μήνα +DayOfWeek=Ημέρα της εβδομάδας +DateStartPlusOne=Έναρξη ημέρας + 1 ώρα diff --git a/htdocs/langs/el_GR/banks.lang b/htdocs/langs/el_GR/banks.lang index b1c48eef1b1..f48115f14e1 100644 --- a/htdocs/langs/el_GR/banks.lang +++ b/htdocs/langs/el_GR/banks.lang @@ -94,12 +94,12 @@ Conciliate=Πραγματοποίηση Συναλλαγής Conciliation=Πραγματοποίηση Συναλλαγής ConciliationForAccount=Πραγματοποίηση Συναλλαγών του Λογαριασμού IncludeClosedAccount=Συμπερίληψη Κλειστών Λογαριασμών -OnlyOpenedAccount=Only open accounts +OnlyOpenedAccount=Μόνο ανοικτούς λογαριασμούς AccountToCredit=Πίστωση στον Λογαριασμό AccountToDebit=Χρέωση στον Λογαριασμό DisableConciliation=Απενεργοποίηση της ιδιότητας συμφωνία από αυτό τον λογαριασμό ConciliationDisabled=Η ιδιότητα συμφωνία απενεργοποιήθηκε. -StatusAccountOpened=Open +StatusAccountOpened=Ανοιχτός StatusAccountClosed=Κλειστός AccountIdShort=Αριθμός EditBankRecord=Επεξεργασία Εγγραφής @@ -113,7 +113,7 @@ CustomerInvoicePayment=Πληρωμή Πελάτη CustomerInvoicePaymentBack=Επιστροφή πληρωμής Πελάτη SupplierInvoicePayment=Πληρωμή Προμηθευτή WithdrawalPayment=Ανάκληση πληρωμής -SocialContributionPayment=Social/fiscal tax payment +SocialContributionPayment=Σίγουρα θέλεις να μαρκάρεις αυτότο αξιόγραφο σαν αποριφθέν; FinancialAccountJournal=Ημερολόγιο λογιστικού λογαριασμού BankTransfer=Τραπεζική Μεταφορά BankTransfers=Τραπεζικές Μεταφορές @@ -165,8 +165,8 @@ DeleteARib=Διαγραφή BAN εγγραφή ConfirmDeleteRib=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την εγγραφή BAN; StartDate=Ημερομηνία έναρξης EndDate=Ημερομηνία λήξης -RejectCheck=Check rejection +RejectCheck=Ελέγξτε την απόρριψη ConfirmRejectCheck=Are you sure you want to mark this check as rejected ? -RejectCheckDate=Check rejection date -CheckRejected=Check rejected -CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened +RejectCheckDate=Ελέγξτε την ημερομηνία απόρριψης +CheckRejected=Ελέγξτε την απόρριψη +CheckRejectedAndInvoicesReopened=Ελέγξτε την απόρριψη και ξανάνοιξε τα τιμολόγια diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang index eda7149db72..4d104a6d19c 100644 --- a/htdocs/langs/el_GR/bills.lang +++ b/htdocs/langs/el_GR/bills.lang @@ -330,8 +330,8 @@ PaymentTypeCB=Πιστωτική κάρτα PaymentTypeShortCB=Πιστωτική κάρτα PaymentTypeCHQ=Επιταγή PaymentTypeShortCHQ=Επιταγή -PaymentTypeTIP=Deposit -PaymentTypeShortTIP=Deposit +PaymentTypeTIP=Κατάθεση +PaymentTypeShortTIP=Κατάθεση PaymentTypeVAD=On line πληρωμή PaymentTypeShortVAD=On line πληρωμή PaymentTypeTRA=Τιμολόγηση Πληρωμής diff --git a/htdocs/langs/el_GR/boxes.lang b/htdocs/langs/el_GR/boxes.lang index 43ed62bb5eb..21df0c9816d 100644 --- a/htdocs/langs/el_GR/boxes.lang +++ b/htdocs/langs/el_GR/boxes.lang @@ -19,7 +19,7 @@ BoxLastContracts=Τελευταία συμβόλαια BoxLastContacts=Τελευταίες επαφές/διευθύνσεις BoxLastMembers=Τελευταία μέλη BoxFicheInter=Τελευταίες παρεμβάσεις -BoxCurrentAccounts=Open accounts balance +BoxCurrentAccounts=Άνοιξε το ισοζύγιο των λογαριασμών BoxSalesTurnover=Κύκλος εργασιών BoxTotalUnpaidCustomerBills=Σύνολο απλήρωτων τιμολογίων πελατών BoxTotalUnpaidSuppliersBills=Σύνολο απλήρωτων τιμολογίων προμηθευτών @@ -47,7 +47,7 @@ BoxTitleLastModifiedMembers=Τελευταία %s Μέλη BoxTitleLastFicheInter=Τελευταία %s ενημέρωση παρέμβασης BoxTitleOldestUnpaidCustomerBills=Παλαιότερα %s ανεξόφλητα τιμολόγια πελατών BoxTitleOldestUnpaidSupplierBills=Παλαιότερα %s ανεξόφλητα τιμολόγια προμηθευτών -BoxTitleCurrentAccounts=Open accounts balances +BoxTitleCurrentAccounts=Άνοιξε το ισοζύγια των λογαριασμών BoxTitleSalesTurnover=Κύκλος εργασιών των πωλήσεων BoxTitleTotalUnpaidCustomerBills=Απλήρωτα τιμολόγια πελατών BoxTitleTotalUnpaidSuppliersBills=Απλήρωτα τιμολόγια προμηθευτών @@ -94,4 +94,4 @@ BoxProductDistributionFor=Κατανομή των %s για %s ForCustomersInvoices=Τιμολόγια Πελάτη ForCustomersOrders=Παραγγελίες πελατών ForProposals=Προσφορές -LastXMonthRolling=The last %s month rolling +LastXMonthRolling=Η τελευταία %s κίνηση του μήνα diff --git a/htdocs/langs/el_GR/holiday.lang b/htdocs/langs/el_GR/holiday.lang index 2cfcf5cd27a..b16e6138a93 100644 --- a/htdocs/langs/el_GR/holiday.lang +++ b/htdocs/langs/el_GR/holiday.lang @@ -146,5 +146,5 @@ Permission20003=Διαγραφή των αιτήσεων άδειας Permission20004=Read leave requests for everybody Permission20005=Create/modify leave requests for everybody Permission20006=Admin leave requests (setup and update balance) -NewByMonth=Added per month +NewByMonth=Μηνιαία προσθήκη GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leaves to setup the different types of leaves. diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang index 9e4ecdc9e66..e5c3dc75701 100644 --- a/htdocs/langs/el_GR/main.lang +++ b/htdocs/langs/el_GR/main.lang @@ -108,7 +108,7 @@ Yes=Ναι no=όχι No=Όχι All=Όλα -Alls=All +Alls=Όλα Home=Αρχική Help=Βοήθεια OnlineHelp=Online Βοήθεια @@ -710,7 +710,7 @@ GoIntoSetupToChangeLogo=Πηγαίνετε Αρχική - Ρυθμίσεις - Deny=Άρνηση Denied=Άρνηση ListOfTemplates=Κατάλογος των προτύπων -Gender=Gender +Gender=Φύλο Genderman=Άνδρας Genderwoman=Γυναίκα ViewList=Προβολή λίστας diff --git a/htdocs/langs/el_GR/products.lang b/htdocs/langs/el_GR/products.lang index 3a1fed6e818..08fac0ae401 100644 --- a/htdocs/langs/el_GR/products.lang +++ b/htdocs/langs/el_GR/products.lang @@ -194,13 +194,13 @@ Unit=Unit p=u. set=set se=set -second=second +second=Δευτερόλεπτο s=s hour=hour h=h -day=day +day=Ημέρα d=d -kilogram=kilogram +kilogram=Κιλό kg=Kg gram=gram g=g @@ -208,9 +208,9 @@ meter=meter m=m linearmeter=linear meter lm=lm -squaremeter=square meter +squaremeter=τετραγωνικό μέτρο m2=m² -cubicmeter=cubic meter +cubicmeter=Κυβικό μέτρο m3=m³ liter=liter l=L diff --git a/htdocs/langs/en_AU/admin.lang b/htdocs/langs/en_AU/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/en_AU/admin.lang +++ b/htdocs/langs/en_AU/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/en_AU/banks.lang b/htdocs/langs/en_AU/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/en_AU/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/en_AU/bills.lang b/htdocs/langs/en_AU/bills.lang new file mode 100644 index 00000000000..5e7e6712393 --- /dev/null +++ b/htdocs/langs/en_AU/bills.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTIP=Deposit +PaymentTypeShortTIP=Deposit +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/en_AU/main.lang b/htdocs/langs/en_AU/main.lang index 2e691473326..7c749600705 100644 --- a/htdocs/langs/en_AU/main.lang +++ b/htdocs/langs/en_AU/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p +ShowTransaction=Show transaction diff --git a/htdocs/langs/en_AU/projects.lang b/htdocs/langs/en_AU/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/en_AU/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/en_GB/admin.lang +++ b/htdocs/langs/en_GB/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/en_GB/banks.lang b/htdocs/langs/en_GB/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/en_GB/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/en_GB/bills.lang b/htdocs/langs/en_GB/bills.lang new file mode 100644 index 00000000000..5e7e6712393 --- /dev/null +++ b/htdocs/langs/en_GB/bills.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTIP=Deposit +PaymentTypeShortTIP=Deposit +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/en_GB/main.lang b/htdocs/langs/en_GB/main.lang index 4d59ac2b415..bc25b310968 100644 --- a/htdocs/langs/en_GB/main.lang +++ b/htdocs/langs/en_GB/main.lang @@ -25,3 +25,4 @@ IncludedVAT=Included VAT TTC=Inc. VAT VAT=VAT VATRate=VAT Rate +ShowTransaction=Show transaction diff --git a/htdocs/langs/en_GB/projects.lang b/htdocs/langs/en_GB/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/en_GB/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/en_IN/admin.lang b/htdocs/langs/en_IN/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/en_IN/admin.lang +++ b/htdocs/langs/en_IN/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/en_IN/banks.lang b/htdocs/langs/en_IN/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/en_IN/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/en_IN/bills.lang b/htdocs/langs/en_IN/bills.lang new file mode 100644 index 00000000000..5e7e6712393 --- /dev/null +++ b/htdocs/langs/en_IN/bills.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTIP=Deposit +PaymentTypeShortTIP=Deposit +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/en_IN/main.lang b/htdocs/langs/en_IN/main.lang index 2e691473326..7c749600705 100644 --- a/htdocs/langs/en_IN/main.lang +++ b/htdocs/langs/en_IN/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p +ShowTransaction=Show transaction diff --git a/htdocs/langs/en_IN/projects.lang b/htdocs/langs/en_IN/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/en_IN/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/es_AR/admin.lang b/htdocs/langs/es_AR/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/es_AR/admin.lang +++ b/htdocs/langs/es_AR/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/es_AR/banks.lang b/htdocs/langs/es_AR/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/es_AR/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/es_AR/bills.lang b/htdocs/langs/es_AR/bills.lang new file mode 100644 index 00000000000..54d42abe856 --- /dev/null +++ b/htdocs/langs/es_AR/bills.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/es_AR/holiday.lang b/htdocs/langs/es_AR/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/es_AR/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/es_AR/main.lang b/htdocs/langs/es_AR/main.lang index 2e691473326..7c749600705 100644 --- a/htdocs/langs/es_AR/main.lang +++ b/htdocs/langs/es_AR/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p +ShowTransaction=Show transaction diff --git a/htdocs/langs/es_AR/projects.lang b/htdocs/langs/es_AR/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/es_AR/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/es_BO/admin.lang b/htdocs/langs/es_BO/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/es_BO/admin.lang +++ b/htdocs/langs/es_BO/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/es_BO/banks.lang b/htdocs/langs/es_BO/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/es_BO/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/es_BO/bills.lang b/htdocs/langs/es_BO/bills.lang new file mode 100644 index 00000000000..54d42abe856 --- /dev/null +++ b/htdocs/langs/es_BO/bills.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/es_BO/holiday.lang b/htdocs/langs/es_BO/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/es_BO/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/es_BO/main.lang b/htdocs/langs/es_BO/main.lang index 2e691473326..7c749600705 100644 --- a/htdocs/langs/es_BO/main.lang +++ b/htdocs/langs/es_BO/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p +ShowTransaction=Show transaction diff --git a/htdocs/langs/es_BO/projects.lang b/htdocs/langs/es_BO/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/es_BO/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/es_CL/admin.lang b/htdocs/langs/es_CL/admin.lang index e43afc7fe86..4d8f43ae275 100644 --- a/htdocs/langs/es_CL/admin.lang +++ b/htdocs/langs/es_CL/admin.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir Module20Name=Cotizaciones Module20Desc=Gestión de cotizaciones/propuestas comerciales @@ -11,6 +12,8 @@ Permission25=Enviar las cotizaciones Permission26=Cerrar cotizaciones Permission27=Eliminar cotizaciones Permission28=Exportar las cotizaciones +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) VATIsUsedDesc=El tipo de IVA propuesto por defecto en las creaciones de cotizaciones, facturas, pedidos, etc. Responde a la siguiente regla:
Si el vendedor no está sujeto a IVA, IVA por defecto=0. Final de regla.
Si el país del vendedor= país del comprador entonces IVA por defecto=IVA del producto vendido. Final de regla.
Si vendedor y comprador residen en la Comunidad Europea y el bien vendido= nuevo medio de transportes (auto, barco, avión), IVA por defecto=0 (el IVA debe ser pagado por comprador a la hacienda pública de su país y no al vendedor). Final de regla
Si vendedor y comprador residen en la Comunidad Europea y comprador= particular o empresa sin NIF intracomunitario entonces IVA por defecto=IVA del producto vendido. Final de regla.
Si vendedor y comprador residen en la Comunidad Europea y comprador= empresa con NIF intracomunitario entonces IVA por defecto=0. Final de regla.
Si no, IVA propuesto por defecto=0. Final de regla.
Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerancia de retraso antes de la alerta (en días) sobre cotizaciones a cerrar Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerancia de retraso antes de la alerta (en días) sobre cotizaciones no facturadas diff --git a/htdocs/langs/es_CL/banks.lang b/htdocs/langs/es_CL/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/es_CL/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/es_CL/bills.lang b/htdocs/langs/es_CL/bills.lang index 2199e215bd6..f057eac12b0 100644 --- a/htdocs/langs/es_CL/bills.lang +++ b/htdocs/langs/es_CL/bills.lang @@ -1,2 +1,4 @@ # Dolibarr language file - Source file is en_US - bills RelatedCommercialProposals=Cotizaciones asociadas +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/es_CL/holiday.lang b/htdocs/langs/es_CL/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/es_CL/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/es_CL/main.lang b/htdocs/langs/es_CL/main.lang index dc549dfb838..2b8a01bed3c 100644 --- a/htdocs/langs/es_CL/main.lang +++ b/htdocs/langs/es_CL/main.lang @@ -20,3 +20,4 @@ FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M CommercialProposalsShort=Cotizaciones +ShowTransaction=Show transaction diff --git a/htdocs/langs/es_CL/projects.lang b/htdocs/langs/es_CL/projects.lang index d483e1e5659..fe0ce168fef 100644 --- a/htdocs/langs/es_CL/projects.lang +++ b/htdocs/langs/es_CL/projects.lang @@ -1,2 +1,3 @@ # Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects ListProposalsAssociatedProject=Listado de cotizaciones asociadas al proyecto diff --git a/htdocs/langs/es_CO/admin.lang b/htdocs/langs/es_CO/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/es_CO/admin.lang +++ b/htdocs/langs/es_CO/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/es_CO/banks.lang b/htdocs/langs/es_CO/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/es_CO/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/es_CO/bills.lang b/htdocs/langs/es_CO/bills.lang new file mode 100644 index 00000000000..54d42abe856 --- /dev/null +++ b/htdocs/langs/es_CO/bills.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/es_CO/holiday.lang b/htdocs/langs/es_CO/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/es_CO/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/es_CO/projects.lang b/htdocs/langs/es_CO/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/es_CO/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/es_DO/admin.lang b/htdocs/langs/es_DO/admin.lang index 6e4943b17e7..7a23473cc8c 100644 --- a/htdocs/langs/es_DO/admin.lang +++ b/htdocs/langs/es_DO/admin.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir HideAnyVATInformationOnPDF=Ocultar toda la información relacionada con el ITBIS en la generación de los PDF OldVATRates=Tasa de ITBIS antigua @@ -8,6 +9,8 @@ NewVATRates=Tasa de ITBIS nueva Permission91=Consultar impuestos e ITBIS Permission92=Crear/modificar impuestos e ITBIS Permission93=Eliminar impuestos e ITBIS +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) DictionaryVAT=Tasa de ITBIS (Impuesto sobre ventas en EEUU) VATManagement=Gestión ITBIS VATIsUsedDesc=El tipo de ITBIS propuesto por defecto en las creaciones de presupuestos, facturas, pedidos, etc. Responde a la siguiente regla:
Si el vendedor no está sujeto a ITBIS, ITBIS por defecto=0. Final de regla.
Si el país del vendedor= país del comprador entonces IVA por defecto=IVA del producto vendido. Final de regla.
Si vendedor y comprador residen en la Comunidad Europea y el bien vendido= nuevo medio de transportes (auto, barco, avión), IVA por defecto=0 (el IVA debe ser pagado por comprador a la hacienda pública de su país y no al vendedor). Final de regla
Si vendedor y comprador residen en la Comunidad Europea y comprador= particular o empresa sin NIF intracomunitario entonces IVA por defecto=IVA del producto vendido. Final de regla.
Si vendedor y comprador residen en la Comunidad Europea y comprador= empresa con NIF intracomunitario entonces IVA por defecto=0. Final de regla.
Si no, IVA propuesto por defecto=0. Final de regla.
diff --git a/htdocs/langs/es_DO/banks.lang b/htdocs/langs/es_DO/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/es_DO/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/es_DO/bills.lang b/htdocs/langs/es_DO/bills.lang new file mode 100644 index 00000000000..54d42abe856 --- /dev/null +++ b/htdocs/langs/es_DO/bills.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/es_DO/holiday.lang b/htdocs/langs/es_DO/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/es_DO/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/es_DO/main.lang b/htdocs/langs/es_DO/main.lang index 2e691473326..7c749600705 100644 --- a/htdocs/langs/es_DO/main.lang +++ b/htdocs/langs/es_DO/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p +ShowTransaction=Show transaction diff --git a/htdocs/langs/es_DO/projects.lang b/htdocs/langs/es_DO/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/es_DO/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index 01a7d5eb193..1d8e9b960be 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -63,7 +63,7 @@ ErrorSizeTooLongForVarcharType=Longitud del campo demasiado largo para el tipo c ErrorNoValueForSelectType=Los valores de la lista deben ser indicados ErrorNoValueForCheckBoxType=Los valores de la lista deben ser indicados ErrorNoValueForRadioType=Los valores de la lista deben ser indicados -ErrorBadFormatValueList=Los valores de la lista no peudo contener mas de una coma : %s, pero necessita una: llave,valores +ErrorBadFormatValueList=Los valores de la lista no pueden contener máss de una coma : %s, pero necesitan una llave y un valor ErrorFieldCanNotContainSpecialCharacters=El campo %s no debe contener carácteres especiales ErrorFieldCanNotContainSpecialNorUpperCharacters=El campo %s no debe contener carácteres especiales, ni caracteres en mayúsculas y no puede contener sólo números ErrorNoAccountancyModuleLoaded=Módulo de contabilidad no activado @@ -79,7 +79,7 @@ ErrorModuleRequireJavascript=Javascript no debe estar desactivado para que esta ErrorPasswordsMustMatch=Las 2 contraseñas indicadas deben corresponderse ErrorContactEMail=Se ha producido un error técnico. Contacte con el administrador al e-mail %s, indicando el código de error %s en su mensaje, o puede también adjuntar una copia de pantalla de esta página. ErrorWrongValueForField=Valor incorrecto para el campo número %s (el valor '%s' no cumple con la regla %s) -ErrorFieldValueNotIn=Wrong value for field number %s (value '%s' is not a value available into field %s of table %s) +ErrorFieldValueNotIn=Valor incorrecto del campo número %s (el valor '%s' no es un valor disponible en el campo %s de la tabla %s ) ErrorFieldRefNotIn=Valor incorrecto para el campo número %s (el valor '%s' no es una referencia existente en %s) ErrorsOnXLines=Errores en %s líneas fuente ErrorFileIsInfectedWithAVirus=¡El antivirus no ha podido validar este archivo (es probable que esté infectado por un virus)! diff --git a/htdocs/langs/es_ES/exports.lang b/htdocs/langs/es_ES/exports.lang index 139383ed1dc..3437d683771 100644 --- a/htdocs/langs/es_ES/exports.lang +++ b/htdocs/langs/es_ES/exports.lang @@ -48,7 +48,7 @@ NoImportableData=Sin tablas de datos importables (ningún módulo con las defini FileSuccessfullyBuilt=Archivo de exportación generado SQLUsedForExport=Consulta SQL utilizada para construir el archivo de exportación LineId=ID de línea -LineLabel=Label of line +LineLabel=Etiqueta de línea LineDescription=Descripción de línea LineUnitPrice=Precio unitario de la línea LineVATRate=Tipo de IVA de la línea @@ -90,7 +90,7 @@ SelectAtLeastOneField=Bascular al menos un campo origen en la columna de campos SelectFormat=Seleccione este formato de archivo de importación RunImportFile=Lanzar la importación NowClickToRunTheImport=Compruebe los resultados de la simulación. Si todo está bien, inicie la importación definitiva. -DataLoadedWithId=Todos los datos serán importados con la siguiente id de importación: %s +DataLoadedWithId=Todos los datos serán importados con el siguiente id. de importación: %s ErrorMissingMandatoryValue=Dato obligatorio no indicado en el archivo fuente, campo número %s. TooMuchErrors=Todavía hay %s líneas con error, pero su visualización ha sido limitada. TooMuchWarnings=Todavía hay %s líneas con warnings, pero su visualización ha sido limitada. diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/es_MX/admin.lang +++ b/htdocs/langs/es_MX/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/es_MX/banks.lang b/htdocs/langs/es_MX/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/es_MX/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/es_MX/bills.lang b/htdocs/langs/es_MX/bills.lang new file mode 100644 index 00000000000..54d42abe856 --- /dev/null +++ b/htdocs/langs/es_MX/bills.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/es_MX/holiday.lang b/htdocs/langs/es_MX/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/es_MX/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/es_MX/main.lang b/htdocs/langs/es_MX/main.lang index 2e691473326..7c749600705 100644 --- a/htdocs/langs/es_MX/main.lang +++ b/htdocs/langs/es_MX/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p +ShowTransaction=Show transaction diff --git a/htdocs/langs/es_MX/projects.lang b/htdocs/langs/es_MX/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/es_MX/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/es_PE/admin.lang b/htdocs/langs/es_PE/admin.lang index 75aff423366..0447feea307 100644 --- a/htdocs/langs/es_PE/admin.lang +++ b/htdocs/langs/es_PE/admin.lang @@ -1,10 +1,13 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir Permission91=Consultar impuestos e IGV Permission92=Crear/modificar impuestos e IGV Permission93=Eliminar impuestos e IGV +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) DictionaryVAT=Tasa de IGV (Impuesto sobre ventas en EEUU) VATManagement=Gestión IGV VATIsUsedDesc=El tipo de IGV propuesto por defecto en las creaciones de presupuestos, facturas, pedidos, etc. Responde a la siguiente regla:
Si el vendedor no está sujeto a IVU, IVU por defecto=0. Final de regla.
Si el país del vendedor= país del comprador entonces IVU por defecto=IVU del producto vendido. Final de regla.
Si vendedor y comprador residen en la Comunidad Europea y el bien vendido= nuevo medio de transportes (auto, barco, avión), IVU por defecto=0 (el IVU debe ser pagado por comprador a la hacienda pública de su país y no al vendedor). Final de regla
Si vendedor y comprador residen en la Comunidad Europea y comprador= particular o empresa sin NIF intracomunitario entonces IVU por defecto=IVU del producto vendido. Final de regla.
Si vendedor y comprador residen en la Comunidad Europea y comprador= empresa con NIF intracomunitario entonces IVU por defecto=0. Final de regla.
Si no, IVU propuesto por defecto=0. Final de regla.
diff --git a/htdocs/langs/es_PE/banks.lang b/htdocs/langs/es_PE/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/es_PE/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/es_PE/bills.lang b/htdocs/langs/es_PE/bills.lang index adca33be66b..67ea866f632 100644 --- a/htdocs/langs/es_PE/bills.lang +++ b/htdocs/langs/es_PE/bills.lang @@ -2,6 +2,8 @@ ErrorVATIntraNotConfigured=Número de IGV intracomunitario aún no configurado ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El resto a pagar (%s %s) es un descuento acordado después de la factura. Acepto perder el IGV de este descuento AmountOfBillsByMonthHT=Importe de las facturas por mes (Sin IGV) +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill IntracommunityVATNumber=Número de IGV intracomunitario VATIsNotUsedForInvoice=* IGV no aplicable art-293B del CGI PDFCrabeDescription=Modelo de factura completo (IGV, método de pago a mostrar, logotipo...) diff --git a/htdocs/langs/es_PE/holiday.lang b/htdocs/langs/es_PE/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/es_PE/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/es_PE/main.lang b/htdocs/langs/es_PE/main.lang index 4b1f525d2bd..2731565d16f 100644 --- a/htdocs/langs/es_PE/main.lang +++ b/htdocs/langs/es_PE/main.lang @@ -26,3 +26,4 @@ HT=Sin IGV TTC=IGV incluido VAT=IGV VATRate=Tasa IGV +ShowTransaction=Show transaction diff --git a/htdocs/langs/es_PE/projects.lang b/htdocs/langs/es_PE/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/es_PE/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/es_PY/admin.lang b/htdocs/langs/es_PY/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/es_PY/admin.lang +++ b/htdocs/langs/es_PY/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/es_PY/banks.lang b/htdocs/langs/es_PY/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/es_PY/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/es_PY/bills.lang b/htdocs/langs/es_PY/bills.lang new file mode 100644 index 00000000000..54d42abe856 --- /dev/null +++ b/htdocs/langs/es_PY/bills.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/es_PY/holiday.lang b/htdocs/langs/es_PY/holiday.lang new file mode 100644 index 00000000000..e26f36ab6e1 --- /dev/null +++ b/htdocs/langs/es_PY/holiday.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - holiday +Permission20001=Read you own leave requests +Permission20004=Read leave requests for everybody diff --git a/htdocs/langs/es_PY/main.lang b/htdocs/langs/es_PY/main.lang index 1602d6a7ffa..b34fb283fdf 100644 --- a/htdocs/langs/es_PY/main.lang +++ b/htdocs/langs/es_PY/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M +ShowTransaction=Show transaction diff --git a/htdocs/langs/es_PY/projects.lang b/htdocs/langs/es_PY/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/es_PY/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/et_EE/accountancy.lang b/htdocs/langs/et_EE/accountancy.lang index 77898db3458..d615105182c 100644 --- a/htdocs/langs/et_EE/accountancy.lang +++ b/htdocs/langs/et_EE/accountancy.lang @@ -14,17 +14,17 @@ Chartofaccounts=Kontoplaan Fiscalyear=Majandusaastad Menuaccount=Accounting accounts Menuthirdpartyaccount=Thirdparty accounts -MenuTools=Tools +MenuTools=Tööriistad ConfigAccountingExpert=Configuration of the module accounting expert Journaux=Journals JournalFinancial=Financial journals -Exports=Exports -Export=Export -Modelcsv=Model of export +Exports=Eksportimised +Export=Eksport +Modelcsv=Eksportimise mudel OptionsDeactivatedForThisExportModel=For this export model, options are deactivated -Selectmodelcsv=Select a model of export -Modelcsv_normal=Classic export +Selectmodelcsv=Vali eksportimise mudel +Modelcsv_normal=Tavaline eksportimine Modelcsv_CEGID=Export towards CEGID Expert BackToChartofaccounts=Return chart of accounts Back=Return @@ -45,10 +45,10 @@ Reports=Reports ByCustomerInvoice=By invoices customers ByMonth=By Month NewAccount=New accounting account -Update=Update -List=List -Create=Create -CreateMvts=Create movement +Update=Uuenda +List=Loend +Create=Loo +CreateMvts=Loo liikumine UpdateAccount=Modification of an accounting account UpdateMvts=Modification of a movement WriteBookKeeping=Record accounts in general ledger @@ -58,7 +58,7 @@ AccountBalanceByMonth=Account balance by month AccountingVentilation=Breakdown accounting AccountingVentilationSupplier=Breakdown accounting supplier AccountingVentilationCustomer=Breakdown accounting customer -Line=Line +Line=Rida CAHTF=Total purchase supplier HT InvoiceLines=Lines of invoice to be ventilated @@ -103,15 +103,15 @@ ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold produ ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (if not defined in the service sheet) ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (if not defined in the service sheet) -Doctype=Type of document -Docdate=Date -Docref=Reference -Numerocompte=Account +Doctype=Dokumendi tüüp +Docdate=Kuupäev +Docref=Viide +Numerocompte=Konto Code_tiers=Thirdparty Labelcompte=Label account -Debit=Debit -Credit=Credit -Amount=Amount +Debit=Deebet +Credit=Kreedit +Amount=Summa Sens=Sens Codejournal=Journal diff --git a/htdocs/langs/et_EE/agenda.lang b/htdocs/langs/et_EE/agenda.lang index a4f72409a8b..7fa53d5f550 100644 --- a/htdocs/langs/et_EE/agenda.lang +++ b/htdocs/langs/et_EE/agenda.lang @@ -6,11 +6,11 @@ Agenda=Päevakava Agendas=Päevakavad Calendar=Kalender Calendars=Kalendrid -LocalAgenda=Internal calendar +LocalAgenda=Sisemine kalender ActionsOwnedBy=Event owned by AffectedTo=Mõjutatud isik DoneBy=Teinud isik -Event=Event +Event=Sündmus Events=Tegevused EventsNb=Tegevuste arv MyEvents=Minu tegevused @@ -23,7 +23,7 @@ MenuToDoActions=Kõik lõpetamata tegevused MenuDoneActions=Kõik lõpetatud tegevused MenuToDoMyActions=Minu lõpetamata tegevused MenuDoneMyActions=Minu lõpetatud tegevused -ListOfEvents=List of events (internal calendar) +ListOfEvents=Sündmuste loend (sisemine kalender) ActionsAskedBy=Tegevused, mille sisestas ActionsToDoBy=Tegevused, mis on seotud ActionsDoneBy=Tegevused, mille tegi @@ -88,19 +88,19 @@ ExtSitesNbOfAgenda=Kalendrite arv AgendaExtNb=Kalendreid: %s ExtSiteUrlAgenda=URL .ical failile ligi pääsemiseks ExtSiteNoLabel=Kirjeldus puudub -WorkingTimeRange=Working time range -WorkingDaysRange=Working days range -VisibleTimeRange=Visible time range -VisibleDaysRange=Visible days range -AddEvent=Create event -MyAvailability=My availability -ActionType=Event type -DateActionBegin=Start event date +WorkingTimeRange=Tööaja vahemik +WorkingDaysRange=Tööpäevade vahemik +VisibleTimeRange=Nähtav ajavahemik +VisibleDaysRange=Nähtav päevade vahemik +AddEvent=Loo sündmus +MyAvailability=Minu saadavus +ActionType=Sündmuse tüüp +DateActionBegin=Sündmuse alguse kuupäev CloneAction=Clone event -ConfirmCloneEvent=Are you sure you want to clone the event %s ? -RepeatEvent=Repeat event -EveryWeek=Every week -EveryMonth=Every month -DayOfMonth=Day of month -DayOfWeek=Day of week +ConfirmCloneEvent=Kas oled kindel, et soovid kloonida sündmust %s? +RepeatEvent=Korda sündmust +EveryWeek=Igal nädalal +EveryMonth=Igal kuul +DayOfMonth=Kuu päeval +DayOfWeek=Nädala päeval DateStartPlusOne=Date start + 1 hour diff --git a/htdocs/langs/et_EE/categories.lang b/htdocs/langs/et_EE/categories.lang index 3c4adcca9df..3a36df238a2 100644 --- a/htdocs/langs/et_EE/categories.lang +++ b/htdocs/langs/et_EE/categories.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - categories -Rubrique=Tag/Category -Rubriques=Tags/Categories -categories=tags/categories -TheCategorie=The tag/category +Rubrique=Silt/Kategooria +Rubriques=Sildid/Kategooriad +categories=sildid/kategooriad +TheCategorie=silt/kategooria NoCategoryYet=No tag/category of this type created In=Kategoorias AddIn=Lisa kategooriasse diff --git a/htdocs/langs/et_EE/commercial.lang b/htdocs/langs/et_EE/commercial.lang index d42f15c1d28..b1a32f90de5 100644 --- a/htdocs/langs/et_EE/commercial.lang +++ b/htdocs/langs/et_EE/commercial.lang @@ -7,13 +7,13 @@ Customer=Klient Customers=Kliendid Prospect=Huviline Prospects=Huvilised -DeleteAction=Delete an event -NewAction=New event -AddAction=Create event -AddAnAction=Create an event +DeleteAction=Kustuta sündmus +NewAction=Uus sündmus +AddAction=Loo sündmus +AddAnAction=Loo sündmus AddActionRendezVous=Create a Rendez-vous event Rendez-Vous=Kohtumine -ConfirmDeleteAction=Are you sure you want to delete this event ? +ConfirmDeleteAction=Oled sa kindel, et soovid seda sündmust kustutada? CardAction=Tegevuse kaart PercentDone=Protsentuaalselt valmis ActionOnCompany=Ettevõttega seotud ülesanne @@ -62,7 +62,7 @@ LastProspectContactDone=Võeti ühendust DateActionPlanned=Tegevuse toimumiseks plaanitud kuupäev DateActionDone=Tegevuse toimumise kuupäev ActionAskedBy=Tegevuse pani kirja -ActionAffectedTo=Event assigned to +ActionAffectedTo=Sündmus on seotud isikuga ActionDoneBy=Tegevuse viis läbi ActionUserAsk=Pani kirja ErrorStatusCantBeZeroIfStarted=Kui väli "Toimumise kuupäev" on täidetud, siis on tegevus alustatud (või lõpetatud), seega ei saa välja "Status" väärtuseks olla 0%. @@ -71,7 +71,7 @@ ActionAC_FAX=Saada faks ActionAC_PROP=Saada pakkumine e-postiga ActionAC_EMAIL=Saada e-kiri ActionAC_RDV=Koosolekud -ActionAC_INT=Intervention on site +ActionAC_INT=Sekkumine koha peal ActionAC_FAC=Saada kliendi arve posti teel ActionAC_REL=Saada kliendi arve posti teel (meeldetuletus) ActionAC_CLO=Sulge @@ -94,4 +94,4 @@ StatusProsp=Huviliste staatus DraftPropals=Mustandi staatuses olevad pakkumised SearchPropal=Otsi pakkumist CommercialDashboard=Äritegevuse kokkuvõte -NoLimit=No limit +NoLimit=Piirangut pole diff --git a/htdocs/langs/et_EE/companies.lang b/htdocs/langs/et_EE/companies.lang index 0fe3a755493..b32278a3e39 100644 --- a/htdocs/langs/et_EE/companies.lang +++ b/htdocs/langs/et_EE/companies.lang @@ -30,8 +30,8 @@ ThirdPartyContact=Kolmanda isiku kontakt/aadress StatusContactValidated=Kontakti/aadressi staatus Company=Ettevõte CompanyName=Ettevõtte nimi -AliasNames=Alias name (commercial, trademark, ...) -AliasNameShort=Alias name +AliasNames=Hüüdnimi (ärinimi, kaubamärk, ...) +AliasNameShort=Hüüdnimi Companies=Ettevõtted CountryIsInEEC=Riik on Euroopa Majandusühenduse liige ThirdPartyName=Kolmanda isiku nimi @@ -69,7 +69,7 @@ Country=Riik CountryCode=Riigi kood CountryId=Riigi ID Phone=Telefon -PhoneShort=Phone +PhoneShort=Telefon Skype=Skype Call=Helista Chat=Vestle diff --git a/htdocs/langs/et_EE/contracts.lang b/htdocs/langs/et_EE/contracts.lang index c4df388b8d3..9be14e9d4d5 100644 --- a/htdocs/langs/et_EE/contracts.lang +++ b/htdocs/langs/et_EE/contracts.lang @@ -21,8 +21,8 @@ ServicesLegend=Teenuste legend Contracts=Lepingud ContractsAndLine=Contracts and line of contracts Contract=Leping -ContractLine=Contract line -Closing=Closing +ContractLine=Lepingu rida +Closing=Sulgemine NoContracts=Lepinguid pole MenuServices=Teenused MenuInactiveServices=Teenused ei ole aktiivsed @@ -30,7 +30,7 @@ MenuRunningServices=Aktiivsed teenused MenuExpiredServices=Aegunud teenused MenuClosedServices=Suletud teenused NewContract=Uus leping -AddContract=Create contract +AddContract=Loo leping SearchAContract=Otsi lepingut DeleteAContract=Kustuta leping CloseAContract=Sulge leping @@ -56,7 +56,7 @@ ListOfRunningContractsLines=Aktiivsete lepinguridade nimekiri ListOfRunningServices=Aktiivsete teenuste nimekiri NotActivatedServices=Mitteaktiivsed teenused (kinnitatud lepingutel) BoardNotActivatedServices=Teenused, mida aktiveerida kinnitatud lepingutel -LastContracts=Last %s contracts +LastContracts=Viimased %s lepingut LastActivatedServices=Viimased %s aktiveeritud teenust LastModifiedServices=Viimased %s muudetud teenust EditServiceLine=Muuda teenuse rida @@ -92,7 +92,7 @@ ListOfServicesToExpireWithDuration=%s päeva pärast aeguvate teenuste nimekiri ListOfServicesToExpireWithDurationNeg=Teenuste nimekiri, mis aegusid rohkem kui %s päeva tagasi ListOfServicesToExpire=Aeguvate teenuste nimekiri NoteListOfYourExpiredServices=See nimekiri sisaldab vaid nende lepingute teenuseid, millega seotud kolmandate isikute kohta oled märgitud müügiesindajaks -StandardContractsTemplate=Standard contracts template +StandardContractsTemplate=Tavapärane lepingu mall ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. diff --git a/htdocs/langs/fr_BE/admin.lang b/htdocs/langs/fr_BE/admin.lang index a7b7f36bd74..0d4d9d37044 100644 --- a/htdocs/langs/fr_BE/admin.lang +++ b/htdocs/langs/fr_BE/admin.lang @@ -26,4 +26,7 @@ IfModuleEnabled=Note: oui ne fonctionne que si le module %s est activé RemoveLock=Supprimez le fichier %s s'il existe pour autoriser l'utilisation de l'outil de mise à jour. AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/fr_BE/banks.lang b/htdocs/langs/fr_BE/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/fr_BE/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/fr_BE/bills.lang b/htdocs/langs/fr_BE/bills.lang index 99e5ff177f3..548652db22d 100644 --- a/htdocs/langs/fr_BE/bills.lang +++ b/htdocs/langs/fr_BE/bills.lang @@ -60,5 +60,9 @@ PaymentTypeLIQ=En espèces PaymentTypeShortLIQ=En espèces PaymentTypeCB=Carte de crédit PaymentTypeShortCB=Carte de crédit +PaymentTypeTIP=Deposit +PaymentTypeShortTIP=Deposit +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill CreditNoteConvertedIntoDiscount=Ce crédit ou acompte a été converti en %s TerreNumRefModelDesc1=Renvoie le numéro sous la forme %syymm-nnnn pour les factures et %syymm-nnnn pour les notes de crédits où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0 diff --git a/htdocs/langs/fr_BE/main.lang b/htdocs/langs/fr_BE/main.lang index a3a5442d2cd..5ae7a927215 100644 --- a/htdocs/langs/fr_BE/main.lang +++ b/htdocs/langs/fr_BE/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M +ShowTransaction=Show transaction diff --git a/htdocs/langs/fr_BE/projects.lang b/htdocs/langs/fr_BE/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/fr_BE/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/fr_CA/projects.lang b/htdocs/langs/fr_CA/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/fr_CA/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/fr_CH/admin.lang b/htdocs/langs/fr_CH/admin.lang index 1c53b65c99c..b269ff29dee 100644 --- a/htdocs/langs/fr_CH/admin.lang +++ b/htdocs/langs/fr_CH/admin.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - admin AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt. ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Permission171=Read trips and expenses (own and his subordinates) +Permission771=Read expense reports (own and his subordinates) diff --git a/htdocs/langs/fr_CH/banks.lang b/htdocs/langs/fr_CH/banks.lang new file mode 100644 index 00000000000..176f509ef4b --- /dev/null +++ b/htdocs/langs/fr_CH/banks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - banks +RejectCheck=Check rejection +RejectCheckDate=Check rejection date +CheckRejected=Check rejected +CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened diff --git a/htdocs/langs/fr_CH/bills.lang b/htdocs/langs/fr_CH/bills.lang new file mode 100644 index 00000000000..5e7e6712393 --- /dev/null +++ b/htdocs/langs/fr_CH/bills.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - bills +PaymentTypeTIP=Deposit +PaymentTypeShortTIP=Deposit +PaymentTypeTRA=Bill payment +PaymentTypeShortTRA=Bill diff --git a/htdocs/langs/fr_CH/main.lang b/htdocs/langs/fr_CH/main.lang index 2e691473326..7c749600705 100644 --- a/htdocs/langs/fr_CH/main.lang +++ b/htdocs/langs/fr_CH/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p +ShowTransaction=Show transaction diff --git a/htdocs/langs/fr_CH/projects.lang b/htdocs/langs/fr_CH/projects.lang new file mode 100644 index 00000000000..a1c900aeb6b --- /dev/null +++ b/htdocs/langs/fr_CH/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index c5de9974ed5..7b9bb5540b0 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -330,8 +330,8 @@ PaymentTypeCB=Carte bancaire PaymentTypeShortCB=Carte bancaire PaymentTypeCHQ=Chèque PaymentTypeShortCHQ=Chèque -PaymentTypeTIP=Deposit -PaymentTypeShortTIP=Deposit +PaymentTypeTIP=Acompte +PaymentTypeShortTIP=Acompte PaymentTypeVAD=Paiement en ligne PaymentTypeShortVAD=Paiement en ligne PaymentTypeTRA=Paiement par traite diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index 6ec61432810..5483bfafe03 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -63,7 +63,7 @@ MenuSpecialExpenses=Dépenses spéciales MenuTaxAndDividends=Taxes et charges MenuSalaries=Salaires MenuSocialContributions=Charges fiscales/sociales -MenuNewSocialContribution=New social/fiscal tax +MenuNewSocialContribution=Nouvelle taxe sociale NewSocialContribution=Nouvelle charge fiscale/sociale ContributionsToPay=Charges fiscales/sociales à payer AccountancyTreasuryArea=Espace comptabilité/trésorerie @@ -198,7 +198,7 @@ CalculationRuleDescSupplier=Selon le fournisseur, choisissez le mode approprié TurnoverPerProductInCommitmentAccountingNotRelevant=Le chiffre d'affaires par produit, dans une comptabilité en mode comptabilité de caisse n'est pas définissable. Ce rapport n'est disponible qu'en mode de comptabilité dit comptabilité d'engagement (voir la configuration du module de comptabilité). CalculationMode=Mode de calcul AccountancyJournal=Code journal comptabilité -ACCOUNTING_VAT_SOLD_ACCOUNT=Code comptable par défaut pour la TVA encaissé +ACCOUNTING_VAT_SOLD_ACCOUNT=Code comptable par défaut pour la collecte de TVA ACCOUNTING_VAT_BUY_ACCOUNT=Code comptable par défaut pour l'encaissement de TVA ACCOUNTING_VAT_PAY_ACCOUNT=Code comptable par défaut pour le paiement de la TVA ACCOUNTING_ACCOUNT_CUSTOMER=Code comptable par défaut des tiers clients diff --git a/htdocs/langs/hu_HU/bookmarks.lang b/htdocs/langs/hu_HU/bookmarks.lang index b03dcc026ff..415ba7cd01a 100644 --- a/htdocs/langs/hu_HU/bookmarks.lang +++ b/htdocs/langs/hu_HU/bookmarks.lang @@ -3,17 +3,17 @@ AddThisPageToBookmarks=Az oldal könyvjelzőkhöz adása Bookmark=Könyvjelző Bookmarks=Könyvjelzők NewBookmark=Új könyvjelző -ShowBookmark=Mutasd Könyvjelző +ShowBookmark=Könyvjelző mutatása OpenANewWindow=Nyisson meg egy új ablakban -ReplaceWindow=Cserélje aktuális ablak +ReplaceWindow=Cserélje az aktuális ablakot BookmarkTargetNewWindowShort=Új ablak BookmarkTargetReplaceWindowShort=Aktuális ablak -BookmarkTitle=Könyvjelzõnévbõl -UrlOrLink=URL -BehaviourOnClick=Viselkedés, ha egy URL-t kattintott -CreateBookmark=Könyvjelző -SetHereATitleForLink=Állítsa be a címet a könyvjelző -UseAnExternalHttpLinkOrRelativeDolibarrLink=Egy külső http URL-t vagy relatív URL Dolibarr -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Válassza ki, egy oldalon nyitott a kapcsolatot fel kell tüntetni a jelenlegi, vagy új ablakban +BookmarkTitle=Könyvjelzõ név +UrlOrLink=URL elérési út +BehaviourOnClick=Viselkedés, ha egy URL elérési útra kattintott +CreateBookmark=Könyvjelző lértehozása +SetHereATitleForLink=Állítsa be a címet a könyvjelzőhöz +UseAnExternalHttpLinkOrRelativeDolibarrLink=Használjon egy külső http URL-t vagy relatív URL Dolibarr +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Válassza ki, hogy a megnyitni kívánt oldal egy új oldalon vagy a jelenlegin jelenjen meg BookmarksManagement=Könyvjelzők kezelése ListOfBookmarks=Könyvjelzők listája diff --git a/htdocs/langs/it_IT/cron.lang b/htdocs/langs/it_IT/cron.lang index c158d62ff93..4be3199634f 100644 --- a/htdocs/langs/it_IT/cron.lang +++ b/htdocs/langs/it_IT/cron.lang @@ -4,10 +4,10 @@ About = Info CronAbout = Info su Cron CronAboutPage = Pagina informativa su Cron # Right -Permission23101 = Read Scheduled job -Permission23102 = Create/update Scheduled job -Permission23103 = Delete Scheduled job -Permission23104 = Execute Scheduled job +Permission23101 = Leggi processo pianificato +Permission23102 = Crea / Aggiornamento processo pianificato +Permission23103 = Elimina processo pianificato +Permission23104 = Esegui processo pianificato # Admin CronSetup= Impostazione delle azioni pianificate URLToLaunchCronJobs=URL che lancia i job di cron @@ -26,11 +26,11 @@ CronLastOutput=Output dell'ultimo avvio CronLastResult=Codice del risultato dell'ultima esecuzione CronListOfCronJobs=Lista dei job programmati CronCommand=Comando -CronList=Scheduled jobs +CronList=Processi pianificati CronDelete=Cancella i job programmati -CronConfirmDelete=Are you sure you want to delete these scheduled jobs ? +CronConfirmDelete=Sei sicuro di voler cancellare questi processi pianificati? CronExecute=Lanca i job programmati -CronConfirmExecute=Are you sure you want to execute these scheduled jobs now ? +CronConfirmExecute=Sei sicuro di voler eseguire questi processi pianificati ora? CronInfo=Il modulo per i job programmati permette di eseguire operazioni definite in anticipoi CronWaitingJobs=Job in attesa CronTask=Azione @@ -39,8 +39,8 @@ CronDtStart=Data di inizio CronDtEnd=Data di fine CronDtNextLaunch=Prossima esecuzione CronDtLastLaunch=Ultima esecuzione -CronFrequency=Frequency -CronClass=Class +CronFrequency=Frequenza +CronClass=Classe CronMethod=Metodo CronModule=Modulo CronAction=Azione @@ -55,8 +55,8 @@ CronEach=Ogni JobFinished=Azione eseguita e completata #Page card CronAdd= Aggiungi job -CronHourStart= Start hour and date of job -CronEvery=Execute job each +CronHourStart= Data e ora di inizio di lavoro +CronEvery=Esegui ogni lavoro CronObject=Istanza/Oggetto da creare CronArgs=Parametri CronSaveSucess=Salvato con successo @@ -76,14 +76,14 @@ CronMethodHelp=Nome del metodo dell'oggetto da eseguire.
Per esempio per ott CronArgsHelp=Argomenti del metodo.
Per esempio per ottenere il metodo corretto dell'oggetto /htdocs/product/class/product.class.php, il valore dei parametri può essere 0, ProductRef CronCommandHelp=Il comando da eseguire sul sistema CronCreateJob=Crea nuovo job programmato -CronFrom=From +CronFrom=Da # Info CronInfoPage=Informazioni # Common -CronType=Job type +CronType=Tipo di lavoro CronType_method=Metodo di chiamata di una classe Dolibarr CronType_command=Comando da shell CronMenu=Cron CronCannotLoadClass=Non posso caricare la classe %s o l'oggetto %s UseMenuModuleToolsToAddCronJobs=Andare nel menu "Home - Modules tools - Job list" per vedere e modificare le azioni pianificate. -TaskDisabled=Job disabled +TaskDisabled=Lavoro disabilitato diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index 7d024fc8e31..c0b06fbdbbb 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/admin.lang @@ -2,7 +2,7 @@ Foundation=Organizācija Version=Versija VersionProgram=Programmas versija -VersionLastInstall=Sākotnējā instalētā versija +VersionLastInstall=Sākotnēji instalētā versija VersionLastUpgrade=Pēdējo reizi versija atjaunijnāta VersionExperimental=Eksperimentāls VersionDevelopment=Attīstība @@ -259,24 +259,24 @@ CurrentSmartphoneMenuHandler=Pašreizējā viedtālrunis izvēlne kopējs MeasuringUnit=Mērvienības Emails=E-pasti EMailsSetup=E-pastu iestatīšana -EMailsDesc=Šī lapa ļauj pārrakstīt savu PHP parametrus par e-pastiem sūtīšanu. Vairumā gadījumu par Unix / Linux OS, jūsu PHP uzstādīšana ir pareiza, un šie parametri ir bezjēdzīgi. -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS Port (Pēc noklusējuma php.ini: %s) +EMailsDesc=Šī lapa ļauj pārrakstīt jūsu PHP parametrus par e-pastu sūtīšanu. Vairumā gadījumu Unix / Linux OS, jūsu PHP uzstādījumi ir pareizi, un šie parametri ir bezjēdzīgi. +MAIN_MAIL_SMTP_PORT=SMTP / SMTPS Ports (Pēc noklusējuma php.ini: %s) MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (Pēc noklusējuma php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS Port (Nav noteikts uz PHP uz Unix, piemēram, sistēmas) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (Nav noteikts uz PHP uz Unix, piemēram, sistēmas) -MAIN_MAIL_EMAIL_FROM=Sūtītāja e-pasta automātisko e-pastu (Pēc noklusējuma php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sūtītāja e-pasta izmantotas kļūdu atgriešanās e-pastu nosūtīts -MAIN_MAIL_AUTOCOPY_TO= Nosūtīt sistemātiski slēptu oglekļa-kopiju visu nosūtīto e-pastus +MAIN_MAIL_EMAIL_FROM=Sūtītāja e-pasts automātiskajiem e-pastiem (Pēc noklusējuma php.ini: %s) +MAIN_MAIL_ERRORS_TO=Sūtītāja izmantotais e-pasts kļūdu paziņojumu atgriešanai par nenosūtītajiem e-pastiem +MAIN_MAIL_AUTOCOPY_TO= Nosūtīt sistemātiski visu nosūtīto e-pastu slēptu kopiju uz MAIN_MAIL_AUTOCOPY_PROPOSAL_TO= Send systematically a hidden carbon-copy of proposals sent by email to MAIN_MAIL_AUTOCOPY_ORDER_TO= Send systematically a hidden carbon-copy of orders sent by email to MAIN_MAIL_AUTOCOPY_INVOICE_TO= Send systematically a hidden carbon-copy of invoice sent by emails to -MAIN_DISABLE_ALL_MAILS=Atspējot visus e-pastus sendings (izmēģinājuma nolūkā vai demos) +MAIN_DISABLE_ALL_MAILS=Atspējot visus e-pastu sūtīšanu (izmēģinājuma nolūkā vai demo izveidošanai) MAIN_MAIL_SENDMODE=Metode ko izmantot sūtot e-pastus MAIN_MAIL_SMTPS_ID=SMTP ID ja autentificēšana nepieciešama MAIN_MAIL_SMTPS_PW=SMTP parole ja autentificēšanās nepieciešama MAIN_MAIL_EMAIL_TLS= Izmantot TLS (SSL) šifrēšanu -MAIN_DISABLE_ALL_SMS=Atslēgt visas SMS sendings (izmēģinājuma nolūkā vai demos) -MAIN_SMS_SENDMODE=Izmantojamā metode, lai sūtītu SMS +MAIN_DISABLE_ALL_SMS=Atslēgt visas SMS sūtīšanas (izmēģinājuma nolūkā vai demo) +MAIN_SMS_SENDMODE=Izmantojamā metode SMS sūtīšanai MAIN_MAIL_SMS_FROM=Noklusētais sūtītāja tālruņa numurs SMS sūtīšanai FeatureNotAvailableOnLinux=Iezīme nav pieejams Unix, piemēram, sistēmas. Pārbaudi savu sendmail programmai vietas. SubmitTranslation=Ja tulkojums šajā valodā nav pilnīga vai jums atrast kļūdas, jūs varat labot šo, rediģējot failus direktorijā langs / %s un iesniedz modificēto failus www.dolibarr.org forumā. @@ -295,13 +295,13 @@ ModuleFamilyECM=Elektroniskais Satura Vadība (ESV) MenuHandlers=Izvēlnes manipulatori MenuAdmin=Izvēlnes redaktors DoNotUseInProduction=Neizmantot produkcijā -ThisIsProcessToFollow=Tas ir setup, lai process: +ThisIsProcessToFollow=Šie ir soļi, kas jāipilda: ThisIsAlternativeProcessToFollow=This is an alternative setup to process: StepNb=Solis %s -FindPackageFromWebSite=Atrast paketi, kas nodrošina iespēju, jūs vēlaties (piemēram, par oficiālo tīmekļa vietnes %s). +FindPackageFromWebSite=Atrast paku, kas nodrošina iespēju, kura jums ir nepieciešama (piemēram oficiālajā tīmekļa vietnē %s). DownloadPackageFromWebSite=Lejupielādēt arhīvu (piem. no oficialās mājas lapas %s). -UnpackPackageInDolibarrRoot=Unpack package file into Dolibarr server directory dedicated to external modules: %s -SetupIsReadyForUse=Instalēšana ir pabeigta, un Dolibarr ir gatavs lietošanai ar šo jauno komponentu. +UnpackPackageInDolibarrRoot=Atarhivēt paku Dolibarr servera direktorijā, kas paredzēta ārējiem moduļiem: %s +SetupIsReadyForUse=Instalēšana ir pabeigta un Dolibarr ir gatavs lietošanai ar šo jauno komponentu. NotExistsDirect=Alternatīva saknes direktorijs nav definēta.
InfDirAlt=Kopš 3 versijas, ir iespējams noteikt alternatīvu sakne directory.Tas ļauj jums saglabāt, tajā pašā vietā, papildinājumus un pielāgotas veidnes.
Jums tikai jāizveido direktoriju Dolibarr saknē (piemēram: custom).
InfDirExample=
Tad paziņo to failu conf.php
$ Dolibarr_main_url_root_alt = 'http://myserver/custom'
$ Dolibarr_main_document_root_alt = '/ ceļš / uz / dolibarr / htdocs / custom'
* Šīs līnijas ir komentēja ar "#", lai uncomment tikai noņemt raksturs. @@ -353,12 +353,12 @@ ThemeDir=Izskata katalogs ConnectionTimeout=Savienojuma taimauts ResponseTimeout=Atbildes taimauts SmsTestMessage=Testa ziņojums no __ PHONEFROM__ to __ PHONETO__ -ModuleMustBeEnabledFirst=Moduļu %s ir jābūt aktivizētam pirmais, pirms izmantojot šo funkciju. +ModuleMustBeEnabledFirst=Modulim %s ir jābūt aktivizētam pirmajam, pirms izmantot šo funkciju. SecurityToken=Atslēga uz drošu saiti -NoSmsEngine=Nav SMS sūtītājs vadītājs pieejama. SMS sūtītājs vadītājs nav uzstādītas ar noklusējuma izplatīšanu (jo tie ir atkarīga no ārēja piegādātāja), bet jūs varat atrast dažas no %s +NoSmsEngine=Nav SMS sūtītšanas iespēja pieejama. SMS sūtīšanas iespēja nav uzstādītas ar noklusējuma instalāciju (tāpēc, ka tas ir atkarīgs no ārēja piegādātāja), bet jūs varat atrast dažas sms sūtīšanas iespējas %s PDF=PDF PDFDesc=Jūs varat iestatīt katru pasaules iespējas, kas saistītas ar PDF paaudzes -PDFAddressForging=Noteikumi veidot adresi kastes +PDFAddressForging=Noteikumi veidojot adreses lauku HideAnyVATInformationOnPDF=Paslēpt visu informāciju, kas saistīta ar PVN, izveidotajā PDF HideDescOnPDF=Slēpt produktu aprakstu radītos PDF HideRefOnPDF=Slēpt produktu ref. izveidotajos PDF @@ -449,7 +449,7 @@ Module52Name=Krājumi Module52Desc=Krājumu pārvaldīšana (produkti) Module53Name=Pakalpojumi Module53Desc=Pakalpojumu vadība -Module54Name=Contracts/Subscriptions +Module54Name=Līgumi/Subscriptions Module54Desc=Management of contracts (services or reccuring subscriptions) Module55Name=Svītrkodi Module55Desc=Svītrkodu vadība @@ -487,7 +487,7 @@ Module320Name=RSS barotne Module320Desc=Pievienot RSS plūsmu Dolibarr lapās Module330Name=Grāmatzīmes Module330Desc=Grāmatzīmju pārvaldība -Module400Name=Projects/Opportunities/Leads +Module400Name=Projekti/Iespējas/Leads Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. Module410Name=Vebkalendārs Module410Desc=Web kalendāra integrācija @@ -630,11 +630,11 @@ Permission151=Lasīt pastāvīgos pieprasījumus Permission152=Izveidot / mainīt pastāvīgu pasūtījumu pieprasījumu Permission153=Transmisijas regulārā maksājuma rīkojumu ieņēmumi Permission154=Kredītkartes / atteikties regulārā maksājuma rīkojumu ieņēmumiem -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions +Permission161=Apskatīt līgumus/subscriptions +Permission162=Izveidot/labot līgumus/subscriptions Permission163=Activate a service/subscription of a contract Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions +Permission165=Dzēst līgumus/subscriptions Permission171=Read trips and expenses (own and his subordinates) Permission172=Izveidot/labot ceļojumu un izdevumus Permission173=Dzēst ceļojumus un izdevumus @@ -793,7 +793,7 @@ Permission59001=Read commercial margins Permission59002=Define commercial margins Permission59003=Read every user margin DictionaryCompanyType=Thirdparties type -DictionaryCompanyJuridicalType=Juridical kinds of thirdparties +DictionaryCompanyJuridicalType=Juridiskais veids trešajām personām DictionaryProspectLevel=Prospect potential level DictionaryCanton=State/Cantons DictionaryRegion=Reģions @@ -802,11 +802,11 @@ DictionaryCurrency=Valūtas DictionaryCivility=Civility title DictionaryActions=Type of agenda events DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates +DictionaryVAT=PVN likmes vai pārdošanas procentu likmes DictionaryRevenueStamp=Amount of revenue stamps DictionaryPaymentConditions=Apmaksas noteikumi DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types +DictionaryTypeContact=Kontaktu/Adrešu veidi DictionaryEcotaxe=Ecotax (WEEE) DictionaryPaperFormat=Papīra formāts DictionaryFees=Type of fees @@ -873,7 +873,7 @@ AlwaysActive=Vienmēr aktīvs UpdateRequired=Jūsu sistēma ir jāatjaunina. Lai to izdarītu, noklikšķiniet uz Update tagad . Upgrade=Atjaunināt MenuUpgrade=Atjaunināt / Paplašināt -AddExtensionThemeModuleOrOther=Pievienot paplašinājumu (tēma, modulis, ...) +AddExtensionThemeModuleOrOther=Pievienot paplašinājumus (tēma, modulis, ...) WebServer=Tīmekļa serveris DocumentRootServer=Web servera saknes direktorija DataRootServer=Datu failu direktorija @@ -906,7 +906,7 @@ ConstraintsType=Ierobežojumi veids ConstraintsToShowOrNotEntry=Ierobežojums, lai parādītu vai izvēlnes ierakstu AllMustBeOk=Visi šie jāpārbauda Host=Serveris -DriverType=Driver tips +DriverType=Draivera veids SummarySystem=Sistēmas informācijas kopsavilkums SummaryConst=Sarakstu ar visiem Dolibarr uzstādīšanas parametriem SystemUpdate=Sistēmas atjaunināšana @@ -979,7 +979,7 @@ Audit=Audits InfoDolibarr=Dolibarr info InfoBrowser=Pārlūkprogrammas info InfoOS=OS informācija -InfoWebServer=Infos tīmekļa serveris +InfoWebServer=Tīmekļa servera info InfoDatabase=Datubāzes informācija InfoPHP=PHP Informācija InfoPerf=Infos izrādes @@ -1005,8 +1005,8 @@ TriggerDisabledAsModuleDisabled=Trigeri Šajā failā ir invalīdi, kā modulis TriggerAlwaysActive=Trigeri Šajā failā ir aktīva vienmēr, neatkarīgi ir aktivizēts Dolibarr moduļiem. TriggerActiveAsModuleActive=Trigeri Šajā failā ir aktīvs kā modulis %s ir iespējots. GeneratedPasswordDesc=Noteikt šeit, kas noteikums jūs vēlaties izmantot, lai radītu jaunu paroli, ja jūs lūgt, lai ir auto radīto paroli -DictionaryDesc=Define here all reference datas. You can complete predefined value with yours. -ConstDesc=Šī lapa ļauj jums rediģēt visus citus parametrus, kas nav pieejamas iepriekšējās lapās. Tie ir rezervētas parametrus pieredzējušiem izstrādātājiem vai troubleshouting. +DictionaryDesc=Definēt šeit visus atsauces datus. Jūs varat papildināt definētās vērtību ar jūsējām. +ConstDesc=Šī lapa ļauj jums rediģēt visus citus parametrus, kas nav pieejami iepriekšējās lapās. Šie parametri ir rezervētu pieredzējušiem izstrādātājiem vai problēmu risināšanai. OnceSetupFinishedCreateUsers=Uzmanību, jums ir Dolibarr administrators lietotājs. Administratora lietotāji izmanto, lai setup Dolibarr. Par parasto izmantošanu Dolibarr, ieteicams izmantot bez administratora lietotājam izveidota no lietotājiem un grupas ēdienkarti. MiscellaneousDesc=Definēt šeit visus citus parametrus, kas saistīti ar drošību. LimitsSetup=Ierobežojumi / Precision iestatīšanas @@ -1019,7 +1019,7 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d UnitPriceOfProduct=Neto vienības produkta cena TotalPriceAfterRounding=Kopējā cena (neto/pvn/ar nodokli) pēc noapaļošanas ParameterActiveForNextInputOnly=Parametrs stājas spēkā no nākamās ievades -NoEventOrNoAuditSetup=Nav drošības pasākums ir ierakstīta vēl. Tas var būt normāls, ja audits nav iespējots uz "Setup - drošība - revīzijas" lapā. +NoEventOrNoAuditSetup=Nav drošības pasākumi ierakstīti vēl. Tas var būt normāli, ja audits nav iespējots "Iestatījumi - drošība - audtits" lapā. NoEventFoundWithCriteria=Nav drošības pasākums ir atzīts par šādiem meklēšanas kritērijiem ir. SeeLocalSendMailSetup=Skatiet sendmail iestatījumus BackupDesc=Lai izveidotu pilnu Dolibarr rezerves kopiju jums ir: @@ -1029,8 +1029,8 @@ BackupDescX=Arhivēto katalogs jāglabā drošā vietā. BackupDescY=Radītais dump fails jāglabā drošā vietā. BackupPHPWarning=Rezerves nevar būt guaranted ar šo metodi. Dod iepriekšējo RestoreDesc=Lai atjaunotu Dolibarr rezeves kopiju jums ir: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. +RestoreDesc2=Atjaunot dokumentu direktorijas arhīva failu (piemēram zip fails), lai iegūtu failu struktūru jaunās Dolibarr instalācijas vai pašreizējā dokumentu direktorijā (%s). +RestoreDesc3=Atjaunot datus no rezerves kopijas faila, datu bāzē jaunā Dolibarr instalācijā vai datu bāzē pašreizējajai instalācijai (%s). Brīdinājums, kad atjaunošana ir pabeigta, jums ir jāizmanto lietotāja vārds / parole, kas bija tad, kad tika veikta rezerves kopija, lai pieslēgtos atkal. Lai atjaunotu rezerves kopiju datubāzei esošajā instalācijā, jūs varat sekot šim palīgam. RestoreMySQL=MySQL imports ForcedToByAModule= Šis noteikums ir spiests %s ar aktivēto modulis PreviousDumpFiles=Pieejamās datu bāzes rezerves kopijas faili @@ -1078,7 +1078,7 @@ PathToDocuments=Ceļš līdz dokumentiem PathDirectory=Katalogs SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. TranslationSetup=Tulkojumu konfigurēšana -TranslationDesc=Valodu izvēle redzams uz ekrāna var mainīt:
* Globāli no izvēlnes Home - Setup - Displejs
* Lietotāju tikai no tab lietotāja displeja lietotāja kartes (uzklikšķiniet uz pieteikšanās uz augšu ekrāna). +TranslationDesc=Valodu izvēli redzamu uz ekrāna var mainīt:
* Globāli no izvēlnes Mājās - Iestatījumi - Attēlojums
* Lietotājam tikai no sadaļas lietotāja attēlošanas iestatīšana lietotāja kartiņā (uzklikšķiniet uz pieteikšanās vārda lapas augšpusē). TotalNumberOfActivatedModules=Aktivēto moduļu kopskaits: %s YouMustEnableOneModule=Jums ir jābūt ieslēgtam vismaz 1 modulim ClassNotFoundIntoPathWarning=Klase %s nav atrasta PHP norādītajā ceļā @@ -1215,7 +1215,7 @@ FicheinterNumberingModules=Intervences numerācijas modeļi TemplatePDFInterventions=Intervences karšu dokumenti modeļi WatermarkOnDraftInterventionCards=Ūdenszīme intervences karšu dokumentiem (neviena ja tukšs) ##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup +ContractsSetup=Līgumu/Subscriptions moduļa iestatīšana ContractsNumberingModules=Līgumi numerācijas moduļus TemplatePDFContracts=Contracts documents models FreeLegalTextOnContracts=Free text on contracts @@ -1645,10 +1645,10 @@ ConfFileMuseContainCustom=Installing an external module from application save th HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over PressF5AfterChangingThis=Press F5 on keyboard after changing this value to have it effective NotSupportedByAllThemes=Will works with eldy theme but is not supported by all themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for table title line +BackgroundColor=Fona krāsa +TopMenuBackgroundColor=Fona krāsa augšējai izvēlnei +LeftMenuBackgroundColor=Fona krāsa kreisajai izvēlnei +BackgroundTableTitleColor=Fona krāsa tabulas virsrakstam BackgroundTableLineOddColor=Background color for odd table lines BackgroundTableLineEvenColor=Background color for even table lines MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) diff --git a/htdocs/langs/lv_LV/agenda.lang b/htdocs/langs/lv_LV/agenda.lang index df1ea90e657..2a5e9cd94ea 100644 --- a/htdocs/langs/lv_LV/agenda.lang +++ b/htdocs/langs/lv_LV/agenda.lang @@ -98,9 +98,9 @@ ActionType=Event type DateActionBegin=Start event date CloneAction=Clone event ConfirmCloneEvent=Are you sure you want to clone the event %s ? -RepeatEvent=Repeat event -EveryWeek=Every week -EveryMonth=Every month +RepeatEvent=Atkārtot notikumu +EveryWeek=Katru nedēļu +EveryMonth=Katru mēnesi DayOfMonth=Day of month DayOfWeek=Day of week DateStartPlusOne=Date start + 1 hour diff --git a/htdocs/langs/lv_LV/companies.lang b/htdocs/langs/lv_LV/companies.lang index 678d1c5a4f7..f497619ca8d 100644 --- a/htdocs/langs/lv_LV/companies.lang +++ b/htdocs/langs/lv_LV/companies.lang @@ -69,7 +69,7 @@ Country=Valsts CountryCode=Valsts kods CountryId=Valsts id Phone=Telefons -PhoneShort=Phone +PhoneShort=Telefons Skype=Skype Call=Zvanīt Chat=Čats diff --git a/htdocs/langs/lv_LV/cron.lang b/htdocs/langs/lv_LV/cron.lang index 95e4a671665..3fa15411781 100644 --- a/htdocs/langs/lv_LV/cron.lang +++ b/htdocs/langs/lv_LV/cron.lang @@ -76,7 +76,7 @@ CronMethodHelp=Objekts metode, lai palaistu.
Par exemple atnest metodi Doli CronArgsHelp=Šī metode argumentus.
Par exemple atnest metodi Dolibarr Produkta objekts / htdocs / produktu / klase / product.class.php, no paramters vērtība var būt 0, ProductRef CronCommandHelp=Sistēma komandrindas izpildīt. CronCreateJob=Create new Scheduled Job -CronFrom=From +CronFrom=No # Info CronInfoPage=Informācija # Common diff --git a/htdocs/langs/lv_LV/errors.lang b/htdocs/langs/lv_LV/errors.lang index 03846eb8363..34482541833 100644 --- a/htdocs/langs/lv_LV/errors.lang +++ b/htdocs/langs/lv_LV/errors.lang @@ -46,7 +46,7 @@ ErrorUserCannotBeDelete=Lietotājs nevar izdzēst. Var būt tas ir saistīts ar ErrorFieldsRequired=Daži nepieciešamie lauki netika aizpildīti. ErrorFailedToCreateDir=Neizdevās izveidot direktoriju. Pārbaudiet, vai Web servera lietotājam ir tiesības rakstīt uz Dolibarr dokumentus direktorijā. Ja parametrs safe_mode ir iespējots uz šo PHP, pārbaudiet, Dolibarr php faili pieder web servera lietotājam (vai grupa). ErrorNoMailDefinedForThisUser=Nav definēts e-pasts šim lietotājam -ErrorFeatureNeedJavascript=Šī funkcija ir jābūt aktivizētam jāaktivizē strādāt. Mainīt to uzstādīšana - displeju. +ErrorFeatureNeedJavascript=Šai funkcijai ir nepieciešams aktivizēt javascript. Mainīt to var iestatījumi - attēlojums. ErrorTopMenuMustHaveAParentWithId0=Tipa "Top" izvēlnē nevar būt mātes ēdienkarti. Put ar 0 mātes izvēlnes vai izvēlēties izvēlni tips "pa kreisi". ErrorLeftMenuMustHaveAParentId=Tipa 'Kreiso' izvēlne jābūt vecākiem id. ErrorFileNotFound=Failu %s nav atrasts (Bad ceļš, aplamas tiesības vai piekļuve liegta ar PHP openbasedir vai safe_mode parametru) diff --git a/htdocs/langs/lv_LV/incoterm.lang b/htdocs/langs/lv_LV/incoterm.lang index 46294f6a2dd..f87bef6fed8 100644 --- a/htdocs/langs/lv_LV/incoterm.lang +++ b/htdocs/langs/lv_LV/incoterm.lang @@ -1,4 +1,4 @@ -Module62000Name=Incoterm +Module62000Name=Inkoterms Module62000Desc=Add features to manage Incoterm IncotermLabel=Inkoterms IncotermSetupTitle1=Iespēja diff --git a/htdocs/langs/lv_LV/install.lang b/htdocs/langs/lv_LV/install.lang index e6ac668aa74..2684620d776 100644 --- a/htdocs/langs/lv_LV/install.lang +++ b/htdocs/langs/lv_LV/install.lang @@ -38,16 +38,16 @@ YouCanContinue=Jūs varat turpināt ... License=Izmantojot licenci ConfigurationFile=Konfigurācijas fails WebPagesDirectory=Katalogs kur web lapas tiek uzglabātas -DocumentsDirectory=Direktorijā uzglabāt augšupielādētos un ģenerētos dokumentus +DocumentsDirectory=Direktorija kurā uzglabāt augšupielādētos un ģenerētos dokumentus URLRoot=URL Root ForceHttps=Piespiedu drošais savienojums (https) CheckToForceHttps=Pārbaudiet šo opciju, lai piespiestu drošus savienojumus (https).
Tas nozīmē, ka tīmekļa serveris ir konfigurēts ar SSL sertifikātu. DolibarrDatabase=Dolibarr datubāze DatabaseChoice=Datubāzes izvēle DatabaseType=Datubāzes tips -DriverType=Driver tips +DriverType=Draivera veids Server=Serveris -ServerAddressDescription=Nosaukums vai IP adrese datu bāzes serveri, parasti 'localhost', kad datu bāzes serveris ir izvietots uz paša servera, kā web serveri +ServerAddressDescription=Nosaukums vai IP adrese datu bāzes serverim - parasti 'localhost', ja datu bāzes serveris ir izvietots uz tā paša servera uz kura atrodas web serveris ServerPortDescription=Datu bāzes servera ports. Atstājiet tukšu, ja nav zināms. DatabaseServer=Datubāzes serveris DatabaseName=Datubāzes nosaukums @@ -60,12 +60,12 @@ AdminPassword=Parole Dolibarr datu bāzes īpašniekam. CreateDatabase=Izveidot datubāzi CreateUser=Izveidot īpašnieku DatabaseSuperUserAccess=Datu bāzes serveris - superlietotājs piekļuve -CheckToCreateDatabase=Rūtiņu, ja datu bāze neeksistē, un ir izveidots.
Tādā gadījumā, jums ir jāaizpilda pieteikšanās / paroli SuperUser kontā pie šīs lapas apakšā. -CheckToCreateUser=Rūtiņu, ja datu bāzes īpašnieks neeksistē, un ir izveidots.
Tādā gadījumā, jums ir jāizvēlas savu lietotājvārdu un paroli, kā arī aizpildīt pieteikšanās / paroli superlietotājs kontā pie šīs lapas apakšā. Ja šī rūtiņa ir nekontrolēti, īpašnieks, datu bāzes un tās paroles ir pastāv. +CheckToCreateDatabase=Ieķeksējiet, ja datu bāze neeksistē, un tā ir jāizveido.
Tādā gadījumā, jums ir jāaizpilda pieteikšanās / paroli SuperUser kontā šīs lapas apakšā. +CheckToCreateUser=Ieķeksējiet, ja datu bāzes īpašnieks neeksistē, un ir jāizveidots.
Tādā gadījumā, jums ir jāizvēlas savu lietotājvārdu un paroli, kā arī aizpildīt pieteikšanās / paroli superlietotājs kontā šīs lapas apakšā. Ja šī rūtiņa ir neieķeksēta , datubāzes īpašniekam un parolei jau ir jābūt. Experimental=(Eksperimentāls) Deprecated=(deprecated) -DatabaseRootLoginDescription=Reģistrācija no lietotāja ļāva izveidot jaunas datu bāzes vai jaunus lietotājus, obligātos ja jūsu datu bāzes vai tās īpašnieks nav jau eksistē. -KeepEmptyIfNoPassword=Atstājiet tukšu, ja lietotājs nav parole (izvairītos) +DatabaseRootLoginDescription=Lietotāja vārds, kas var izveidot datubāzes vai jaunos lietotājus. Obligāti jāaizpilda, ja datubāze vai tās īpašnieks jau neeksistē. +KeepEmptyIfNoPassword=Atstājiet tukšu, ja lietotājam nav vajadzīga parole (izvairieties no bezparoles lietotāja vārda) SaveConfigurationFile=Saglabāt vērtības ConfigurationSaving=Saglabā konfigurācijas failu ServerConnection=Servera savienojums @@ -140,7 +140,7 @@ FieldRenamed=Lauks pārdēvēts IfLoginDoesNotExistsCheckCreateUser=Ja lietotājs neeksistē, jums ir jāizvēlas opciju "Izveidot lietotāju" ErrorConnection=Server "%s", datu bāzes nosaukums "%s" login "%s", vai datu bāzes parole var būt nepareizi vai PHP klienta versijas var būt pārāk vecs, salīdzinot ar bāzes versiju. InstallChoiceRecommanded=Ieteicams izvēlēties, lai instalētu versiju %s no jūsu pašreizējā versijā %s -InstallChoiceSuggested=Instalējiet izvēli ierosināja uzstādītājam. +InstallChoiceSuggested=Instalācijas sistēmas izvēle. MigrateIsDoneStepByStep=Mērķtiecīga versija (%s) ir plaisa vairākas versijas, tāpēc instalēt vednis nāks atpakaļ ieteikt nākamo migrāciju, kad tas viens būs pabeigts. CheckThatDatabasenameIsCorrect=Pārbaudiet, ka datubāzes nosaukums "%s" ir pareizs. IfAlreadyExistsCheckOption=Ja šis vārds ir pareizs un ka datu bāze neeksistē vēl, jums ir pārbaudīt opciju "Izveidot datu bāzi". diff --git a/htdocs/langs/lv_LV/languages.lang b/htdocs/langs/lv_LV/languages.lang index f5acd94dfe2..a367a621aec 100644 --- a/htdocs/langs/lv_LV/languages.lang +++ b/htdocs/langs/lv_LV/languages.lang @@ -71,7 +71,7 @@ Language_sv_SV=Zviedru Language_sv_SE=Zviedru Language_sq_AL=Albāņu Language_sk_SK=Slovāku -Language_sr_RS=Serbian +Language_sr_RS=Serbu Language_sw_SW=Kiswahili Language_th_TH=Thai Language_uk_UA=Ukraiņu diff --git a/htdocs/langs/lv_LV/main.lang b/htdocs/langs/lv_LV/main.lang index 11503673ebd..2bd9c99c78c 100644 --- a/htdocs/langs/lv_LV/main.lang +++ b/htdocs/langs/lv_LV/main.lang @@ -622,7 +622,7 @@ For=Kam ForCustomer=Klientam Signature=Paraksts HidePassword=Rādīt komandu ar slēptu paroli -UnHidePassword=Parādīt savu patieso komandu ar skaidru paroli +UnHidePassword=Parādīt komandu bez paroles Root=Sakne Informations=Informācija Page=Lappuse @@ -710,9 +710,9 @@ GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Deny=Deny Denied=Denied ListOfTemplates=List of templates -Gender=Gender +Gender=Dzimums Genderman=Man -Genderwoman=Woman +Genderwoman=Sieviete ViewList=List view Mandatory=Mandatory Hello=Hello diff --git a/htdocs/langs/lv_LV/orders.lang b/htdocs/langs/lv_LV/orders.lang index dca3d963359..d6d836f56ab 100644 --- a/htdocs/langs/lv_LV/orders.lang +++ b/htdocs/langs/lv_LV/orders.lang @@ -21,8 +21,8 @@ CustomersOrdersRunning=Current customer orders CustomersOrdersAndOrdersLines=Customer orders and order lines OrdersToValid=Customer orders to validate OrdersToBill=Customer orders delivered -OrdersInProcess=Customer orders in process -OrdersToProcess=Customer orders to process +OrdersInProcess=Klientu pasūtījumi apstrādē +OrdersToProcess=Klientu pasūtījumi, kas jāapstrādā SuppliersOrdersToProcess=Supplier orders to process StatusOrderCanceledShort=Atcelts StatusOrderDraftShort=Projekts diff --git a/htdocs/langs/lv_LV/other.lang b/htdocs/langs/lv_LV/other.lang index b6581946e08..e540fba4c84 100644 --- a/htdocs/langs/lv_LV/other.lang +++ b/htdocs/langs/lv_LV/other.lang @@ -189,7 +189,7 @@ YouReceiveMailBecauseOfNotification=Jūs saņemat šo ziņojumu, jo jūsu e-past YouReceiveMailBecauseOfNotification2=Šis notikums ir šādi: ThisIsListOfModules=Šis ir saraksts ar moduļu izraudzītās Šajā demo profilu (tikai Visbiežāk moduļi ir redzamas šajā demo). Labot tas, lai būtu vairāk personalizētu demo un noklikšķiniet uz "Start". ClickHere=Noklikšķiniet šeit -UseAdvancedPerms=Izmantojiet papildu atļaujas dažu moduļu +UseAdvancedPerms=Izmantojiet papildu atļaujas dažiem moduļiem FileFormat=Faila formāts SelectAColor=Izvēliieties krāsu AddFiles=Pievienot failus diff --git a/htdocs/langs/lv_LV/products.lang b/htdocs/langs/lv_LV/products.lang index 942f5ab3ce7..2de77d633fe 100644 --- a/htdocs/langs/lv_LV/products.lang +++ b/htdocs/langs/lv_LV/products.lang @@ -71,7 +71,7 @@ SellingPriceTTC=Pārdošanas cena (ar PVN) PublicPrice=Publiskā cena CurrentPrice=Pašreizējā cena NewPrice=Jaunā cena -MinPrice=Min. selling price +MinPrice=Min. pārdošanas cena MinPriceHT=Min. selling price (net of tax) MinPriceTTC=Min. selling price (inc. tax) CantBeLessThanMinPrice=Pārdošanas cena nevar būt zemāka par minimālo pieļaujamo šī produkta (%s bez PVN). Šis ziņojums var būt arī parādās, ja esat ievadījis pārāk lielu atlaidi. @@ -194,25 +194,25 @@ Unit=Unit p=u. set=set se=set -second=second +second=sekunde s=s -hour=hour +hour=stunda h=h -day=day +day=diena d=d -kilogram=kilogram -kg=Kg -gram=gram -g=g -meter=meter +kilogram=kilograms +kg=kg +gram=grams +g=gr +meter=metrs m=m linearmeter=linear meter lm=lm squaremeter=square meter m2=m² -cubicmeter=cubic meter +cubicmeter=kubikmetrs m3=m³ -liter=liter +liter=litrs l=L ProductCodeModel=Produkta art. paraugs ServiceCodeModel=Pakalpojuma art. paraugs diff --git a/htdocs/langs/lv_LV/projects.lang b/htdocs/langs/lv_LV/projects.lang index 84c91c248da..e1e215cc5a7 100644 --- a/htdocs/langs/lv_LV/projects.lang +++ b/htdocs/langs/lv_LV/projects.lang @@ -26,7 +26,7 @@ ConfirmDeleteATask=Vai tiešām vēlaties dzēst šo uzdevumu? OfficerProject=Virsnieks projekts LastProjects=Pēdējie %s projekti AllProjects=Visi projekti -OpenedProjects=Opened projects +OpenedProjects=Atvērtie projekti OpportunitiesStatusForOpenedProjects=Opportunities status for opened projects ProjectsList=Projektu saraksts ShowProject=Rādīt projektu @@ -97,13 +97,13 @@ ReOpenAProject=Atvērt projektu ConfirmReOpenAProject=Vai jūs tiešām vēlaties no jauna atvērtu šo projektu? ProjectContact=Projekta kontakti ActionsOnProject=Pasākumi par projektu -OpenedProjects=Opened projects +OpenedProjects=Atvērtie projekti YouAreNotContactOfProject=Jūs neesat kontakts šīs privātam projektam DeleteATimeSpent=Dzēst pavadīts laiks ConfirmDeleteATimeSpent=Vai tiešām vēlaties dzēst pavadīto laiku? DoNotShowMyTasksOnly=See also tasks not assigned to me ShowMyTasksOnly=View only tasks assigned to me -TaskRessourceLinks=Resources +TaskRessourceLinks=Resursi ProjectsDedicatedToThisThirdParty=Projekti, kas veltīta šai trešajai personai NoTasks=Neviens uzdevumi šajā projektā LinkedToAnotherCompany=Saistīts ar citām trešajām personām @@ -126,7 +126,7 @@ ProjectCreatedInDolibarr=Projekta %s izveidots TaskCreatedInDolibarr=Uzdevums %s izveidots TaskModifiedInDolibarr=Uzdevums %s labots TaskDeletedInDolibarr=Uzdevums %s dzēsts -OpportunityStatus=Opportunity status +OpportunityStatus=Iespēju statuss OpportunityStatusShort=Opp. status OpportunityAmount=Opportunity amount OpportunityAmountShort=Opp. amount @@ -150,7 +150,7 @@ PlannedWorkloadShort=Workload WorkloadOccupation=Workload assignation ProjectReferers=Atsaucoties objekti SearchAProject=Meklēt projektu -SearchATask=Search a task +SearchATask=Meklēt uzdevumu ProjectMustBeValidatedFirst=Projektu vispirms jāpārbauda ProjectDraft=Melnraksta projekts FirstAddRessourceToAllocateTime=Associate a resource to allocate time @@ -177,7 +177,7 @@ OpenedProjectsByThirdparties=Opened projects by thirdparties OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount OppStatusPROSP=Prospection -OppStatusQUAL=Qualification +OppStatusQUAL=Kvalifikācija OppStatusPROPO=Proposal OppStatusNEGO=Negociation OppStatusPENDING=Pending diff --git a/htdocs/langs/lv_LV/trips.lang b/htdocs/langs/lv_LV/trips.lang index 911827380b5..813f61f4f84 100644 --- a/htdocs/langs/lv_LV/trips.lang +++ b/htdocs/langs/lv_LV/trips.lang @@ -41,7 +41,7 @@ TF_BUS=Autobuss TF_CAR=Automašīna TF_PEAGE=Toll TF_ESSENCE=Degviela -TF_HOTEL=Hotel +TF_HOTEL=Viesnīca TF_TAXI=Taksis ErrorDoubleDeclaration=You have declared another expense report into a similar date range. @@ -59,9 +59,9 @@ Project=Projekts VALIDATOR=User responsible for approval VALIDOR=Apstiprinājis AUTHOR=Recorded by -AUTHORPAIEMENT=Paid by +AUTHORPAIEMENT=Apmaksājis REFUSEUR=Denied by -CANCEL_USER=Deleted by +CANCEL_USER=Dzēsis MOTIF_REFUS=Iemesls MOTIF_CANCEL=Iemesls diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang deleted file mode 100644 index 1c53b65c99c..00000000000 --- a/htdocs/langs/nl_BE/admin.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - admin -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang index 0437a8f1cb9..54b40b24a44 100644 --- a/htdocs/langs/nl_NL/accountancy.lang +++ b/htdocs/langs/nl_NL/accountancy.lang @@ -8,35 +8,35 @@ ACCOUNTING_EXPORT_LABEL=Export the label ? ACCOUNTING_EXPORT_AMOUNT=Export the amount ? ACCOUNTING_EXPORT_DEVISE=Export the devise ? -Accounting=Accounting -Globalparameters=Global parameters -Chartofaccounts=Chart of accounts -Fiscalyear=Fiscal years +Accounting=Boekhouding +Globalparameters=Globale instellingen +Chartofaccounts=Rekeningschema +Fiscalyear=Boekjaren Menuaccount=Accounting accounts Menuthirdpartyaccount=Thirdparty accounts -MenuTools=Tools +MenuTools=Gereedschap ConfigAccountingExpert=Configuration of the module accounting expert -Journaux=Journals -JournalFinancial=Financial journals -Exports=Exports +Journaux=Verkoopdagboek +JournalFinancial=Financiëel dagboek +Exports=Export Export=Export -Modelcsv=Model of export +Modelcsv=Export model OptionsDeactivatedForThisExportModel=For this export model, options are deactivated -Selectmodelcsv=Select a model of export -Modelcsv_normal=Classic export +Selectmodelcsv=Selecteer een export model +Modelcsv_normal=Klassieke export Modelcsv_CEGID=Export towards CEGID Expert BackToChartofaccounts=Return chart of accounts -Back=Return +Back=Terug Definechartofaccounts=Define a chart of accounts Selectchartofaccounts=Select a chart of accounts -Validate=Validate +Validate=Valideer Addanaccount=Add an accounting account AccountAccounting=Accounting account Ventilation=Breakdown -ToDispatch=To dispatch -Dispatched=Dispatched +ToDispatch=Te verzenden +Dispatched=Verzonden CustomersVentilation=Breakdown customers SuppliersVentilation=Breakdown suppliers diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index 637773e7032..36c81ebfa9a 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -1,313 +1,350 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Empresa/Instituição -VersionProgram=Versão do programa -VersionLastInstall=Versão da instalação inicial +Foundation=Associação +VersionProgram=Versão Programa +VersionLastInstall=Versão instalação inicial VersionLastUpgrade=Versão da última atualização +VersionExperimental=Versão Experimental +VersionDevelopment=Versão de Desenvolvimento +VersionUnknown=Versão Desconhecida +VersionRecommanded=Versão Recomendada FileCheck=Integridade de arquivos FilesMissing=Arquivos ausentes FilesUpdated=Arquivos atualizados FileCheckDolibarr=Verificar a integridade dos arquivos Dolibarr XmlNotFound=Arquivo XML de Integridade Dolibarr não encontrado -SessionId=ID da sessão -SessionSaveHandler=Manipulador para salvar sessões. -SessionSavePath=Localização da sessão guardada -PurgeSessions=Remover sessões -ConfirmPurgeSessions=Você tem certeza de que deseja desconectar todas as sessões? Isto irá desconectar TODOS usuários (exceto você). +SessionId=ID da Sessão +SessionSaveHandler=Manipulador para salvar sessão +SessionSavePath=Caminho para salvar sessão +PurgeSessions=Purgar Sessão +ConfirmPurgeSessions=PURGAR todas as sessões? (Isso desconectará todos os usuarios, menos o seu) NoSessionListWithThisHandler=Salvar manipulador de sessão configurado no PHP não permite listar todas as sessões em execução. -LockNewSessions=Bloquear novas conexões -ConfirmLockNewSessions=Você tem certeza que quer restringir qualquer nova conexão Dolibarr para si mesmo. Apenas usuário %s será capaz de se conectar depois. -UnlockNewSessions=Remover bloqueio conexão -YourSession=Sua sessão -Sessions=Sessão de usuários -WebUserGroup=Usuário/grupo do servidor web +LockNewSessions=Bloquear Novas Sessões +ConfirmLockNewSessions=Restringir qualquer nova conexão Dolibarr para si mesmo. (Apenas usuário %s será capaz de se conectar depois) +UnlockNewSessions=Remover Bloqueio de Conexão +YourSession=Sua Sessão +Sessions=Sessões de Usuários +WebUserGroup=Servidor Web para usuário/grupo NoSessionFound=Seu PHP parece não permitir listar as sessões ativas. Diretório usado para salvar sessões (%s) pode ser protegido (por exemplo, pelas permissões do sistema operacional ou por diretiva PHP "open_basedir"). -HTMLCharset=Charset das páginas HTML geradas -DBStoringCharset=Charset base de dados para armazenamento de dados -DBSortingCharset=Charset base de dados para classificar os dados -WarningModuleNotActive=Módulo %s deve ser ativado -WarningOnlyPermissionOfActivatedModules=Atenção, somente as permissões relacionados com os módulos ativados que aparecem aqui. Pode ativar os outros módulos na página configuração->Módulos -DolibarrSetup=Instalação ou atualização do Dolibarr -DolibarrUser=Usuário do Dolibarr +HTMLCharset=Charset das páginas HTML geradas (charset for generated HTML pages) +DBStoringCharset=Charset base de dados para armazenamento de dados (Database charset to store data) +DBSortingCharset=Charset base de dados para classificar os dados (Database charset to sort data) +WarningModuleNotActive=Módulo %s deve ser Ativado! +WarningOnlyPermissionOfActivatedModules=Somente as permissões relacionadas com os módulos ativados que aparecem aqui. +DolibarrSetup=Instalação/Atualização do Dolibarr +DolibarrUser=Usuário Dolibarr InternalUser=Usuário Interno ExternalUser=Usuário Externo InternalUsers=Usuários Internos ExternalUsers=Usuários Externos -SetupArea=Área Configuração -FormToTestFileUploadForm=Formulário para testar upload de arquivo (de acordo com a configuração) -IfModuleEnabled=Nota: Sim só é eficaz se o módulo %s estiver ativado -RemoveLock=Exclua o arquivo %s se tem permissão da ferramenta de atualização. -RestoreLock=Substituir o arquivo %s e apenas dar direito de ler a esse arquivo, a fim de proibir novas atualizações. -ErrorModuleRequireDolibarrVersion=Erro, este módulo requer uma versão %s ou superior do ERP +GlobalSetup=Conf. Globais +GUISetup=Aparência +SetupArea=Configurações da Área +FormToTestFileUploadForm=Formulário para teste de upload de arquivo +IfModuleEnabled=OBS: Sim só é eficaz se o módulo %s estiver ativado +RemoveLock=Remove o arquivo %s se tiver permissão de usar a ferramente de atualização +RestoreLock=Restaura o arquivo %s, com permissão de leitura, para desabilitar qualquer serviço de atualição +SecuritySetup=Conf. de Segurança +ErrorModuleRequireDolibarrVersion=Erro, este módulo requer uma versão %s ou superior do Dolibarr +ErrorDecimalLargerThanAreForbidden=Erro, número maior que %s e não é suportada pelo dolibarr. DictionarySetup=Configuração Dicionário Chartofaccounts=Plano de contas Fiscalyear=Exercícios Fiscais -ErrorReservedTypeSystemSystemAuto=Valores 'system' e 'systemauto' para o tipo é reservado. Você pode usar "usuário" como valor para adicionar seu próprio registro -ErrorCodeCantContainZero=Código não pode conter valor 0 -DisableJavascript=Desative as funções de JavaScript e Ajax (Recomendado para deficientes visuais ou navegadores somente texto) -ConfirmAjax=Utilizar os popups de confirmação Ajax +ErrorReservedTypeSystemSystemAuto=A Variável 'system' e 'systemauto' é reservada. Você pode usar 'user' como variável para adicionar sua própria gravação +ErrorCodeCantContainZero=A variável não pode conter valor "0" (zero) +DisableJavascript=Desativar as funções Javascript e Ajax +ConfirmAjax=Usar Ajax para confirmação de popups UseSearchToSelectCompanyTooltip=Além disso, se você tem um grande número de terceiros (> 100 000), você pode aumentar a velocidade, definindo COMPANY_DONOTSEARCH_ANYWHERE constante a 1 em Setup-> Outro. Busca, então, ser limitada até o início da string. -UseSearchToSelectCompany=Use campos de completação automática para escolher terceiros em vez de usar uma caixa de listagem. -ActivityStateToSelectCompany=Adicionar uma opção de filtro para exibir / ocultar thirdparties que estão atualmente em atividade ou deixou de ativar +UseSearchToSelectCompany=Usar 'autocompletar campo' para escolher terceiros ao invés de listálos. +ActivityStateToSelectCompany=Adiciona uma opção de filtragem para mostrar/esconder terceiros que estão ativos ou encerrados UseSearchToSelectContactTooltip=Além disso, se você tem um grande número de terceiros (> 100 000), você pode aumentar a velocidade, definindo CONTACT_DONOTSEARCH_ANYWHERE constante a 1 em Setup-> Outro. Busca, então, ser limitada até o início da string. -UseSearchToSelectContact=Use campos de completação automática para escolher de contato (em vez de usar uma caixa de lista). -SearchFilter=Opções de filtro para pesquisa -NumberOfKeyToSearch=Número de caracteres para iniciar a pesquisa: %s -ViewFullDateActions=Ver as datas das ações na totalidade na ficha do fornecedor -UsePopupCalendar=Utilizar popups para a introdução das datas -UsePreviewTabs=Use guias de visualização -ShowPreview=Ver Preview -ThemeCurrentlyActive=Tema Atualmente Ativo -CurrentTimeZone=Fuso horário PHP (servidor) -MySQLTimeZone=Zona tempo MySql (banco de dados) -TZHasNoEffect=Datas são guardadas e retornadas pelo servidor de banco de dados como se fosse guardados em formato de texto. A zona temporal tem effeito somente quando e usada a UNIX_TIMESTAMP função ( isso não deveria ser usado pelo Dolibarr, portanto o banco de dados TZ não deveria ter effeito, tambem se mudado apos que os dados foram inseridos). +UseSearchToSelectContact=Usar 'Autocompletar campo' para escolher contato ao invés listalos +SearchFilter=Opção de filtro de Procura +NumberOfKeyToSearch='Nbr' dos caracteres para 'trigger search': %s +ViewFullDateActions=Mostra todas as datas de eventos na folha do terceiro +NotAvailableWhenAjaxDisabled=Indisponível quando o Ajax esta desativado +UsePopupCalendar=Usar popup para datas de entrada +UsePreviewTabs=Usar previsão de digitação na tecla 'tab' +ShowPreview=Mostrar Previsão +PreviewNotAvailable=Previsão Indisponível +ThemeCurrentlyActive=Tema Ativo +CurrentTimeZone=Timezone PHP (do servidor apache) +MySQLTimeZone=Timezone Mysql (do servidor sql) +TZHasNoEffect=A data é armazenada e retornada pelo servidor sql se eles manterem a string apresentada. A timezone é resultado somente se for usado a função UNIX_TIMESTAMP (Não deve ser usada pelo Dolibarr, se não a database TZ não terá efeito, mesmo se tivesse trocada depois da data ter entrado). NextValueForInvoices=Próximo Valor (Faturas) -NextValueForDeposit=Próxima valor (depósito) -NextValueForReplacements=Próxima valor (substituições) -MustBeLowerThanPHPLimit=Observação: Parâmetros PHP limita o tamanho a %s %s de máximo, qualquer que seja o valor deste parâmetros -NoMaxSizeByPHPLimit=Nota: Não há limite definido em sua configuração do PHP -UseCaptchaCode=Utilização do Captcha no login -UseAvToScanUploadedFiles=Utilização de um antivírus para scanear os arquivos enviados -AntiVirusCommandExample=Exemplo de Comando: c: \\ Program Files (x86) \\ ClamWin \\ bin \\ clamscan.exe
Exemplo de Mexilhão: / usr / bin / clamscan -AntiVirusParam=Mais parâmetros na linha de comando -AntiVirusParamExample=Exemplo de Parametro de Comando: - database = "C: \\ Program Files (x86) \\ lib ClamWin \\" -UserSetup=Configuração e Administração dos Usuário -MenuSetup=Configuração do gerenciamento de menu +NextValueForCreditNotes=Próximo Valor (Notas de Crédito) +NextValueForDeposit=Próximo Valor (Depósito) +NextValueForReplacements=Próximo Valor (Substituição) +MustBeLowerThanPHPLimit=OBS: Tamanho máximo de upload é %s %s de máximo, qualquer que seja o valor do parâmetro é +NoMaxSizeByPHPLimit=Nenhum limite foi configurado no seu PHP +MaxSizeForUploadedFiles=Tamanho Máximo para uploads de arquivos ('0' para proibir o carregamento) +UseCaptchaCode=Usar captcha para login (recomendado se os usuários tiverem acesso ao Dolibarr pela internet) +UseAvToScanUploadedFiles=Utilizar antivirus para arquivos para escanear arquivos recebidos pelo Dolibarr (uploaded files) +AntiVirusCommand=Caminho completo para antivirus +AntiVirusCommandExample=Exemplo com o ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Exemplo com o ClamAv: /usr/bin/clamscan (UNIX) +AntiVirusParam=Mais parâmetros em linha de comando (CLI) +AntiVirusParamExample=Exemplo com o ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ComptaSetup=Conf. do Módulo Contabilidade +UserSetup=Conf. do Gestor de usuários +MenuSetup=Conf. do Gestor de Menus MenuLimits=Limites e Precisão -DetailPosition=Número de ordem para a posição do menu -PersonalizedMenusNotSupported=Menus personalizados não são suportados -NotConfigured=Modulo nao configurado -Setup=Configuração do Sistema +MenuIdParent=ID do menu pai +DetailMenuIdParent=ID do menu pai (vazio (NULL) para menu no topo) +DetailPosition=Define as posições do menu em ordem numérica +PersonalizedMenusNotSupported=Não é suportado personalizar menus +NotConfigured=Módulo não está configurado +Setup=Configurações Activation=Ativação Active=Ativo -SetupShort=Configuracao -OtherSetup=Outras configuracoes -CurrentValueSeparatorThousand=Separador milhar +SetupShort=Conf. +OtherSetup=Outras Configurações +CurrentValueSeparatorThousand=Separador por mil IdModule=Módulo ID IdPermissions=Permissão ID ModulesCommon=Módulos Principais -ModulesInterfaces=Módulos de interface -ModulesSpecial=Módulos muito específico -ClientTZ=Fuso horário do cliente (usuário). -ClientHour=Horário do cliente (usuário) -OSTZ=Fuso horário do sistema operacional do servidor -PHPTZ=Fuso horário do servidor PHP -PHPServerOffsetWithGreenwich=Offset com Greenwich (segundos) -ClientOffsetWithGreenwich=Largura do Browser/Cleinte compesa Greenwich(segundos) -DaylingSavingTime=Horário de verão -CurrentHour=Horário PHP (servidor) -CompanyTZ=Fuso Horário da empresa (empresa principal) -CompanyHour=Horário na empresa (empresa principal) -CurrentSessionTimeOut=Tempo limite da sessão atual -YouCanEditPHPTZ=Para definir um fuso horário diferente PHP (não obrigatório), você pode tentar adicionar um arquivo. Htacces com uma linha como esta "SetEnv TZ Europa / Paris" -OSEnv=OS Ambiente -MaxNbOfLinesForBoxes=Numero de linhas máximo para as caixas -PositionByDefault=Posição por padrao -MenusDesc=Os configuradores do menu definem o conteúdo das 2 barras de menus (a barra horizontal e a barra vertical). É possível atribuir configuradores diferentes segundo o usuário seja interno ou externo. -MenusEditorDesc=O editor de menus permite definir entradas personalizadas nos menus. Deve utilizar com prudência sobe pena de colocar o ERP numa situação instável sendo necessário uma reinstalação para encontrar um menu coerente. -MenuForUsers=menu para os usuarios +ModulesOther=Outros Módulos +ModulesInterfaces=Módulos de Interface +ModulesSpecial=Módulos Especificos +ParameterInDolibarr=Parâmetro %s +LanguageBrowserParameter=Parâmetro de Linguagem %s +LocalisationDolibarrParameters=Parâmetros de Localização +ClientTZ='Time Zone' do cliente (usuário) +ClientHour=Tempo(time) do Cliente (usuário) +OSTZ='Time Zone' do servidor OS +PHPTZ='Time Zone' do server PHP +PHPServerOffsetWithGreenwich=server PHP 'offset width Greenwich' (segundos) +ClientOffsetWithGreenwich=Cliente/Navegador 'offset width Greenwich' (seconds) +DaylingSavingTime=Diurno salvando o tempo +CurrentHour=PHP Time (servidor) +CompanyTZ='Time Zone' da Empresa +CompanyHour=Tempo(time) da Empresa +CurrentSessionTimeOut=A sessão expirou +YouCanEditPHPTZ=Para trocar diferente PHP 'timezone' (não requerido), você pode tentar adicionando um arquivo .htacces com uma linha tipo essa "SetEnv TZ Europe/Paris" +OSEnv=Ambiente do SO +MaxNbOfLinesForBoxes=Número máximo de linhas por caixas +PositionByDefault=Posição Padrão(default) +MenusDesc=Gestor de menus define conteudo das duas barras (horizontal e vertical). +MenusEditorDesc=O editor permite personalizar todo o menu. Use isso com cautela pois pode deixar o Dolibarr instavel. +MenuForUsers=Menu para os Usuários LangFile=Arquivo .lang SystemInfo=Informações de Sistema -SystemToolsArea=Área de ferramentas do sistema -SystemToolsAreaDesc=Esta área oferece diferentes funções da administração. Use o menu para escolher a Funcionalidade que procura. -PurgeAreaDesc=Esta página permite eliminar todos os arquivos criados ou guardados pelo ERP (Arquivos temporários ou todos os arquivos da pasta %s). O uso desta função não é necessária. Proporciona-se para os Usuários que albergam o ERP não servidor que oferece as permissões de eliminação de arquivos salvaguardados pela servidor Web. -PurgeDeleteLogFile=Excluir arquivo de log % s definido para o módulo Syslog (sem risco de perder dados) -PurgeDeleteTemporaryFiles=Eliminar todos os arquivos temporários (sem perigo de perca de dados) -PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os arquivos da pasta %s. Arquivos temporários e Arquivos agregados a elementos (Fornecedores, faturas, etc.) serão eliminados. -PurgeRunNow=Eliminar Agora -PurgeNothingToDelete=Nenhum diretorio ou arquivo para ser apagado. -PurgeNDirectoriesDeleted=%s Arquivos o pastas apagados. -PurgeAuditEvents=Apagar os eventos de segurança -ConfirmPurgeAuditEvents=Tem a certeza que pretende limpar a lista de eventos de auditoria de segurança? Todos os logs de seguranca serao apagaos, nenhum outro dado sera removido. +SystemToolsArea=Área de Ferramentas do sistema +SystemToolsAreaDesc=Essa area dispoe de funções administrativa. Use esse menu para escolher as funções que você está procurando. +Purge=Purgar(apagar tudo) +PurgeAreaDesc=Esta página permite eliminar todos os arquivos criados ou guardados pelo Dolibarr (Arquivos temporários ou todos os arquivos no diretório %s). Usar essa função não é necessaria. Isso permite o Dolibarr deletar os arquivos onde ele é hostiado, caso o usuário não tenha permição de deletar arquivos no servido (tipo UNIX). +PurgeDeleteLogFile=Deletar arquivos de log %s são definidos pelo módulo syslog (sem risco de perder dados) +PurgeDeleteTemporaryFiles=Apagar todos os arquivos temporários (sem perigo de perca de dados) +PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os arquivos do diretório %s. Arquivos temporários, backups, arquivos anexados (terceiros, faturas, etc.) e arquivos anexados dentro dos módulos ECM serão deletados. +PurgeRunNow=Purgar(Apagar) Agora +PurgeNothingToDelete=Nenhum diretório ou arquivo para deletar. +PurgeNDirectoriesDeleted=%s Arquivos o diretórios eliminados +PurgeAuditEvents=Eliminar os eventos de segurança +ConfirmPurgeAuditEvents=Tem certeza que deseja purgar(apagar) todos os eventos de segurança? também todos os logs de segurança será apagado, nenhuma outro dados serão removidos. NewBackup=Novo Backup GenerateBackup=Gerar Backup -RunCommandSummary=A cópia será executada pelo seguinte comando -RunCommandSummaryToLaunch=O backup pode ser executado com o seguinte comando -WebServerMustHavePermissionForCommand=Seu servidor deve ter permissoes para executar esta ordem -BackupResult=Resultado do Backup -BackupFileSuccessfullyCreated=Arquivo de Backup gerado corretamente -YouCanDownloadBackupFile=Pode ser feito o download dos arquivos gerados -NoBackupFileAvailable=Nenhum Backup Disponivel -ToBuildBackupFileClickHere=Para criar uma cópia, clique here. -ImportMySqlDesc=Para importar um backup, deve usar o mysql e na linha de comando seguinte: -ImportPostgreSqlDesc=Para importar um arquivo de backup, você deve utilizar o pg_restore através do prompt de comando: -ImportMySqlCommand=%s %s < meuArquivobackup.sql -ImportPostgreSqlCommand=%s %s meuarquivodebackup.sql -FileNameToGenerate=Nome do arquivo a gerar -CommandsToDisableForeignKeysForImport=Comando para desativar as chave estrangeira para a importação -CommandsToDisableForeignKeysForImportWarning=Obrigatório se você quer ser capaz de restaurar o despejo sql mais tarde -ExportCompatibility=Compatibilidade do arquivo de exportação gerado +RunCommandSummary=Backup foi iniciado com o seguinte comando +RunCommandSummaryToLaunch=Backup pode ser iniciado pelo seguinte comando +WebServerMustHavePermissionForCommand=Seu servidor web precisa ter permissão de rodar esse comando +BackupResult=Resultado de backup +BackupFileSuccessfullyCreated=Sucesso em gerar o arquivo de backup! =D +YouCanDownloadBackupFile=Os arquivos gerados já podem ser baixados +NoBackupFileAvailable=Nenhum backup está disponível +ExportMethod=Método de Exportação +ImportMethod=Método de Importação +ToBuildBackupFileClickHere=Para criar um backup, click aqui. +ImportMySqlDesc=Para importar um backup, você precisa usar um comando do mysql: +ImportPostgreSqlDesc=Para importar um arquivo de backup, você deve usar pg_restore na linha de comando: +ImportMySqlCommand=%s %s < meubackup.sql +ImportPostgreSqlCommand=%s %s meubackup.sql +FileNameToGenerate=Nome do arquivo para gerar +Compression=Compactar +CommandsToDisableForeignKeysForImport=Comando para desativar as chaves estrangeiras(foreign keys) na importação +CommandsToDisableForeignKeysForImportWarning=Mandatório se você quiser ser capaz de restaurar seu 'sql dump' depois +ExportCompatibility=Compatibilidade de gerar arquivos de exportação +MySqlExportParameters=Parâmetros de exportação do MySql PostgreSqlExportParameters=Parâmetros de exportação do PostgreSQL -UseTransactionnalMode=Utilizar o modo transacional +UseTransactionnalMode=Utilizar o modo transicional(transactional mode) +FullPathToMysqldumpCommand=Caminho completo para o comando mysqldump FullPathToPostgreSQLdumpCommand=Caminho completo para o comando pg_dump -AddDropDatabase=Adicionar comando DROP DATABASE -AddDropTable=Adicionar comando DROP TABLE -ExtendedInsert=Instruções INSERT estendidas -NoLockBeforeInsert=Sem comandos de bloqueio em torno INSERIR -EncodeBinariesInHexa=Codificar os campos binários em hexadecimal -IgnoreDuplicateRecords=Ignorar erros de registros duplicados(INSERT IGNORE) -FeatureDisabledInDemo=Opção desabilitada em mode demonstracao -BoxesDesc=As caixas são zonas de informação reduzidas que se mostram em algumas páginas. Voce pode escolher entre mostrar as caixas ou nao selecionando a opcao desejada e clicando em 'Ativar', ou clicando na lixeira para desativá-lo. -OnlyActiveElementsAreShown=Somente elementos de habilitado módulos são mostrados. -ModulesDesc=Os módulos do ERP definem as Funcionalidades disponíveis na aplicação. Alguns módulos requerem direitos que deverão indicar-se nos Usuários para que possam acessar ás suas Funcionalidades. -ModulesJobDesc=Os módulos mpresariais permitem uma pré-configuração simplificada do ERP para um negocio especifico. -ModulesMarketPlaceDesc=Voce pode encontrar mais modulos para download em sites externos na internet -ModulesMarketPlaces=Mais módulos -DoliStoreDesc=DoliStore, Pagina oficial para modulos externos do Dolibarr ERP/CRM. +AddDropDatabase=Adicionar o comando 'DROP DATABASE' +AddDropTable=Adicionar o comando 'DROP TABLE' +ExtendedInsert=Extender o INSERT +NoLockBeforeInsert=Não travar comando antes do INSERT +DelayedInsert=Inserir Atraso +EncodeBinariesInHexa=Codificar dados binários em hexadecimal +IgnoreDuplicateRecords=Ignorar erros de dupla gravação (INSERT IGNORE) +AutoDetectLang=Autodetecção de idioma pelo navegador +FeatureDisabledInDemo=Algumas funções desabilitada no Demo +BoxesDesc=As caixas são área na tela que mostra um pedaço de informação em algumas páginas. Você pode escolher em mostrar essa caixa ou não selecionando na pagina escolhida e clicando em 'Ativar', ou clicando na lixeira para desativar. +OnlyActiveElementsAreShown=Somente elementos de módulos ativos são mostrado. +ModulesDesc=Os módulos do Dolibarr são interfaces que permite ativar novas funções para o sistema. Alguns módulos requerem permissões dos usuários, depois do módulo ser ativado. Clique no botão Ligar/Desligar na coluna "Status" para ativar o módulo. +ModulesInterfaceDesc=Os módulos Dolibarr de interface permite você adicione funções que depende de software externo, sistema ou serviço. +ModulesJobDesc=Os módulos empresariais possuem uma configuração simples, ideal para o próprio negócio. +ModulesMarketPlaceDesc=Você pode achar mais módulos na internet, baixando em sites e no DoliStore +ModulesMarketPlaces=Mais módulos... +DoliStoreDesc=DoliStore, o site oficial para baixar módulos externos. DoliPartnersDesc=Lista com algumas empresas que podem fornecer / desenvolver módulos ou funcionalidades on-demand (Nota: qualquer empresa Open Source knowning linguagem PHP pode lhe fornecer desenvolvimento específico) -WebSiteDesc=Você pode pesquisar para encontrar mais módulos em Provedores de sites -BoxesAvailable=Caixas disponíveis -BoxesActivated=Caixas ativadas -ActivateOn=Ative em -ActiveOn=Ativada em -SourceFile=Arquivo origem -AutomaticIfJavascriptDisabled=Automático se Javascript está desativado -AvailableOnlyIfJavascriptNotDisabled=Disponível somente se Javascript esta ativado -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponível somente se Javascript e Ajax estão ativados +WebSiteDesc=O site permite você procurar e baixar novos módulos... +URL=Site +BoxesAvailable=Caixas Disponíveis +BoxesActivated=Caixas Ativadas +ActivateOn=Ativar +ActiveOn=Ativa +SourceFile=Arquivo Fonte +AutomaticIfJavascriptDisabled=Automático se o Javascript está desativado +AvailableOnlyIfJavascriptNotDisabled=Disponível somente se Javascript não estiver desativado +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponível somente se Javascript não estiver desativado UsedOnlyWithTypeOption=Usado por alguns opção agenda única Passwords=Senhas -DoNotStoreClearPassword=Nao salve senhas faceis no banco de dados mas salvar senhas criptografadas(Ativacao recomendada) -MainDbPasswordFileConfEncrypted=Encriptar a senha da base em arquivo conf.php(Ativacao Recomendada) -InstrucToEncodePass=Para ter a senha codificada no arquivo conf.php, substitua a linha
$Dolibarr_main_db_pass="...";
por
$ Dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=Para ter senha descodificado (claro) para o arquivo conf.php, substituir a linha
$Dolibarr_main_db_pass="crypted: ...";
por
$Dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Proteção e encriptação dos pdf gerados(Ativado não recomendado, quebra geração pdf massa) -ProtectAndEncryptPdfFilesDesc=A proteção de um documento pdf deixa o documento livre para leitura e para impressão a qualquer leitor de PDF. Ao contrário, a modificação e a cópia resultam impossível. -Feature=Caracteristica -DolibarrProjectLeader=Lider de projeto -Developpers=Programadores/contribuidores -OtherDeveloppers=Outros Programadores/contribuidores -OfficialWebSite=Site oficial do Dolibarr -OfficialWebSiteFr=site web oficial falado/escrito em francês -OfficialDemo=Demo online ERP -OfficialMarketPlace=Loja Oficial para módulos / addons externos -OfficialWebHostingService=Serviços de hospedagem web referenciados (Hospedagem em nuvem) +DoNotStoreClearPassword=Não armazenar senhas em branco no banco de dados, somente armazenar senhas criptografadas (Ativação é Recomendada) +MainDbPasswordFileConfEncrypted=Criptografar senha do banco de dados no arquivo conf.php +InstrucToEncodePass=Para ter a senha codificada no arquivo conf.php, substitua a linha
$dolibarr_main_db_pass="..."
por
$dolibarr_main_db_pass="crypted:%s" +InstrucToClearPass=Para ter a senha não codificada(limpa) no arquivo conf.php, substitua a linha
$dolibarr_main_db_pass="crypted:..."
por
$dolibarr_main_db_pass="%s" +ProtectAndEncryptPdfFiles=Criptografar a geração de arquivos em PDF (NÃO RECOMENDADO, póis pode deixar instável a geração de PDFs massivos) +ProtectAndEncryptPdfFilesDesc=A proteção de arquivos PDFs mantem ele somente leitura e impressão. Não podendo editar ou copíar. +Feature=Destaque(Feature) +DolibarrProjectLeader=Líder de Projeto +Developpers=Desenvolvedores/Contribuidores +OtherDeveloppers=Outros Desenvolvedores/Contribuidores +OfficialWebSite=Site Dolibarr internacional +OfficialWiki=DoliWiki +OfficialMarketPlace=Loja oficial para módulos externos/addons +OfficialWebHostingService=Oficial web hosting service (Cloud hosting) ReferencedPreferredPartners=Parceiro preferido -ForDocumentationSeeWiki=Para a documentação de usuário, programador ou Perguntas Frequentes (FAQ), consulte o wiki do ERP:
%s -ForAnswersSeeForum=Para outras questões ou realizar as suas próprias consultas, pode utilizar o fórum do ERP:
%s -HelpCenterDesc1=Esta área permite ajudá-lo a obter um serviço de suporte do ERP. -HelpCenterDesc2=Alguns destes serviços só estão disponíveis em inglé. -CurrentTopMenuHandler=Manipulador de menu superior atual -CurrentLeftMenuHandler=Manipulador de menu à esquerda atual -CurrentMenuHandler=Manipulador do menu atual -CurrentSmartphoneMenuHandler=Manipular do Menu Smartphone Atual -EMailsSetup=configuração E-Mails -EMailsDesc=Esta página permite substituir os parâmetros PHP relacionados com o envio de correios eletrônicos. Na maioria dos casos como UNIX/Linux, os parâmetros PHP estão corretos e esta página é inútil. -MAIN_MAIL_SMTP_PORT=Porta do servidor SMTP (Por default no php.ini: %s) -MAIN_MAIL_SMTP_SERVER=Nome host ou ip do servidor SMTP (Por padrao em php.ini: %s) -MAIN_MAIL_EMAIL_FROM=E-Mail do emissor para envios E-Mail automáticos (Por padrao no php.ini: %s) -MAIN_MAIL_ERRORS_TO=Remetente de e-mail utilizado para retornar emails enviados com erros -MAIN_MAIL_AUTOCOPY_TO=Enviar sistematicamente uma cópia oculta de todos os emails enviados para +ForDocumentationSeeWiki=Documentos para usuários e desenvolvedores (Doc, FAQs...),
de uma olhada no Dolibarr Wiki:
%s +ForAnswersSeeForum=Para outras questões/ajudas, você pode usar o forum do Dolibar:
%s +HelpCenterDesc1=Essa área pode ajudar você a conseguir serviço de suporte no Dolibarr. +HelpCenterDesc2=Uma parte desse serviço está disponivel em inglês. +CurrentTopMenuHandler=Atual gestor do menu superior +CurrentLeftMenuHandler=Atual gestor do menu esquerdo +CurrentMenuHandler=Atual gestor de menu +CurrentSmartphoneMenuHandler=Atual gestor de menu para smartphone +EMailsSetup=conf. de E-Mails +EMailsDesc=Essa página permite você a sobrescrever os seus parâmetros PHP para enviar e-mails. Na maioria dos casos dos sistemas Unix/Linux OS, a configuração já está correta, tornando desnecessário esses parâmetros. +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (Por default em php.ini: %s) +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (Por default em php.ini: %s) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Não definido em PHP nos sistemas tipo Unix) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Não definido em PHP nos sistemas tipo Unix) +MAIN_MAIL_EMAIL_FROM=E-Mail de envio para envios automáticos (Por default em php.ini: %s) +MAIN_MAIL_ERRORS_TO=E-Mail de envio usado para retornar erros de e-mails enviados +MAIN_MAIL_AUTOCOPY_TO=Envia sistematicamente uma cópia escondida de todos os emails enviados para MAIN_MAIL_AUTOCOPY_PROPOSAL_TO=Enviar sistematicamente uma cópia carbono oculta de propostas enviadas por email para MAIN_MAIL_AUTOCOPY_ORDER_TO=Enviar sistematicamente uma cópia carbono oculta de ordens enviadas por email para MAIN_MAIL_AUTOCOPY_INVOICE_TO=Enviar sistematicamente uma cópia carbono oculta da fatura enviada por e-mails para -MAIN_DISABLE_ALL_MAILS=Desativar globalmente todo o envio de correios eletrônicos (para modo de testes) -MAIN_MAIL_SENDMODE=Método de envio de e-mails -MAIN_MAIL_EMAIL_TLS=Usar encryptacao TLS(SSL) -MAIN_DISABLE_ALL_SMS=Desabilitar todos os envios de SMS(para testes ou demonstracoes) -MAIN_SMS_SENDMODE=Método para envio de SMS -MAIN_MAIL_SMS_FROM=Número padrão para envio de SMS -FeatureNotAvailableOnLinux=Funcionalidade não disponível em sistemas Unix. Teste parâmetros sendmail localmente. -SubmitTranslation=Se a tradução para esse idioma não estiver completa ou você encontrar erros, você pode corrigir isso através da edição de arquivos no diretório langs /% s e enviar arquivos modificados no forum www.dolibarr.org. -ModuleFamilyCrm=Administração cliente (CRM) -ModuleFamilyProducts=Administração produtos -ModuleFamilyProjects=Projetos/Trabalho cooperativo -ModuleFamilyECM=Gerenciamento de Conteúdo Eletrônico (ECM) -MenuHandlers=Configuradores menu -MenuAdmin=Editor menu +MAIN_DISABLE_ALL_MAILS=Desabilita o envido de todos os E-Mails (Para testes ou demo) +MAIN_MAIL_SENDMODE=Método usado para envio de E-Mails +MAIN_MAIL_SMTPS_ID=SMTP ID se requerer autentificação +MAIN_MAIL_SMTPS_PW=SMTP Senha se requerer autentificação +MAIN_MAIL_EMAIL_TLS=Usar TLS (SSL) encrypt +MAIN_DISABLE_ALL_SMS=Desabilitar todos envios de SMS (Para testes ou demo) +MAIN_SMS_SENDMODE=Método usado para enviar SMS +MAIN_MAIL_SMS_FROM=Envio default para número telefonico por SMS +FeatureNotAvailableOnLinux=Função não disponível para sistemas tipo Unix. Teste de envio local. +SubmitTranslation=Se a tradução não estiver completa ou com erros, você pode corrigir editando os arquivos de texto no diretóriolangs/%s e submeter as correções no forum www.dolibarr.org +ModuleSetup=Conf. do módulo +ModulesSetup=Conf. dos módulos +ModuleFamilyCrm=Gestão de Relacionamento com o Cliente (CRM) +ModuleFamilyProducts=Gestão de Produtos +ModuleFamilyProjects=Projetos +ModuleFamilyTechnic=Ferramentas para Módulos Múltiplos +ModuleFamilyExperimental=Módulos Experimentais +ModuleFamilyFinancial=Módulos Financeiros +ModuleFamilyECM=Gestão de Conteúdos Eletrônicos (ECM) +MenuHandlers=Gestor de Menus +MenuAdmin=Editor menus DoNotUseInProduction=Não utilizar em produção -ThisIsProcessToFollow=Está aqui o procedimento a seguir: +ThisIsProcessToFollow=Esse é o processo de configuração: ThisIsAlternativeProcessToFollow=Esta é uma configuração alternativa para o processo: -FindPackageFromWebSite=Encontre um pacote que oferece recurso desejado (por exemplo, no site oficial % s). -DownloadPackageFromWebSite=Pacote de download (por exemplo, de oficial web site %s). -UnpackPackageInDolibarrRoot=Descompacte arquivo de pacote para o diretório de servidor Dolibarr dedicado a módulos externos:%s -SetupIsReadyForUse=A Instalação está finalizada e o ERP está liberada para usar com o novo componente -NotExistsDirect=O diretório alternativo para o root não foi definido -InfDirAlt=Desde a versão 3, é possível definir um diretorio root alternativo. Esta funcoa permitepermite que você armazene, no mesmo lugar, plug-ins e templates personalizados
apenas crie um diretório na raiz do Dolibarr. (Por exemplo: custom)
-InfDirExample=
então declará-lo no arquivo conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
*These linhas estão comentadas com "#", descomentar apenas remover o caractere. -YouCanSubmitFile=Para esta etapa, você pode enviar pacote usando esta ferramenta: Selecione arquivo de módulo -CurrentVersion=Versão atual do ERP -CallUpdatePage=Chamar a página de atualização da estrutura e dados da base de dados %s. -LastStableVersion=Ultima Versão estável +FindPackageFromWebSite=Achar um pacote que possue as funções desejadas (por exemplo no site oficial %s). +DownloadPackageFromWebSite=Baixar pacote. +UnpackPackageInDolibarrRoot=Descompactar pacote dentro do diretório raiz do Dolibarr %s +SetupIsReadyForUse=Instalação terminada e o Dolibarr está pronto para usar esse novo componente. +NotExistsDirect=O diretório raiz alternativo não está definido.
+InfDirAlt=Desde a versão 3 é possivel definir um diretório raiz alternativo. Isso permite armazenar, em outro lugar os plug-ins e os templates costomizados.
Simplesmente criando um diretório root do Dolibarr.
+InfDirExample=
Então declara o arquivo conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
*Linhas com "#" são comentários, para descomentar somente remova os "#". +YouCanSubmitFile=Selecione o módulo: +CurrentVersion=Versão atual do Dolibarr +CallUpdatePage=Ir para a página que atualiza a estrutura do banco de dados e os dados: %s. +LastStableVersion=Última versão estável UpdateServerOffline=Atualização de servidor off-line -GenericMaskCodes=Pode introduzir qualquer máscara numérica. Nesta máscara, pode utilizar as seguintes etiquetas:
{000000} corresponde a um número que se incrementa em cada um de %s. Introduza tantos zeros como longitude que deseje mostrar. O contador completarse-á a partir de zeros pela esquerda com o fim de ter tantos zeros como a máscara.
{000000+000} Igual que o anterior, com uma compensação correspondente ao número da direita do sinal + aplica-se a partir do primeiro %s.
{000000@x} igual que o anterior, mas o contador restabelece-se a zero quando se chega a x meses (x entre 1 e 12). Se esta opção se utiliza e x é de 2 ou superior, então a seq�ência {yy}{mm} ou {yyyy}{mm} também é necessário.
{dd} dias (01 a 31).
{mm} mês (01 a 12).
{yy}, {yyyy} ou {e} ano em 2, 4 ou 1 figura.
-GenericMaskCodes2={cccc} o codigo do cliente de n caracteres
{cccc000} o codigo do cliente de n caracteres e seguido do contador dedicado para o cliente. Este contador dedicado ao cliente e reiniciado no mesmo tempo que o contador global.
{tttt} O codigo do terceiro tipo de n caracteres (ver dicionario terceiros tipos ).
-GenericMaskCodes3=qualquer outro caracter0 na máscara se fica sem alterações.
Não é permitido espaços
-GenericMaskCodes4a=Exemplo em 99 � %s o Fornecedor a Empresa realizada em 31/03/2007:
-GenericMaskCodes4b=Exemplo sobre um Fornecedor criado em 31/03/2007:
-GenericMaskCodes4c=Exemplo de produto criado em 2007-03-01:
-GenericMaskCodes5=ABC {yy} {mm} - {000000} dará ABC0701-000099
{0000 100 @ 1}-ZZZ / dd {} / XXX dará 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Devolve um número criado na linha em uma máscara definida. -ServerAvailableOnIPOrPort=Servidor disponível não endereço %s na porta %s -ServerNotAvailableOnIPOrPort=Servidor não disponível não endereço %s na Porta %s -DoTestSend=Teste envio +GenericMaskCodes=Você pode criar suas próprias mascaras para gerar as referências automáticas.
Como exemplo inicial a mascara 'CLI{000}' vai gerar a ref. CLI001,CLI002,... as mascaras são:
Mascara de contagem {0000}, essa mascara vai contar para cada nova ref. ex:0001,0002,0003,...
Mascara de número inicial ex:{000+100} -> 101,102,103,... ex2:{0000+123} -> 0124,0125,...
Mascara da data {dd} dias (01 a 31), {mm} mês (01 a 12), {yy} {yyyy} para anos ex:{dd}/{mm}/{yy} -> 28/07/15
+GenericMaskCodes2=Mascara para cópiar ref de client{cccc} ex:{cccccc}.{000} -> CLI001.001.
+GenericMaskCodes3=Não é permitido espaços.
Mascara fixa, basta colocar uma letra ou número sem {} ex:CLI,FOR

+GenericMaskCodes4a=Ex: TESTE{000+100}.{mm}.{yy} -> TESTE101.07.15,TESTE102.07.15
+GenericMaskCodes4b=Ex: CLI{dd}{mm}{yy}.{000} -> CLI280715.001
+GenericMaskCodes4c=Ex: PRODUTO{000+100} -> PRODUTO101
+GenericMaskCodes5=Ex:ABC{yy}{mm}-{000000} -> ABC1507-000099
+GenericNumRefModelDesc=Retorna um número costomizado de acordo com a mascara definida. +ServerAvailableOnIPOrPort=Servidor disponível no endeço %s e porta %s +ServerNotAvailableOnIPOrPort=Servidor não disponível no endereço %s e porta %s +DoTestSend=Teste de Envio DoTestSendHTML=Teste envio HTML -ErrorCantUseRazIfNoYearInMask=Erro, não pode usar a opção para redefinir @ contador a cada ano se sequência {yy} ou {aaaa} não está na máscara. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Erro, não se pode usar opção @ se a seq�ência {yy}{mm} ou {yyyy}{mm} não se encontra a máscara. -UMask=Parâmetro UMask de novos arquivos em Unix/Linux/BSD. -UMaskExplanation=Este parâmetro determina os direitos dos arquivos criados não servidor do ERP (durante o carregamento, por Exemplo).
Este deve ter o valor octal (por Exemplo, 0666 significa leitura / escrita para todos).
Este parâmetro não tem nenhum efeito sobre um servidor Windows. -SeeWikiForAllTeam=Veja o wiki para mais detalhes de todos os autores e da sua organização -UseACacheDelay=Atraso para a resposta cache em segundos (0 ou vazio para nenhum cache) -DisableLinkToHelpCenter=Esconde link Precisa ajuda ou suporte " na página de login -DisableLinkToHelp=Esconde link "%s Ajuda online " no menu esquerdo -AddCRIfTooLong=Não há envolvimento automático, por isso, se linha está fora da página em documentos, porque por muito tempo, você deve adicionar-se os retornos de carro no testar área. -ModuleDisabled=Módulo desabilitado -ModuleDisabledSoNoEvent=Módulo desabilitado, portanto, o evento não será criado. -ConfirmPurge=Você tem certeza que quer executar esta limpeza?
Isso deletará definitivamente todos os seus arquivos sem meios para restaurá-los (arquivo ECM, arquivos anexados) -MinLength=Tamanho mínimo -LanguageFilesCachedIntoShmopSharedMemory=Arquivos .lang transferidos na memória compartilhada -ExamplesWithCurrentSetup=Exemplos com a configuração atual em execução -ListOfDirectories=Lista de OpenDocument de modelos de diretórios -ListOfDirectoriesForModelGenODT=Lista de diretórios contendo modelos de arquivos com formato OpenDocument.

Coloque aqui o caminho completo do diretório.
Adicione um procedimento de retorno entre cada diretório.
Para adicionar um diretório de módulo GED, adicione aqui DOL_DATA_ROOT/ecm/yourdirectoryname.

Arquivos neste diretório devem ter final .odt. -NumberOfModelFilesFound=Números de arquivos de modelos ODT/ODS encontrados neste diretório -ExampleOfDirectoriesForModelGen=Exemplos de sintaxe:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=Para saber como criar seu documento seu modelo de documento odt, antes de armazená-lo naquele diretório, leia a documentação wiki +ErrorCantUseRazIfNoYearInMask=Erro, não pode utilizar o @ para resetar o contador cada ano se a sequencia {yy} ou {yyyy} não estiver na mascara +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Erro, não pode utilizar a opção @ se a não ouver {yy} ou {yyyy} na mascara. +UMask=Parâmetros da UMask para novos arquivos nos sistemas de arquivos Unix/Linux/BSD/Mac. +UMaskExplanation=Esses parâmetros permitem você definir permissões por default nos arquivos criado pelo Dolibarr no servidor (Ex: durante upload).
Deve ser em formato octal (Ex: 06666 significa que tem permissão de leitura e escrita para todo mundo).
Esse parâmetro é inutil para servidores windows. +SeeWikiForAllTeam=Veja a página da wiki para ver a lista de todos os autores e essa organização +UseACacheDelay=Atrazo para exportação de cache em segundos (0 ou vazio para sem cache) +DisableLinkToHelpCenter=Esconder link "Precisa de ajuda ou suporte" na pagina de login +DisableLinkToHelp=Esconder link "%s Ajuda Online" no menu esquerdo +AddCRIfTooLong=Não possui nenhum empacotamento automático, então se a linha sair da página do documento é porque é muito comprida, você precisa adicionar você mesmo um retorno de transporte(carriage) na área de texto. +ModuleDisabled=Desativar Módulo +ModuleDisabledSoNoEvent=Módulo desativado portanto o evento nunca foi criado +ConfirmPurge=Você em certeza que deseja executar esse purgador?
Isso irá deletar todos os arquivos de dados e não haverá como recuperalos (arquivos ECM, arquivos anexados...). +MinLength=Comprimento mínimo +LanguageFilesCachedIntoShmopSharedMemory=Arquivo .lang está carregado na memória +ExamplesWithCurrentSetup=Exemplos com atuais configurações que estão rodando +ListOfDirectories=Lista de diretórios com templates de documentos abertos(.odt) +ListOfDirectoriesForModelGenODT=Lista de diretórios que contém arquivos templates com formato de documento aberto(.odt).

Coloque aqui o caminho completo dos diretórios.
Adicionar retorno de transporte(carriage) entre cada diretório.
Para adicionar o diretório do módulo GED, adicione aqui DOL_DATA_ROOT/ecm/seunomedodiretório.

Arquivos neste diretório deve terminar com .odt. +NumberOfModelFilesFound=Número de templates ODT/ODS se encontra neste diretório +ExampleOfDirectoriesForModelGen=Exemplo de sintaxe:
c:\\meudir
/home/meudir
DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
Para saber como criar templates em odt, antes de armazenalos nesse diretório, leia a documentação na wiki: FirstnameNamePosition=Posição do Nome/Sobrenome -DescWeather=As imagens a seguir será mostrado no painel quando o número de ações final atingir os seguintes valores: -KeyForWebServicesAccess=A chave para usar Web Services (parâmetro "dolibarrkey" em webservices) -TestSubmitForm=Formulário teste de entrada -ThisForceAlsoTheme=Usando este gestor de menu também utilizará seu próprio tema independente da escolha do usuário. Este gestor de menu também é especializado para smartphones que não funcionam em todos smartphones. Use outro gestor de menu se você encontrar problemas no seu. -ThemeDir=Diretório de Skins -ConnectionTimeout=Tempo de conexão esgotado -ResponseTimeout=Tempo de resposta esgotado -SmsTestMessage=Mensagem de teste a partir de __ para __ PHONEFROM__ PHONETO__ -ModuleMustBeEnabledFirst=Módulo deve ser ativado antes de usar este recurso. -SecurityToken=Chave para URLs seguras -NoSmsEngine=No SMS gerente disponível remetente. Gerente de SMS do remetente não são instalados com a distribuição padrão (porque depende de um fornecedor externo), mas você pode encontrar em alguns. -PDFDesc=Você pode definir cada uma das opções globais relacionadas com a geração de PDF -PDFAddressForging=Regras de estabelecimento de caixas de endereço -HideAnyVATInformationOnPDF=Esconder todas as informações relativas ao IVA em PDF gerados -HideDescOnPDF=Esconder descrição dos produtos em PDF gerados -HideRefOnPDF=Esconder ref. dos produtos em PDF gerados -HideDetailsOnPDF=Ocultar artigos linhas detalhes sobre PDF gerado -UrlGenerationParameters=Parâmetros para proteger URLs -SecurityTokenIsUnique=Use um parâmetro SecureKey exclusivo para cada URL -EnterRefToBuildUrl=Digite referência para o objeto -GetSecuredUrl=Obter URL calculado -ButtonHideUnauthorized=Ocultar botões para ações não autorizadas em vez de mostrar os botões com deficiência -OldVATRates=Taxa de VAt anterior -NewVATRates=Nova taxa do VAT -PriceBaseTypeToChange=Modificar sobre os preços com valor de referência de base definida em -MassConvert=Inicie a conversão em massa -Float=Flutuar -Boolean=Booleano (Caixa de seleção) -ExtrafieldSelect =Selecionar lista +DescWeather=As seguintes imagens serão mostradas no painel quando o número de ações tardias alcançar os seguintes valores: +KeyForWebServicesAccess=Chave para usar o Serviços Web (parâmetro "dolibarrkey" no serviço web) +TestSubmitForm=Teste de entrada de formulário +ThisForceAlsoTheme=Usando esse gerenciador de menus e também usando seu próprio tema qualquer que seja a sua escolha. Além disso se o gerenciador de menus especializado em smartphone não funcionar em todos os smartphones. Use outro gerenciador de menus se tiver problemas com o seu. +ThemeDir=Diretórios de Skins +ConnectionTimeout=Tempo Esgotádo de Conexão +ResponseTimeout=Tempo de Resposta Esgotado +SmsTestMessage=Mensagem Teste de __PHONEFROM__ para __PHONETO__ +ModuleMustBeEnabledFirst=Módulo %s precisa ser ativado antes de usar essas funções. +SecurityToken=Chave para as URLs de segurança +NoSmsEngine=Sem gestor de envido de SMS disponível. Por default o gestor de envio de SMS não vêm instalado (porque depende de um fornecedor externo) mas você pode achar um em %s +PDFDesc=Você pode configurar cada opção global relacionada com geração de PDF +PDFAddressForging=Regras para forjar caixas de endereços +HideAnyVATInformationOnPDF=Esconder todas as informações relacionadas com ICMS na geração de PDF +HideDescOnPDF=Esconder todas as descrições de produto na geração de PDF +HideRefOnPDF=Esconder ref. dos produtos na geração de PDF +HideDetailsOnPDF=Esconder a linha de detalhes dos produtos na geração de PDF +UrlGenerationParameters=Parâmetros para URLs de segurança +SecurityTokenIsUnique=Usar um único parâmetro na chave de segurança para cada URL +EnterRefToBuildUrl=Entre com a referência do objeto %s +GetSecuredUrl=Conseguir URL calculada +ButtonHideUnauthorized=Esconder botões não autorizados ao invés de mostralos desabilitados +OldVATRates=Velha taxa de ICMS +NewVATRates=Nova taxa de ICMS +PriceBaseTypeToChange=Modificar os preços com base no valor de referência defino em +MassConvert=Lançar converções massivas +TextLong=Texto Longo +DateAndTime=Data e Hora +Boolean=Boolean +ExtrafieldSelect =Selecione lista ExtrafieldSelectList =Selecione da tabela -ExtrafieldCheckBox=Caixa de seleção -ExtrafieldRadio=Botão de opção +ExtrafieldRadio=Botão de Radio ExtrafieldCheckBoxFromList=Caixa de seleção da tabela ExtrafieldLink=Link para um objeto -ExtrafieldParamHelpselect=Lista de parâmetros tem que ser como chave, valor por exemplo: 1, valor1 2, valor2 < 3, value3 ... A fim de ter a lista dependendo outro: 1, valor1 | parent_list_code: parent_key 2, valor2 | parent_list_code: parent_key -ExtrafieldParamHelpcheckbox=Lista de parâmetros tem que ser como chave, valor

por exemplo:
1, valor1
2, valor2
3, value3
... -ExtrafieldParamHelpradio=Lista de parâmetros tem que ser como chave, valor por exemplo: 1, valor 2, valor2 1 3, value3 ... -ExtrafieldParamHelpsellist=Lista Parâmetros vem de uma tabela
Sintaxe: table_name: label_field: id_field :: filtro
Exemplo: c_typent: libelle: id :: filtro

filtro pode ser um teste simples (por exemplo, ativo = 1) para exibir apenas o valor ativo
se você deseja filtrar extrafields usar syntaxt extra.fieldcode = ... (onde código de campo é o código de extrafield)

A fim de ter a lista dependendo outro:
c_typent: libelle: id: parent_list_code | parent_column: Filtro -LibraryToBuildPDF=Biblioteca utilizada para criar o PDF -WarningUsingFPDF=Atenção: Seu conf.php contém dolibarr_pdf_force_fpdf directiva = 1. Isto significa que você usar a biblioteca FPDF para gerar arquivos PDF. Esta biblioteca é velho e não suporta um monte de recursos (Unicode, a transparência da imagem, cirílicos, árabes e asiáticos, ...), por isso podem ocorrer erros durante a geração de PDF.
Para resolver isso e ter um apoio total de geração de PDF, faça o download da biblioteca TCPDF , em seguida, comentar ou remover a linha $ dolibarr_pdf_force_fpdf = 1, e adicione ao invés $ dolibarr_lib_TCPDF_PATH = 'path_to_TCPDF_dir' -LocalTaxDesc=Alguns países aplicam impostos 2 ou 3 em cada linha da fatura. Se este for o caso, escolha o tipo de segundo e terceiro imposto e sua taxa. Tipo de possíveis são:
1: impostos locais, aplicar sobre produtos e serviços sem IVA (localtax é calculada sobre o montante sem impostos)
2: impostos locais, aplicadas aos produtos e serviços, incluindo IVA (localtax é calculada sobre o montante do imposto + principal)
3: impostos locais, aplicar em produtos sem IVA (localtax é calculada sobre o montante sem impostos)
4: impostos locais, aplicadas aos produtos, incluindo o IVA (localtax é calculada sobre o montante + iva principal)
5: impostos locais, aplicar em serviços sem IVA (localtax é calculada sobre o montante sem impostos)
6: impostos locais, aplicar sobre os serviços, incluindo o IVA (localtax é calculada sobre o montante + imposto) -SMS=Mensagem de texto -LinkToTestClickToDial=Digite um número de telefone para ligar para mostrar um link para testar a url ClickToDial para o usuário% s -LinkToTest=Link clicável gerado para o usuário% s (clique número de telefone para testar) -KeepEmptyToUseDefault=Manter em branco para usar o valor padrão -DefaultLink=Link padrão -ValueOverwrittenByUserSetup=Atenção, este valor pode ser substituído por configuração específica do usuário (cada usuário pode definir sua própria url de clicktodial) +ExtrafieldParamHelpselect=Lista de parâmetros tem que ser tipo chave,valor

Por exemplo:
1,valor1
2,valor2
3,valor3
...

A ordem da lista tem que depender da outra:
1,valor1|parent_list_code:parent_key
2,valor2|parent_list_code:parent_key +ExtrafieldParamHelpcheckbox=Lista de parâmetros tem que ser tipo chave,valor

por exemplo:
1,valor1
2,valor2
3,valor3
... +ExtrafieldParamHelpradio=Lista de parâmetros tem que ser do tipo chave,valor

por exemplo:
1,valor1
2,valor2
3,valor3
... +ExtrafieldParamHelpsellist=Lista de parâmetros tem que ser do tipo tabela

por exemplo:
c_typent:libelle:id

A ordem da lista tem que depender da outra:
c_typent:libelle:id:parent_list_code|parent_column +WarningUsingFPDF=Aviso: Sua conf.php Contém diretrize dolibarr_pdf_force_fpdf=1. Isso significa que você usa a biblioteca FPDF para gerar arquivos em PDF. Essa biblioteca é velha e não suporta muitas novas funções (Unicode, imagem transparente, cyrillic, línguas arábicas e asiáticas,...), portanto pode ocorrer alguns erros durante a geração de PDF.
Para corrigir esse problema e ter todo o suporte na geração de PDF, baixe Biblioteca TCPDF, então comente ou remova essa linha $dolibarr_pdf_force_fpdf=1, e adicione essa $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' +LocalTaxDesc=Alguns paises aplicam de 2 a 3 taxas em cada linha de fatura. Se for esse caso, escolha o tipo de segunda e terceira taxa. Os possíveis tipos são:
1 : Taxa local aplicam em produtos e serviços sem ICMS (ICMS não é aplicada em taxa local)
2 : Taxa local aplicam em produtos e serviços antes do ICMS (ICMS é calculado no montante + taxa local)
3 : Taxa local aplicam em produtos sem o ICMS (ICMS não é aplicada na taxa local)
4 : Taxa local aplicam nos produtos antes do ICMS (ICMS é calculado no montante + taxa local)
5 : Taxa local aplicam no serviço sem o ICMS (ICMS não é aplicado em taxa local)
6 : Taxa local aplicam em serviços antes do ICMS (ICMS é calculado no montante + taxa local) +LinkToTestClickToDial=Entre com um número telefônico para chamar e mostrar um link que testar a URL CliqueParaDiscar para usuário %s +RefreshPhoneLink=Refrescar link +LinkToTest=Clique no link gerado pelo usuário %s (clique no número telefônico para testar) +KeepEmptyToUseDefault=Deixe em branco para usar o valor padrão(default) +DefaultLink=Link padrão(default) +ValueOverwrittenByUserSetup=Aviso, esse valor pode ser substituido pela configuração especifícada pelo usuário (cada usuário pode ter seu propria URL CliqueParaDiscar) ExternalModule=Módulo externo - Instalado no diretório BarcodeInitForThirdparties=Inicialização de código de barras em massa para clientes BarcodeInitForProductsOrServices=Inicialização de código de barras em massa ou redefinir de produtos ou serviços @@ -318,184 +355,259 @@ ConfirmEraseAllCurrentBarCode=Tem certeza de que deseja apagar todos os valores AllBarcodeReset=Todos os valores de código de barras foram removidas NoBarcodeNumberingTemplateDefined=Nenhum modelo de numeração de código de barras habilitado para configuração do módulo de código de barras. NoRecordWithoutBarcodeDefined=Sem registro, sem valor de código de barras definido. -Module0Name=Usuários e Grupos -Module0Desc=Administração de Usuários e Grupos -Module1Name=Fornecedores -Module1Desc=Administração de Fornecedores (Empresas, Particulares) e Contatos -Module2Desc=Administração comercial -Module10Desc=Administração simples da Contabilidade (repartição das receitas e pagamentos) -Module20Desc=Administração de Orçamentos/Propostas comerciais -Module22Desc=Administração e envio de E-Mails massivos -Module23Desc=Acompanhamento do consumo de energias -Module25Desc=Administração de pedidos de clientes -Module30Name=Faturas e Recibos -Module30Desc=Administração de faturas e recibos de clientes. Administração de faturas de Fornecedores -Module40Desc=Administração de Fornecedores -Module49Desc=Administração de Editores -Module50Desc=Administração de produtos -Module51Name=Correspondência em massa +Module0Name=Usuários & Grupos +Module0Desc=Gestor de Usuários e Grupos +Module1Desc=Gestor de Terceiros (Cliente e Fornecedor) e Contatos +Module2Desc=Gestor Comercial +Module10Desc=Relatório de Contabilidade Simples (jornais, rotação de estoque) baseado no conteúdo do banco de dados. +Module20Desc=Gestor de Orçamentos +Module22Name=E-Mails Massivos +Module22Desc=Envio de E-Mails Massivos (spam) +Module23Desc=Monitoramento de Consumo de Energia +Module25Name=Pedidos de Clientes +Module25Desc=Gestor de Pedidos de Clientes +Module30Name=Faturas +Module30Desc=Gestor de Faturas e Notas de Créditos para Clientes. Gestor de faturas para Fornecedores +Module40Desc=Gestor de Fornecedores e Compra (Pedidos e Faturas) +Module42Desc=Facilidades de Log (arquivos, syslog, ...) +Module49Desc=Gestor de Editores +Module50Desc=Gestor de Produtos +Module51Name=Cartas Massivos Module51Desc=Gestão de correspondência do massa -Module52Name=Estoques de produtos -Module52Desc=Administração de estoques de produtos -Module53Desc=Administração de serviços -Module54Name=Contratos/Assinaturas -Module54Desc=Gerenciamento de contratos (serviços ou assinaturas recorrentes) -Module55Name=Códigos de barra -Module55Desc=Administração dos códigos de barra +Module52Name=Estoques +Module52Desc=Gestor de Estoques +Module53Desc=Gestor de Serviços +Module54Name=Contratos +Module54Desc=Gestor de Contratos +Module55Name=Códigos de Barra +Module55Desc=Gestor de Códigos de Barra Module56Name=Telefonia -Module56Desc=Administração da telefonia -Module57Name=Débitos Diretos -Module57Desc=As ordens permanentes e gestão de retirada. Também inclui geração de arquivo SEPA para países europeus. -Module59Desc=Adicione função para gerar uma conta Bookmark4u desde uma conta do ERP -Module70Desc=Administração de Intervenções -Module75Name=Notas de despesas e deslocamentos -Module75Desc=Administração das notas de despesas e deslocamentos -Module80Desc=Administração de Expedições e Recepções -Module85Desc=Administração das contas financeiras de tipo contas bancarias, postais o efetivo -Module100Name=Site externo -Module100Desc=Este módulo inclui um web site ou página externa em menus Dolibarr e vê-lo em um quadro Dolibarr -Module105Name=Mailman e SPIP -Module105Desc=Mailman ou interface SPIP para o módulo membro -Module200Desc=sincronização com um anuário LDAP -Module310Desc=Administração de Membros de uma associação -Module330Desc=Administração de Favoritos -Module400Name=Projetos/Oportunidades/Contatos -Module400Desc=Gerenciamento de Projetos, oportunidades ou contatos. Você pode associar qualquer elemento (invoice, ordem, propostas, intervenções, etc...) para um projeto e ter uma visão transversal da visualização de projeto. -Module410Desc=Interface com calendário Webcalendar -Module500Name=Despesas especiais -Module500Desc=Gestão de despesas especiais (impostos, contribuições sociais ou fiscais, dividendos) +Module56Desc=Integração Telefônica +Module57Name=Débitos Automáticos +Module57Desc=Gestor de Débitos Automáticos e Retiradas +Module58Name=CliqueParaDiscarl +Module58Desc=Integração do Sistema CliqueParaDiscar +Module59Desc=Adicione uma função para gerar uma conta Bookmark4u de uma conta Dolibarr +Module70Desc=Gestor de Intervenções +Module75Name=Despesas e Notas de Viagem +Module75Desc=Gestor de Despesas e Notas de Viagem. Administração das notas de despesas e deslocamentos +Module80Name=Fretes +Module80Desc=Gestor de Fretes e Carregamentos +Module85Desc=Gestor de Bancos e Caixas +Module100Desc=Incluir seu site no menu superior do Dolibarr +Module105Name=Carteiro e SPIP +Module105Desc=Carteiro ou Interface SPIP para Módulo MembroMailman or SPIP interface for member module +Module200Desc=Diretório de sincronização do LDAP +Module240Name=Exportações de Dados +Module240Desc=Ferramenta de exportação dos dados do Dolibarr (com assistência) +Module250Name=Importação de Dados +Module250Desc=Ferramenta de importação de dados para o Dolibarr (com assistência) +Module310Desc=Gestor de Associação de Membros +Module320Desc=Adiciona um RSS feed dentro das páginas de tela do Dolibarr +Module330Name=Marcadores de Página +Module330Desc=Gestor de Marcadores de Página +Module400Name=Projetos +Module400Desc=Gestor de Projetos dentro de outros módulos +Module410Name=WebCalendário +Module410Desc=Integração do WebCalendário +Module500Name=Taxas, Contribuições Sociais e Dividendos +Module500Desc=Gestor Taxas, Contribuições Sociais e Dividentos Module510Desc=Gestão de funcionários salários e pagamentos Module520Name=Empréstimo Module520Desc=Gestão dos empréstimos -Module600Desc=Enviar notificação via EMail para terceiros sobre algums eventos do Dolibarr ( configurado para cada terceiro) -Module700Desc=Administração de Bolsas +Module600Desc=Envia notificações pelo email em alguns eventos de negócio para os contatos de terceiros +Module700Name=Doações +Module700Desc=Gestor de Doações Module770Name=Relatórios de despesas Module770Desc=Gestão e reivindicação de relatórios de despesas (transporte, refeição, ...) Module1120Name=Fornecedor - proposta comercial Module1120Desc=Pedido fornecedor - proposta comercial e preços -Module1200Desc=Interface com o sistema de seguimento de incidências Mantis +Module1200Desc=Integração Mantis Module1400Name=Contabilidade -Module1400Desc=Gestão de Contabilidade (partes duplas) +Module1400Desc=Gestor de Contabilidade (duas partes) Module1520Name=Geração de Documentos Module1520Desc=Geração de documentos via e-mail em massa -Module1780Name=Tags / Categorias -Module1780Desc=Criar tags / categoria (produtos, clientes, fornecedores, contatos ou membros) +Module1780Name=Categorias +Module1780Desc=Gestor de Categorias (produtos, fornecedores e clientes) Module2000Name=Editor WYSIWYG -Module2000Desc=Permitir editar alguma área de texto usando um editor avançado +Module2000Desc=Permite editar algumas áreas de texto usando um editor avançado Module2200Name=Preços dinâmicos Module2200Desc=Habilitar o uso de expressões matemáticas para os preços -Module2300Desc=Gerenciamento de tarefas agendadas -Module2400Desc=Administração da agenda e das ações -Module2500Name=Administração Eletrônica de Documentos -Module2600Name=API de serviços (Web Services SOAP) -Module2600Desc=Permitir que os serviços da API servidor SOAP Dolibarr fornecendo +Module2300Desc=Gestor de Tarefas Agendadas +Module2400Name=Agenda Eletrônica +Module2400Desc=Agenda, Eventos e Tarefas +Module2500Name=Arquivos de Documentos Eletrônicos +Module2500Desc=Salve, compartilhe documentos e autorganiza os próprios docs gerados no Dolibarr +Module2600Name=Serviços Web +Module2600Desc=Ativa o servidor de serviços web do Dolibarr Module2610Name=API de serviços (Web services REST) Module2610Desc=Permitir que o servidor prestação de serviços de API REST do Dolibarr Module2650Name=WebServices (cliente) Module2650Desc=Habilitar o webservices do Dolibarr (pode ser usado para empurrar de dados / pedidos de servidores externos. Ordens Fornecedor suporte apenas para o momento) -Module2700Name=Sobrescrito -Module2700Desc=Usar o serviço on-line Gravatar (www.gravatar.com) para mostrar fotos de usuários / membros (que se encontra com os seus e-mails). Precisa de um acesso à Internet -Module2800Desc=Cliente de FTP -Module2900Desc=GeoIP Maxmind conversões capacidades +Module2700Desc=Usar serviço online do Gravatar (www.gravatar.com) para mostrar foto de usuários/membros (achado pelos emails deles). Precisa de acesso a internet +Module2900Desc=Capacidade de conversão com o GeoIP Maxmind Module3100Desc=Adicionar um botão do Skype no cartão de adeptos / terceiros / contatos -Module5000Name=Multi-Empresa -Module5000Desc=Permite-lhe gerenciar várias empresas -Module6000Desc=Gestão de fluxo de trabalho -Module20000Name=Sair da configuração de pedidos +Module5000Name=Multi-Empresas +Module5000Desc=Permite gerenciar varias empresas +Module6000Desc=Gestor de Fluxo de Trabalho +Module20000Name=Folgas e Ferias +Module20000Desc=Declare e acompanhe a folga dos colaboradores Module39000Name=Lote do produto Module39000Desc=Lote ou número de serie, para compra e venda administrado produtos -Module50000Desc=Módulo para oferecer uma página de pagamento on-line por cartão de crédito com PayBox -Module50100Desc=Caixa registradora -Module50200Desc=Módulo para oferecer uma página de pagamento on-line por cartão de crédito com Paypal +Module50000Desc=Módulo oferece pagamento online via cartão de crédito com PayBox +Module50100Name=Ponto de Vendas +Module50100Desc=Módulo de Ponto de Vendas +Module50200Desc=Módulo que oferece pagamento online via cartão de crédito com Paypal Module50400Name=Contabilidade (avançada) Module50400Desc=Gestão de Contabilidade (partes duplas) -Module54000Desc=Impressão direta (sem abrir os documentos) usando a interface Cups IPP (Impressora deve ser visível a partir do servidor, e CUPS deve ser instaladas no servidor). -Module59000Name=Margems -Module59000Desc=Módulo para gerenciar as margens -Module60000Desc=Módulo para gerenciar comissões -Permission11=Consultar faturas -Permission12=Criar/Modificar faturas -Permission13=Faturas de clientes Unvalidate -Permission14=Confirmar faturas -Permission15=Enviar faturas por correio -Permission16=Emitir pagamentos de faturas -Permission19=Eliminar faturas -Permission41=Leia projetos e tarefas (projeto compartilhado e projetos que estou contato para). Também é possível inserir tempo consumido nas tarefas atribuídas (timesheet) -Permission42=Criar/Modificar projetos -Permission44=Eliminar projetos -Permission75=Tipos de configuração de adesão -Permission91=Leia impostos e IVA social ou fiscal -Permission92=Criar / modificar os impostos e IVA social ou fiscal -Permission93=Excluir impostos e IVA social ou fiscal -Permission94=Exportação de impostos sociais ou fiscais -Permission101=Consultar Expedições -Permission102=Criar/Modificar Expedições -Permission104=Confirmar Expedições -Permission106=Envios de exportação -Permission109=Eliminar Expedições -Permission112=Criar/Modificar quantidade/eliminar registros bancários -Permission113=Instalação de contas financeiras (criar, gerenciar as categorias) -Permission115=Exportar transações e extratos -Permission116=Captar transferências entre contas -Permission117=Gerenciar envio de cheques -Permission141=Leia todos os projetos e tarefas (também projetos privados não estou em contato para) -Permission142=Criar / modificar todos os projetos e tarefas (também projetos privados não estou a entrar em contato para) -Permission144=Exclua todos os projetos e tarefas (também projetos privados não estou entrar em contato para) -Permission146=Consultar Prestadores -Permission151=Consultar Débitos Diretos -Permission152=Configurar Débitos Diretos -Permission153=Consultar Débitos Diretos -Permission154=Crédito / recusar ordens permanentes recibos -Permission161=Leia contratos / assinaturas -Permission162=Criar / modificar contratos / assinaturas -Permission163=Ativar um serviço / assinatura de um contrato -Permission164=Desativar um serviço / assinatura de um contrato -Permission165=Excluir contratos / assinaturas -Permission171=Leia viagens e despesas (próprios e de seus subordinados) -Permission172=Criar/Modificar viagens e gastos -Permission173=Remover viagens e gastos +Module54000Name=ImprimirIPP +Module54000Desc=Imprima via Cups IPP +Module55000Name=Pesquisa Aberta +Module55000Desc=Módulo que integra pesquisa (tipo: Doodle, Studs, Rdvz, ...) +Module59000Desc=Módulo para gerenciar margens +Module60000Name=Comissão +Module60000Desc=Módulo para gerenciar comissão +Permission11=Ler Faturas de Clientes +Permission12=Criar/Modificar Faturas de Clientes +Permission13=Faturas de Clientes Não-Validadas +Permission14=Faturas de Clientes Validadas +Permission15=Enviar Faturas de Clientes por E-Mail +Permission16=Criar Pagamentos para Faturas de Clientes +Permission19=Deletar Faturas de Clientes +Permission21=Ler Orçamentos +Permission24=Validar Orçamentos +Permission28=Exportar Orçamentos +Permission31=Ler Produtos +Permission32=Criar/Modificar Produtos +Permission34=Deletar Produtos +Permission36=Ver/Gerenciar Produtos Ocultos +Permission41=Ler Projetos (Projetos Compartilhados e Projetos que eu contratei para) +Permission42=Criar/Modificar Projetos (Projetos Compartilhados e Projetos que eu contratei para) +Permission44=Deletar Projetos (Projetos Compartilhados e Projetos que eu contratei para) +Permission61=Ler Intervenções +Permission64=Deletar Intervenções +Permission71=Ler Membros +Permission74=Deletar Membros +Permission75=Configurar tipos e atributos dos Membros +Permission76=Exportar Dados +Permission78=Ler Assinaturas +Permission79=Criar/Modificar Assinaturas +Permission81=Ler Pedidos de Clientes +Permission82=Criar/Modificar Pedidos de Clientes +Permission84=Validar Pedidos de Clientes +Permission86=Enviar Pedidos de Clientes +Permission87=Fechar Pedidos de Clientes +Permission88=Cancelar Pedidos de Clientes +Permission89=Deletar Pedidos de Clientes +Permission91=Ler Gasto +Permission92=Criar/Modificar Gasto +Permission93=Deletar Gasto +Permission94=Exportar Gasto +Permission95=Ler Relátorios +Permission101=Ler Envios +Permission102=Criar/Modificar Envios +Permission104=Validar Envios +Permission106=Exportar Envios +Permission109=Deletar Envios +Permission111=Ler Contas Financeiras +Permission112=Criar/Modificar/Deletar e Comparar Transações +Permission113=Configurar Contas Financeiras (criar, gerenciar categorias) +Permission114=Consolidar Transações +Permission115=Exportar Transações e Extratos Bancários +Permission116=Transferência entre Contas +Permission117=Gerenciar Envios de Cheques +Permission121=Ler Terceiros Vinculado ao Usuário +Permission122=Criar/Modificar Terceiros +Permission125=Deletar Terceiros +Permission126=Exportar Terceiros +Permission141=Ler Projetos (Projetos Compartilhados e Projetos que eu contratei para) +Permission142=Criar/Modificar Projetos (Projetos Compartilhados e Projetos que eu contratei para) +Permission144=Deletar Projetos (Projetos Compartilhados e Projetos que eu contratei para) +Permission146=Ler Provedores +Permission147=Ler Estatísticas +Permission151=Ler Pagamentos Regulares +Permission152=Criar/Modificar Pagamentos Regulares +Permission153=Transmitir Recibos para Pagamentos Regulares +Permission154=Creditar/Recusar Recibos para Pagamentos Regulares +Permission161=Ler Contratos +Permission162=Criar/Modificar Contratos +Permission163=Ativar Serviço de um Contrato +Permission164=Desabilitar Serviço de um Contrato +Permission165=Deletar Contrato +Permission171=Ler Viagens +Permission172=Criar/Modificar Viagens +Permission173=Deletar Viagens Permission174=Leia todas as viagens e despesas -Permission178=Exportar viagens e gastos -Permission185=Ordenar ou cancelar pedidos a fornecedores -Permission194=Consultar Linhas da Lagura de Banda -Permission205=Gerenciar Ligações +Permission178=Exportar Viagens +Permission180=Ler Fornecedores +Permission181=Ler Pedidos para Fornecedores +Permission182=Criar/Modificar Pedidos para Fornecedores +Permission183=Validar Pedidos para Fornecedores +Permission184=Aprovar Pedidos para Fornecedores +Permission185=Realizar Pedidos para Fornecedores +Permission186=Aceitar Pedidos para Fornecedores +Permission187=Fechar Pedidos para Fornecedores +Permission188=Cancelar Pedidos para Fornecedores +Permission194=Ler as Linhas de Bandwith +Permission202=Criar Conexões ADSL +Permission203=Pedir Pedidos de Conexões +Permission204=Pedir Conexões +Permission205=Gerenciar Conexões +Permission206=Ler Conexões +Permission211=Ler Telefones +Permission212=Linhas de Pedidos Permission213=Ativar Linha -Permission222=Criar/Modificar E-Mails (assunto, destinatários, etc.) -Permission223=Confirmar E-Mails (permite o envio) -Permission237=Exibir os destinatários e as informações -Permission238=Envio manual de e-mails -Permission239=Deletar e-mail após o envio -Permission241=Consultar categorias -Permission242=Criar/Modificar categorias -Permission243=Eliminar categorias -Permission244=Ver conteúdo de categorias ocultas -Permission251=Consultar Outros Usuário, grupos e permissões -Permission252=Criar/Modificar outros usuário, grupos e permissões -Permission253=Modificar a senha de outros usuário -PermissionAdvanced253=Criar ou modificar usuários internos ou externos e suas permissões -Permission254=Eliminar ou desativar outros usuário -Permission255=Criar/Modificar a sua propia informação de usuário -Permission256=Modificar a sua propia senha -Permission262=Consultar todas as empresas (somente Usuários internos. Os externos estão limitados a eles mesmos) +Permission215=Configurar Provedores +Permission221=Ler E-Mails +Permission222=Criar/Modificar E-Mails (assunto, destinatários...) +Permission223=Validar E-Mails (permite enviar) +Permission229=Deletar E-Mails +Permission237=Visualisar Destinatário e Informações +Permission238=Enviar Cartas Manualmente +Permission239=Deletar Cartas depois de Validado ou Enviado +Permission241=Ler Categorias +Permission242=Criar/Modificar Categorias +Permission243=Deletar categorias +Permission244=Visualisar o Conteúdo de Categorias Ocultas +Permission251=Ler Outros Usuários e Grupos +PermissionAdvanced251=Ler Outros Usuários +Permission252=Ler Permissões de Outros Usuários +Permission253=Criar/Modificar Outros Usuários, Grupos e Permissões +PermissionAdvanced253=Criar/Modificar Usuários internos/externos e suas Permissões +Permission254=Criar/Modificar Usuários Externos +Permission255=Modificar Senha de Outros Usuários +Permission256=Deletar ou Desativar Outros Usuários +Permission262=Acesso Extendido para Todos os Terceiros (não apenas aqueles usuários vinculados). Não é efetivo para usuários externos (sempre são limitados a eles mesmos) Permission272=Ler Faturas Permission273=Emitir Fatura -Permission281=Consultar contatos -Permission282=Criar/Modificar contatos -Permission283=Eliminar contatos -Permission286=Exportar os contatos -Permission312=Atribuir serviço / subscrição para contrair -Permission341=Ler suas próprias permissões -Permission342=Criar ou modificar informações do próprio usuário -Permission343=Modificar sua senha -Permission351=Ler grupos -Permission352=Ler permissões do grupo -Permission353=Criar ou modificar grupos -Permission354=Excluir ou desabilitar grupos -Permission358=Exportar usuários -Permission401=Consultar ativos -Permission402=Criar/Modificar ativos -Permission403=Confirmar ativos -Permission404=Eliminar ativos +Permission281=Ler Contatos +Permission282=Criar/Modificar Contatos +Permission283=Deletar Contatos +Permission286=Exportar Contatos +Permission291=Ler Tarifas +Permission292=Definir Permissões das Tarifas +Permission293=Modificar Tarifas de Clientes +Permission300=Ler Código de Barras +Permission301=Criar/Modificar Códigos de Barras +Permission302=Deletar Código de Barras +Permission311=Ler Serviços +Permission312=Atribuir Serviço no Contrato +Permission331=Ler Marcadores de Página +Permission332=Criar/Modificar Marcadores de Página +Permission333=Deletar Marcadores de Página +Permission341=Ler suas Próprias Permissões +Permission342=Criar/Modificar Informações do seu Próprio Usuário +Permission343=Modificar Própria Senha +Permission344=Modificar Suas Próprias Permissões +Permission351=Ler Grupos +Permission352=Ler Permissões de Grupos +Permission353=Criar/Modificar Grupos +Permission354=Deletar ou Desabilitar Grupos +Permission358=Deletar Usuários +Permission401=Ler Descontos +Permission402=Criar/Modificar Descontos +Permission403=Validar Descontos +Permission404=Deletar Descontos Permission510=Leia Salários Permission512=Criar / modificar salários Permission514=Excluir salários @@ -505,13 +617,14 @@ Permission522=Criar / modificar empréstimos Permission524=Excluir empréstimos Permission525=Acesso a Calculadora de empréstimo Permission527=Exportação de Empréstimos -Permission532=Criar ou modificar serviços -Permission534=Excluir serviços -Permission536=Visualizar ou gerenciar serviços ocultos -Permission538=Exportar serviços -Permission701=Criar/Modificar Bolsas -Permission702=Eliminar Bolsas -Permission703=Excluir doações +Permission531=Ler Serviços +Permission532=Criar/Modificar Serviços +Permission534=Deletar Serviços +Permission536=Ver/gerenciar Serviços Ocultos +Permission538=Exportar Serviços +Permission701=Ler Doações +Permission702=Criar/Modificar Doações +Permission703=Deletar Doações Permission771=Leia relatórios de despesas (próprios e de seus subordinados) Permission772=Criar / modificar relatórios de despesas Permission773=Excluir relatórios de despesas @@ -519,46 +632,57 @@ Permission774=Leia todos os relatórios de despesas (mesmo para o utilizadores N Permission775=Aprovar os relatórios de despesas Permission776=Relatórios de despesas pagas Permission779=Exportar - Relatórios de despesas -Permission1001=Consultar estoques -Permission1002=Criar / modificar armazéns -Permission1003=Excluir Armazéns -Permission1004=Consultar movimentos de estoque -Permission1005=Criar/Modificar movimentos de estoque -Permission1101=Consultar ordens de envio -Permission1102=criar/modificar ordens de envio -Permission1104=Confirmar ordem de envio -Permission1109=Eliminar ordem de envio +Permission1001=Ler Estoques +Permission1002=Criar/Modificar Estoques +Permission1003=Deletar Estoques +Permission1004=Ler Movimentação de Estoque +Permission1005=Criar/Modificar Movimentação de Estoque +Permission1101=Ler Pedidos de Entrega +Permission1102=Criar/Modificar Pedidos de Entrega +Permission1104=Validar Pedidos de Entrega +Permission1109=Deletar Pedidos de Entrega +Permission1181=Ler Fornecedores +Permission1182=Ler Pedidos para Fornecedor +Permission1183=Criar/Modificar Pedidos para Fornecedor +Permission1184=Validar Pedidos para Fornecedor +Permission1185=Aprovar Pedidos para Fornecedor +Permission1186=Realizar Pedidos para Fornecedor +Permission1187=Confirmar Recebimento de Pedidos para Fornecedore +Permission1188=Deletar Pedidos para Fornecedor Permission1190=Aprovar (segunda) de aprovação dos pedidos a fornecedores -Permission1231=Consultar faturas de Fornecedores -Permission1232=Criar faturas de Fornecedores -Permission1233=Confirmar faturas de Fornecedores -Permission1234=Eliminar faturas de Fornecedores -Permission1235=Enviar por e-mail faturas de fornecedores -Permission1236=Exportar faturas de Fornecedores, atributos e pagamentos -Permission1237=Pedidos a fornecedores Export e seus detalhes -Permission1251=Execute as importações em massa de dados externos para o banco de dados (carga de dados) -Permission1321=Exportar faturas a clientes, atributos e cobranças -Permission1421=Exportar faturas de clientes e atributos -Permission23001=Leia trabalho Programado -Permission23002=Criar / atualização agendada trabalho -Permission23003=Excluir trabalho agendado -Permission23004=Executar trabalho agendado -Permission2401=Ler ações (eventos ou tarefas) vinculadas na sua conta -Permission2402=Criar/Modificar/Eliminar ações (eventos ou tarefas) vinculadas na sua conta -Permission2403=Consultar ações (acontecimientos ou tarefas) de outros -Permission2411=Leia ações (eventos ou tarefas) de outros -Permission2412=Criar / modificar ações (eventos ou tarefas) de outros -Permission2413=Excluir ações (eventos ou tarefas) de outros -Permission2501=Enviar ou eliminar documentos -Permission2502=Baixar documentos -Permission2515=Configuração de diretorios de documentos -Permission2801=Use cliente FTP em modo de leitura (navegar e baixar apenas) -Permission2802=Use o cliente FTP no modo de escrita (apagar ou fazer upload de arquivos) -Permission50101=Usar ponto de vendas -Permission50202=Importar transacções -Permission54001=Impressão -Permission55001=Leia urnas -Permission55002=Criar / modificar urnas +Permission1201=Conseguir Resultado de uma Exportação +Permission1202=Criar/Modificar uma Exportação +Permission1231=Ler Faturas de Fornecedor +Permission1232=Criar/Modificar Faturas de Fornecedor +Permission1233=Validar Faturas de Fornecedor +Permission1234=Deletar Faturas de Fornecedor +Permission1235=Enviar Faturas de Fornecedor por E-Mail +Permission1236=Exportar Faturas de Fornecedor, Atributos e Pagamentos +Permission1237=Exportar Pedidos de Fornecedor e seus Detalhes +Permission1251=Rodar(run) Importações Massivas de Dados Externos para o Banco de Dados (carregamento de dados) +Permission1321=Exportar Faturas de Clientes, Atributos e Pagamentos +Permission1421=Exportar Pedidos de Clientes e Atributos +Permission23001=Ler Tarefas Agendadas +Permission23002=Criar/Atualizar Tarefas Agendadas +Permission23003=Deletar Tarefas Agendadas +Permission23004=Executar Tarefas Agendadas +Permission2401=Ler Ações (enventos ou tarefas) Vinculado a sua Conta +Permission2402=Criar/Modificar Ações (eventos ou tarefas) Vinculado a sua Conta +Permission2403=Deletar Ações (eventos ou tarefas) Vinculado a sua Conta +Permission2411=Ler Ações (eventos ou tarefas) dos Outros +Permission2412=Criar/Modificar Ações (eventos ou tarefas) dos Outros +Permission2413=Deletar Ações (eventos ou tarefas) dos Outros +Permission2501=Ler/Baixar Documentos +Permission2502=Baixar Documentos +Permission2503=Submeter ou Deletar Documentos +Permission2515=Configurar Diretórios dos Documentos +Permission2801=Usar cliente FTP no modo leitura (somente navegador e baixar) +Permission2802=Usar cliente FTP no modo escrita (deletar ou upload de arquivos) +Permission50101=Usar Ponto de Vendas +Permission50201=Ler Transações +Permission50202=Importar Transações +Permission55001=Ler Pesquisa +Permission55002=Criar/Modificar Pesquisa Permission59001=Leia margens comerciais Permission59002=Definir margens comerciais Permission59003=Leia cada margem do usuário @@ -586,31 +710,33 @@ DictionaryUnits=Unidades DictionaryProspectStatus=Status de Prospecção DictionaryHolidayTypes=Tipo de folhas DictionaryOpportunityStatus=Status oportunidade para projeto / lead -SetupSaved=configuração guardada +SetupSaved=Configurações Salvas BackToDictionaryList=Voltar para a lista de dicionários -VATReceivedOnly=Impostos especiais não faturaveis -VATManagement=Administração ICMS -VATIsUsedDesc=o tipo de ICMS proposto por default em criações de Orçamentos, faturas, pedidos, etc. Responde e a seguinte regra:
sim o vendedor não está sujeito a ICMS, ICMS por default -VATIsNotUsedDesc=o tipo de ICMS proposto por default é 0. Este é o caso de associações, particulares o algunas pequenhas sociedades. -VATIsUsedExampleFR=em Francia, se trata das sociedades u organismos que eligen um regime fiscal general (General simplificado o General normal), regime ao qual se declara o ICMS. -VATIsNotUsedExampleFR=em Francia, se trata de associações exentas de ICMS o sociedades, organismos o profesiones liberales que han eligedo o regime fiscal de módulos (ICMS em franquicia), pagando um ICMS em franquicia sem fazer declaração de ICMS. Esta elecção hace aparecer a anotação "IVA não aplicable - art-293B do CGI" em faturas. +VATReceivedOnly=Taxas especiais não foram cobradas +VATManagement=Gestor de ICMS +VATIsUsedDesc=Quando é criado orçamentos, faturas, pedidos, etc. A taxa de ICMS segue a regra padrão ativa:
Se o produto não está sujeito ao ICMS, então por default=0. Fim da regra.
Se o (país de venda=país de compra), então o ICMS por default=ICMS do produto vendido no país. Fim da regra.
Se a venda ou a compra for na comunidade européia e os bens são transportes de produtos (carro, navio, avião), por default ICMS(vat)=0. Fim da regra.
Se a venda ou a compra for na comunindade européia não for uma empresa, então o ICMS(vat) por default=ICMS(vat) do produto vendido. Fim da regra.
Se a venda ou a compra for na comunidade européia e o comprador é uma empresa, então o ICMS(vat) por default=0. Fim da regra.
Se não for nenhuma das anterios por default ICMS=0. Fim da regra. +VATIsNotUsedDesc=Por default é sugerido ICMS é 0 que é usado nos casos tipo acossiação, pessoas ou pequenas empresas. +VATIsUsedExampleFR=Na França, as empresas ou organizações tem um sistema fiscal real (simplificado real ou normal real). Um sistema no qual o ICMS(vat) é declarado. +VATIsNotUsedExampleFR=Na França, as associações que não declaram ICMS(vat) ou empresas, organizações ou profissionais liberais que tem escolhidos o sistema fiscal de micro empresas (VAT em franquia) e pago uma franquia VAT sem qualquer declaração de ICMS(vat). Está escolha será mostrado com uma refêrencia "Não Aplicado ICMS(vat) - art-293B de CGI" nas faturas. LTRate=Rata -LocalTax1IsUsed=Utilize segundo imposto -LocalTax1IsNotUsed=Não use o segundo imposto -LocalTax1IsUsedDesc=Use um segundo tipo de impostos (excepto o IVA) -LocalTax1IsNotUsedDesc=Não use outro tipo de impostos (excepto o IVA) -LocalTax2IsUsed=Use terceiro imposto -LocalTax2IsNotUsed=Não use terceiro imposto -LocalTax2IsUsedDesc=Use um terceiro tipo de impostos (excepto o VAT) -LocalTax2IsNotUsedDesc=Não use outro tipo de impostos (excepto o VAT) -LocalTax1IsUsedDescES=A taxa de RE por padrão ao criar perspectivas, notas fiscais, ordens etc seguir a regra padrão ativo:
Se te comprador não está sujeito a RE, RP por default = 0. Fim da regra.
Se o comprador está sujeito a RE então o RE por padrão. Fim da regra.
-LocalTax1IsUsedExampleES=Na Espanha, eles são profissionais sujeitos a algumas seções específicas do IAE espanhol. -LocalTax1IsNotUsedExampleES=Na Espanha, eles são profissionais e sociedades e sujeito a determinadas seções do IAE espanhol. -LocalTax2ManagementES=Gestão IRPF -LocalTax2IsUsedDescES=A taxa de RE por padrão ao criar perspectivas, notas fiscais, ordens etc seguir a regra padrão ativo:
Se o vendedor não está sujeito a IRPF, então IRPF por default = 0. Fim da regra.
Se o vendedor é submetido a IRPF, em seguida, o IRPF por padrão. Fim da regra.
-LocalTax2IsNotUsedDescES=Por padrão, o IRPF proposta é 0. Fim da regra. -LocalTax2IsUsedExampleES=Na Espanha, freelancers e profissionais independentes que prestam serviços e empresas que escolheram o sistema fiscal de módulos. -LocalTax2IsNotUsedExampleES=Na Espanha, eles são bussines não sujeitas ao regime fiscal dos módulos. +LocalTax1IsUsed=Utilizar segundo imposto +LocalTax1IsNotUsed=Não utilizar segundo imposto +LocalTax1IsUsedDesc=Utilizar um segundo tipo de imposto (outro que não seja ICMS) +LocalTax1IsNotUsedDesc=Não utilizar outro tipo de imposto (outro que não seja ICMS) +LocalTax2IsUsed=Utilizar terceiro imposto +LocalTax2IsNotUsed=Não utilizar terceiro imposto +LocalTax2IsUsedDesc=Utilizar um terceiro tipo de imposto (outro que não seja ICMS) +LocalTax2IsNotUsedDesc=Não utilizar outro tipo de imposto (outro que não seja ICMS) +LocalTax1ManagementES=Gestor RE +LocalTax1IsUsedDescES=Quando criado orçamentos, faturas, pedidos, etc. A taxa RE segue a regra padrão ativa:
Se o comprador não for sujeito a RE, RE por default=0. Fim da regra.
Se o comprador for sujeito a RE então RE por default. Fim da regra.
+LocalTax1IsNotUsedDescES=Por default é sugerido que RE é 0. Fim da regra. +LocalTax1IsUsedExampleES=Na Espanha eles são profissionais sujeito a alguma seção especifica da IAE espanhola. +LocalTax1IsNotUsedExampleES=Na Espanha eles são proficionais e sócios e sujeito a uma certa seção da IAE espanhola. +LocalTax2ManagementES=Gestor IRPF +LocalTax2IsUsedDescES=Quando criado orçamentos, faturas, pedidos, etc. A taxa RE por default segue a regra padrão ativa:
Se a venda não for sujeita a IRPF, então IRPF por default=0. Fim da regra.
Se a venda é sujeita a IRPF então IRPF por default. Fim da regra.
+LocalTax2IsNotUsedDescES=Por default é sugerido que IRPF é 0. Fim da regra. +LocalTax2IsUsedExampleES=Na Espanha, freelancers e profissionais independentes que oferecem serviços e empresas que tenham escolhidos o módulo de sistema de imposto. +LocalTax2IsNotUsedExampleES=Na Espanha eles são negócios não sujeito ao módulo de sistema de imposto. CalcLocaltax=Relatórios sobre os impostos locais CalcLocaltax1=Vendas - Compras CalcLocaltax1Desc=Relatorios de taxas locais são calculados pela differença entre taxas locais de venda e taxas locais de compra @@ -618,471 +744,579 @@ CalcLocaltax2=Compras CalcLocaltax2Desc=Relatorio de taxas locais e o total de taxas locais nas compras CalcLocaltax3=De vendas CalcLocaltax3Desc=Relatorio de taxas locais e o total de taxas locais de vendas -NbOfDays=N� de Dias +LabelUsedByDefault=Etiqueta usado por default se nenhuma tradução não for encontrado para o código =/ +LabelOnDocuments=Etiqueta no documentos +NbOfDays=Núm de Dias +Offset=Compensar(offset) AlwaysActive=Sempre Ativo -UpdateRequired=Parâmetros sistema necessita de uma atualização. Para atualizar click em aqui. +MenuUpgrade=Upgrade / Extensão +AddExtensionThemeModuleOrOther=Adicionar extensão (tema, módulo, ...) +DocumentRootServer=Diretório raiz do servidor web +DataRootServer=Diretório raiz dos dados +Port=Porta(port) +VirtualServerName=Nome virtual do servidor +PhpConf=Conf. PearPackages=pacotes Pear Browser=Navegador Server=Servidor -DatabaseServer=Hospedeiro do banco de dados -DatabaseUser=Usuário de banco de dados -DatabasePassword=Senha de banco de dados -DatabaseConfiguration=configuração da base de dados -NbOfRecord=N� Reg. -ConstraintsToShowOrNotEntry=Constrangimento para mostrar não menu de entrada -SummarySystem=Resumo da informação de sistemas ERP -SummaryConst=Lista de todos os parâmetros de configuração dolibarr +Database=Banco de Dados +DatabaseServer=Hospedeiro do Banco de Dados +DatabaseName=Nome do Banco de Dados +DatabasePort=Porta do Banco de Dados +DatabaseUser=Usuário do Banco de Dados +DatabasePassword=Senha do Banco de Dados +DatabaseConfiguration=Conf. do Banco de Dados +TableName=Nome de Tabela +TableLineFormat=Formato de linha +NbOfRecord=Núm de gravações +Constraints=Restrições +ConstraintsType=Tipos de Restrições +ConstraintsToShowOrNotEntry=Restrições para mostrar ou não na entrada de menu +AllMustBeOk=Todos esses devem ser checadas +DriverType=Tipo de Driver +SummarySystem=Resumo de informações do sistema +SummaryConst=Lista de todos os parâmetros de configurações do Dolibarr SystemUpdate=Atualização do sistema -SystemSuccessfulyUpdate=a sua sistema atualizou-se corretamente +SystemSuccessfulyUpdate=Seu sistema foi atualizado com sucesso =) +MenuCompanySetup=Empresa MenuNewUser=Novo Usuário -MenuTopManager=Administração do menu superior -MenuLeftManager=Administração do menu esquerdo -MenuManager=Administração do menu -DefaultMenuTopManager=Administração do menu superior -DefaultMenuLeftManager=Administração do menu esquerdo +MenuTopManager=Gestor do menu superior +MenuLeftManager=Gestor do menu esquerdo +MenuManager=Gestor do Menu +MenuSmartphoneManager=Gestor do menu de smartphone +DefaultMenuTopManager=Gestor do menu superior +DefaultMenuLeftManager=Gestor do menu esquerdo +DefaultMenuManager=Gestor padrão de menu +DefaultMenuSmartphoneManager=Gestor do menu de smartphone Skin=Tema Visual -DefaultSkin=Tema visual por default -MaxSizeList=Longuitude máxima de listados -DefaultMaxSizeList=Longuitude máxima de listados por default -DefaultLanguage=Idioma por default a utilizar (código idioma) -EnableMultilangInterface=Ativar interface Multi Idioma -EnableShowLogo=Mostrar logotipo no menu à esquerda +DefaultSkin=Tema visual default +MaxSizeList=Comprimento máximo de lista +DefaultMaxSizeList=Comprimento máximo de lista default +MessageOfDay=Mensagem do dia +MessageLogin=Mensagem da página de login +PermanentLeftSearchForm=Formulário permanente de pesquisa no menu esquerdo +DefaultLanguage=Língua default utilizada (língua do código) +EnableMultilangInterface=Habilitar interface multilíngua +EnableShowLogo=Mostra logo no menu esquerdo EnableHtml5=Ativar Html5 (Desenvolvimento - Apenas disponível no modelo Eldy) -SystemSuccessfulyUpdated=a sua sitema está atualizado +SystemSuccessfulyUpdated=Seu sistema foi atualizado com sucesso =) +CompanyInfo=Informação da empresa +CompanyIds=Identificação da empresa +CompanyName=Nome +CompanyAddress=Endereço +CompanyZip=CEP CompanyTown=Município CompanyObject=Objeto da empresa -Logo=Logotipo -DoNotSuggestPaymentMode=Não sugerenciar -NoActiveBankAccountDefined=Nenhuma conta bancaria ativa definida -BankModuleNotActive=O módulo de contas bancarias não se encontra ativado -ShowBugTrackLink=Mostrar link "%s" -DelayBeforeWarning=Prazo antes de alerta -DelaysBeforeWarning=Prazos antes de alerta -DelaysOfToleranceBeforeWarning=Prazos de tolerância antes de alerta -DelaysOfToleranceDesc=Esta janela permite que você defina os prazos de tolerância antes que um alerta seja reportado na tela com o símbolo %s para cada elemento de atraso. -Delays_MAIN_DELAY_ACTIONS_TODO=Atraso de tolerância (em dias) antes de alerta sobre eventos planejados ainda não realizados -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Atraso de tolerância (em dias) antes de alerta sobre encomendas ainda não processados -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Atraso de tolerância (em dias) antes de alerta sobre fornecedores encomendas ainda não processados -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Atraso de tolerância (em dias) antes de alerta sobre as propostas para fechar -Delays_MAIN_DELAY_PROPALS_TO_BILL=Atraso de tolerância (em dias) antes de alerta sobre as propostas não faturados -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerância de atraso (em dias) antes de alerta sobre serviços para ativar -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerância de atraso (em dias) antes de alerta sobre serviços expirados -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerância de atraso (em dias) antes de alerta em faturas de fornecedores não pagas -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerância de atraso (em dias) antes de alerta nas faturas dos clientes não remunerados -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerância de atraso (em dias) antes de alerta sobre pendente reconciliação bancária -Delays_MAIN_DELAY_MEMBERS=Tolerância de atraso (em dias) antes de alerta sobre taxa de adesão adiada -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerância de atraso (em dias) antes de alerta para cheques depósito para fazer -SetupDescription1=Todas as opções desta área de configuração são opções que permitem configurar a Dolibarr antes de começar a sua utilização. -SetupDescription2=Os 2 Passos indispensáveis da configuração são as 2 primeiras do menu esquerdo: a configuração da empresa/Instituição e a configuração dos módulos: -SetupDescription4=A configuração Módulos é indispensável já que Dolibarr não é um ERP/CRM monolítico, é um conjunto de módulos mais ou menos independente. Depois de ativar os módulos que lhe interessem verificar as suas funcionalidades nos menus de Dolibarr. -SetupDescription5=Outros itens do menu gerenciar parâmetros opcionais. +NoActiveBankAccountDefined=Nenhuma conta bancária ativa está definida +OwnerOfBankAccount=Titular da conta bancária %s +BankModuleNotActive=O módulo de contas bancárias não está habilitado +ShowBugTrackLink=Mostrar link "Reportar bug" +ShowWorkBoard=Mostrar "workbench" na homepage +Delays=Atrasos +DelayBeforeWarning=prazo antes do aviso +DelaysBeforeWarning=prazo antes do aviso +DelaysOfToleranceBeforeWarning=Prazos de tolerância antes do aviso +DelaysOfToleranceDesc=Esta janela permite definir os prazos de tolerância antes que o aviso é reportado na tela com o símbolo %s, sobre cada elemento em atraso. +Delays_MAIN_DELAY_ACTIONS_TODO=Prazo de tolerância (em dias) antes do aviso nos eventos planejados que ainda não foram realizados +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Prazo de tolerância (em dias) antes do aviso nos pedidos que ainda não foram processados +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Prazo de tolerância (em dias) antes do aviso nos pedidos para fornecedores que ainda não foram processados +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Prazo de tolerância (em dias) antes do aviso nos orçamentos que não foram fechados +Delays_MAIN_DELAY_PROPALS_TO_BILL=prazo de tolerância (em dias) antes do aviso nos orçamentos não faturadas +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Prazo de tolerância (em dias) antes do aviso nos serviços para ativar +Delays_MAIN_DELAY_RUNNING_SERVICES=Prazo de tolerância (em dias) antes do aviso nos serviços expirados +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Prazo de tolerância (em dias) antes do aviso para faturas de fornecedores não paga +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Prazo de tolerância (em dias) antes do aviso para faturas de clientes não paga +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Prazo de tolerância (em dias) antes do aviso para reconciliação pendente no banco +Delays_MAIN_DELAY_MEMBERS=Prazo de tolerância (em dias) antes do aviso do atraso da taxa de afiliação +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Prazo de tolerância (em dias) antes do aviso de fazer depósitos de cheques +SetupDescription1=Todos os parâmetros são avaliados na área de configuração permitindo você configurar o Dolibarr antes de começa-lo a usá-lo. +SetupDescription2=Existe duas etapas de configurações importantes, a primeira é no menu esquerdo a configuração da página da Empresa, a segunda é a página de configuração dos módulos: +SetupDescription3=Parâmetros no menu Configuração->Empresa são requeridos porque as informações serão utilizadas pelo Dolibarr (Muito importante para o funcionamento do Dolibarr). +SetupDescription4=Parâmetros no menu Configuração->Módulos São requeridos porque o Dolibarr não é um sistema fixo e sim modular necessitando a ativação dos módulos que atendam a sua necessidade. Após a ativação do módulo as funções irão aparecer no menu. +SetupDescription5=Outros menu precisa entrar com parâmetros opcionais do gestor. +EventsSetup=Conf. dos logs de eventos +LogEvents=Auditoría de segurança dos eventos +InfoDolibarr=Informações Dolibarr InfoBrowser=Infos Navegador -InfoOS=Informações do sistema operacional -InfoWebServer=Informações do Web Server -InfoDatabase=Informações da base de dados -InfoPHP=Informações do PHP +InfoOS=Informações OS +InfoWebServer=Informações servidor web +InfoDatabase=Informações banco de dados +InfoPHP=Informações PHP +InfoPerf=Informações de performasses BrowserName=Nome do navegador BrowserOS=Navegador OS -ListOfSecurityEvents=Listado de eventos de segurança Dolibarr -SecurityEventsPurged=Os eventos de segurança expurgados -LogEventDesc=Pode ativar o registo de eventos de segurança Dolibarr aqui. os administradores podem ver o seu conteúdo a travé de menu ferramentas do sistema - Auditoria.Atenção, esta característica pode consumir uma gran quantidade de dados na base de dados. -AreaForAdminOnly=Apenas usuários administradores podem usar os recursos. -SystemInfoDesc=Esta informação do sistema é informação técnica acessíveis só de leitura a aos administradores. -SystemAreaForAdminOnly=Esta área só é acessíveis a os Usuários de tipo administradores. nenhum permissão Dolibarr permite extender o círculo de Usuários autorizados a esta áera. -CompanyFundationDesc=Editar nesta página toda a informação conhecida sobre a empresa o associação a administrar -DisplayDesc=pode encontrar aqui todos os parâmetros relacionados com a aparência de Dolibarr +ListOfSecurityEvents=Lista de eventos de segurança do Dolibarr +SecurityEventsPurged=Eventos de segurança foram purgados(apagados) +LogEventDesc=Você pode habilitar aqui os logging para os eventos de segurança do Dolibarr. Administradores podem ver o conteúdo via menu Ferramentas do Sistema - Auditar. Aviso, essa função pode consumir uma grande quantidade de dados no banco de dados. +AreaForAdminOnly=Essas funções podem ser usadas somente por Usuários Administrativos. +SystemInfoDesc=Informações do sistema está faltando informações, técnicas você consegue em modo de leitura e é visivel somente para administradores. +SystemAreaForAdminOnly=Essa área é dísponivel apenas para administradores. Ninguém do Dolibarr pode diminuir essas permissões. +CompanyFundationDesc=Editar nesta página todas as informações da empresa que você necessita para gerencia-la. (Para isso, clique no no botão "Modifique") +DisplayDesc=Você pode escolher cada parâmetro relacionado com a aparência do Dolibarr e testar aqui AvailableModules=Módulos disponíveis -ToActivateModule=Para ativar os módulos, ir à área de configuração. -SessionTimeOut=Tempo Esgotado para a sessão -SessionExplanation=Asegura que o período de sessões não expirará antes deste momento. sem embargo, a Administração do período de sessões de PHP não garantiza que o período de sessões expira depois deste período: Este será o caso sim um sistema de limpieza do caché de sessões é ativo.
Nota: sem mecanismo especial, o mecanismo interno para limpiar o período de sessões de PHP todos os acessos %s/%s, mas só em torno à acesso de Outros períodos de sessões. -TriggersAvailable=Triggers disponíveis -TriggersDesc=os triggers são Arquivos que, une vez depositados na pasta htdocs/core/triggers, modifican o comportamento do workflow de Dolibarr. Realizan ações suplementarias, desencadenadas por os eventos Dolibarr (criação de empresa, validação fatura, fechar contrato, etc). -TriggerDisabledByName=Triggers deste Arquivo desativador por o sufijo -NORUN ao Nome do Arquivo. -TriggerDisabledAsModuleDisabled=Triggers deste Arquivo desativados já que o módulo %s não está ativado. -TriggerAlwaysActive=Triggers deste Arquivo sempre ativos, já que os módulos Dolibarr relacionados estão ativados -TriggerActiveAsModuleActive=Triggers deste Arquivo ativos já que o módulo %s está ativado -GeneratedPasswordDesc=Indique aqui que norma quer utilizar para Gerar as Senhas quando queira Gerar uma Nova senha +ToActivateModule=Para ativar os módulos, vá à área de configuração (Home->Configuração->Módulo). +SessionTimeOut=Expiro tempo de sessão +SessionExplanation=Esse número garante que a sessão nunca irá expirar antes desse tempo de atraso, se o session cleaner for feito pelo Internal PHP session cleaner (e nada mais). O Internal PHP session cleaner não garante que irá expirar nesse tempo de atraso. Ele vai expirar, depois desse tempo de atraso, e quando o session cleaner está na RAM, então cada %s/%s acesso, mas somente durante o acesso feito pelos outros usuários.
Nota: em alguns servidores com mecanismo de "external session cleaning" (cron no Debian, Ubuntu ...), a sessão pode ser perdida depois desse periodo definido por default session.gc_maxlifetime, não importando importando o valor entrado aqui. +TriggersAvailable=Triggers disponível +TriggersDesc=Triggers são arquivos que modificam o comportamento do Dolibarr fluxo de trabalho uma vez copiado dentro do diretório htdocs/core/triggers. Eles realizam novas ações, ativado em eventos do Dolibarr (criar nova empresa, validação de fatura, ...). +TriggerDisabledByName=Triggers neste arquivo estão desativados pelo sufixo -NORUN em seu nome. +TriggerDisabledAsModuleDisabled=Triggers neste arquivo está desabilitado assim como o módulo %s está desabilitado. +TriggerAlwaysActive=Triggers neste arquivo está sempre ativo, não importando os módulos ativos no Dolibarr. +TriggerActiveAsModuleActive=Triggers neste arquivo são ativos quando módulo %s está ativado. +GeneratedPasswordDesc=Defina aqui qual regra você deseja para gerar uma nova senha se você perguntar para ter uma geração automática de senhas DictionaryDesc=Defina aqui todas datas de referência. Você pode completar o valor pré-definido com o seu. -ConstDesc=qualquer outro parâmetro não editável em páginas anteriores -OnceSetupFinishedCreateUsers=Atenção, está baixo de uma conta de administrador de Dolibarr. os administradores se utilizam para configurar a Dolibarr. Para um uso corrente de Dolibarr, recomenda-se utilizar uma conta não administrador criada a partir do menu "Usuários e grupos" -MiscellaneousDesc=Defina aqui os Outros parâmetros relacionados com a segurança. -LimitsSetup=configuração de limites e precisões -LimitsDesc=pode definir aqui os limites e precisões utilizados por Dolibarr -MAIN_MAX_DECIMALS_UNIT=Casas decimais máximas para os preços unitários -MAIN_MAX_DECIMALS_TOT=Casas decimais máximas para os preços totais -MAIN_MAX_DECIMALS_SHOWN=Casas decimais máximas para os valores mostrados em janela (Colocar ... depois do máximo quer ver ... quando o número se trunque à mostrar em janela) -MAIN_DISABLE_PDF_COMPRESSION=Utilizar a compressão PDF para os Arquivos PDF gerados -MAIN_ROUNDING_RULE_TOT=Passo do intervalo de arredondamento (para os países onde o arredondamento é feito em outra coisa do que a base 10. Por exemplo, colocar 0,05 se o arredondamento é feito por etapas 0,05) -UnitPriceOfProduct=Preço líquido unitário de um produto -TotalPriceAfterRounding=Preço total (imposto net / cuba / manhã) após arredondamento -ParameterActiveForNextInputOnly=parâmetro efetivo somente a partir das próximas sessões -NoEventOrNoAuditSetup=não são registrado eventos de segurança. Esto pode ser normal sim a auditoría não ha sido habilitado na página "configuração->segurança->auditoría". -NoEventFoundWithCriteria=não são encontrado eventos de segurança para tais criterios de pesquisa. -BackupDesc=Para realizar uma Cópia de segurança completa de Dolibarr, voçê deve: -BackupDesc3=Salvar o conteúdo de seu banco de dados (%s) em um arquivo de despejo. Para isso, você pode usar o seguinte assistente. -BackupDescX=O Arquivo gerado deverá localizar-se em um lugar seguro. -BackupDescY=O arquivo gerado devevrá ser colocado em local seguro. -BackupPHPWarning=Backup não pode ser garantida com este método. Prefere uma anterior -RestoreDesc=Para restaurar uma Cópia de segurança de Dolibarr, voçê deve: -RestoreDesc2=Restaurar arquivo (arquivo zip por exemplo) do diretório de documentos para extrair árvore de arquivos no diretório de documentos de uma nova instalação ou em Dolibarr esta corrente documentos directoy (% s). -RestoreDesc3=Restaurar os dados, a partir de um arquivo de despejo de backup, na base de dados da nova instalação Dolibarr ou no banco de dados desta instalação atual (%s). Atenção, uma vez que a restauração for concluída, você deve usar um login / senha, que existia quando o backup foi feito, se conectar novamente. Para restaurar um banco de dados de backup para esta instalação atual, você pode seguir este assistente. -RestoreMySQL=importar do MySQL -ForcedToByAModule=Esta regra é forçado a por um módulo ativado -PreviousDumpFiles=Arquivos de despejo de backup de banco de dados disponível -RunningUpdateProcessMayBeRequired=A execução do processo de atualização parece ser exigido (Programas versão difere da versão do banco de dado) -YouMustRunCommandFromCommandLineAfterLoginToUser=Você deve executar este comando a partir da linha de comando após o login a um shell com o usuário ou você deve adicionar-W opção no final da linha de comando para fornece a senha. -YourPHPDoesNotHaveSSLSupport=Funções SSL não disponíveis no seu PHP +ConstDesc=Está página permite editar todos os outros parâmetros que não estão disponíveis nas páginas anteriores. Esses parâmetros estão reservados para desenvolvedores avançados ou para solução de problemas. +OnceSetupFinishedCreateUsers=Aviso, voce é um usuário administrador do Dolibarr. Usuários administradores são usados para configurar o Dolibarr. Para o uso comum do Dolibarr, é recomendado utilizar um usuário não administrador criado no menu Usuários & Grupos de Usuários. +MiscellaneousDesc=Defina aqui todos os outros parâmetros relacionado com a segurança. +LimitsSetup=Configurações de Limites/Precisões +LimitsDesc=Você pode definir limites, precisões e otimizações utilizadas pelo Dolibarr aqui +MAIN_MAX_DECIMALS_UNIT=Máxima casas decimais para preços unitários +MAIN_MAX_DECIMALS_TOT=Máxima casas decimais para preços totais +MAIN_MAX_DECIMALS_SHOWN=Máxima casas decimais para preços mostrado na tela (adicionar ... depois desse número se você deseja ver ... quando um número é truncado quando mostrado na tela) +MAIN_DISABLE_PDF_COMPRESSION=Utilizar compressão no PDF para gerar arquivos em PDF. +MAIN_ROUNDING_RULE_TOT=Tamanho da faixa de arredontamento (para países raros quando o arredontamento é feito alguma coisa na base 10) +UnitPriceOfProduct=Unidade líquida do preço do produto +TotalPriceAfterRounding=Preço Total (Líquido,ICMS,taxa local) depois do arredontamento +ParameterActiveForNextInputOnly=Parâmetro efetivo somente para a próxima entrada +NoEventOrNoAuditSetup=Nenhum evento de segurança foi gravado ainda. Isso pode ser normal de o auditar não foi ativado na página "Conf. - Segurança - Auditar" +NoEventFoundWithCriteria=Nenhum evento de segurança foi achado pelos critérios de pesquisa. +SeeLocalSendMailSetup=Ver sua configuração local de envio de correspondência +BackupDesc=Para fazer um backup completo do Dolibarr, você deve: +BackupDesc2=* Salvar os documentos do diretório (%s) que contém todos os arquivos uploaded e arquivos gerados (Você pode criar um arquivo zipado por exemplo). +BackupDesc3=* Salvar o banco de dados em um arquivo de despejo. Para isso, você pode seguir o assistente. +BackupDescX=O diretório do arquivo deverá ser armazenado em um local seguro. +BackupDescY=O arquivo de despeja gerado deverá ser armazenado em um local seguro. +BackupPHPWarning=O backup não pode ser garantido por esse método. Prefira o anterior +RestoreDesc=Para restaurar o backup Dolibarr, você deve: +RestoreDesc2=* Restaurar o arquivo de backup (zipado) no diretório dos documentos, para extrair a arvore de arquivos no diretório do documento da nova instalação do Dolibarr ou dentro do atual diretório dos documentos (%s). +RestoreDesc3=* Restaurar os dados de backup do arquivo de despejo, para dentro do banco de dados da nova instalação do Dolibarr ou para dentro da atual instalação. Aviso, uma vez a restauração completa, você deve usar o login/senha, que existia quando o backup foi feito, para conectar denovo. Para restaurar o backup do banco de dados para dentro da atual instalação, você pode seguir esse assistente. +RestoreMySQL=Importar MySQL +ForcedToByAModule=Essa Regra é forçada para %s by um módulo ativado +PreviousDumpFiles=Disponível banco de dados de backup dos arquivos de despejo +RunningUpdateProcessMayBeRequired=Rodando o processo de upgrade parece ser requerido (Versão dos programas %s é diferente da versão do banco de dados %s) +YouMustRunCommandFromCommandLineAfterLoginToUser=Você deve rodar esse comando na linha de comando (CLI) depois de logar no shell com o usuário %s ou você deve adicionar a opção -W no final da linha de comando para fornecer a senha %s. +YourPHPDoesNotHaveSSLSupport=Função SSL functions não está disponível no seu PHP DownloadMoreSkins=Mais skins para baixar -SimpleNumRefModelDesc=Retorna o número de referência com o formato% syymm-nnnn, onde aa é o ano, mm é o mês e nnnn é uma sequência sem buracos e sem reinicialização -ShowProfIdInAddress=Mostrar ID profissional com endereços em documentos -ShowVATIntaInAddress=Esconder VAT Intra número com endereços em documentos +SimpleNumRefModelDesc=Retorna o número de referênciaReturns com o formato %syymm-nnnn onde yy é o ano, mm é o mês é nnnn é a sequencia sem buraco e sem reset +ShowProfIdInAddress=Mostrar id proficional com endereço no documento +ShowVATIntaInAddress=Esconder ICMS dentro num com endereços no documento TranslationUncomplete=Tradução parcial -SomeTranslationAreUncomplete=Alguns idiomas podem ser parcialmente traduzido ou pode conter erros. Se detectar alguma, você pode corrigir arquivos de idioma registrando a http://transifex.com/projects/p/dolibarr/ . -MenuUseLayout=Faça cardápio compativel vertical (opção javascript não deve ser desativado) -MAIN_DISABLE_METEO=Desativar vista meteo -TestLoginToAPI=Testar Acesso ao API -ProxyDesc=Algumas características do Dolibarr precisa ter um acesso à Internet ao trabalho. Defina aqui os parâmetros para isso. Se o servidor Dolibarr está atrás de um servidor proxy, esses parâmetros diz Dolibarr como acessar Internet através dele. -MAIN_PROXY_USE=Usar um servidor proxy (caso contrário, o acesso direto a internet) -MAIN_PROXY_HOST=Nome / Endereço do servidor proxy -MAIN_PROXY_PORT=Porto de servidor proxy -MAIN_PROXY_USER=Entre para usar o servidor proxy -DefineHereComplementaryAttributes=Defina aqui todos os atributos, não já disponíveis por padrão, e que pretende ser apoiada por. +SomeTranslationAreUncomplete=Algumas línguas pode ter sido parcialmente traduzida ou conter erros. Se você detectar algum, você pode corrigir .lang nos arquivos de texto no diretório htdocs/langs e submeter ele no fórum no http://www.dolibarr.org. +MenuUseLayout=Faça o vertical menu escondido (opção do javascript não pode estar desativada) +MAIN_DISABLE_METEO=Desativar visualização meteo +TestLoginToAPI=Teste de login para API +ProxyDesc=Algumas funções do Dolibarr precisam ter acesso a internet para funcionar. Defina esses parâmetros aqui. se o servidor Dolibarr esta atrás de um servidor de proxy, esses parâmetros falam pro Dolibarr como acessar a internet através disso. +MAIN_PROXY_USE=Use um servidor de proxy (caso contrário acesso direto a internet) +MAIN_PROXY_HOST=Nome/Endereço do servidor de proxy +MAIN_PROXY_PORT=Porta do servidor de proxy +MAIN_PROXY_USER=Login para usar no servidor de proxy +MAIN_PROXY_PASS=Senha para usar no servidor de proxy +DefineHereComplementaryAttributes=Defina aqui todos os atributos, não disponível por default, e que você quer que seja suportado por %s. ExtraFieldsSupplierOrdersLines=Atributos complementares (linhas de encomenda) ExtraFieldsSupplierInvoicesLines=Atributos complementares (linhas da fatura) -ExtraFieldsThirdParties=Atributos complementares (clientes) -ExtraFieldsContacts=Atributos complementares (contato / endereço) +ExtraFieldsThirdParties=Atributos complementares (terceiros) +ExtraFieldsContacts=Atributos complementares (contato/endereço) +ExtraFieldsMember=Atributos complementares (membros) ExtraFieldsCustomerOrders=Atributos complementares (ordens) -ExtraFieldsSupplierOrders=Atributos complementares (ordens) -ExtraFieldHasWrongValue=Atributo% s tem um valor errado. -AlphaNumOnlyCharsAndNoSpace=apenas alfanuméricos caracteres sem espaço +ExtraFieldsSupplierOrders=Atributos complementares (pedidos) +ExtraFieldHasWrongValue=Atributo %s tem um valor errado. +AlphaNumOnlyCharsAndNoSpace=somente caracteres alfanuméricos sem espaço AlphaNumOnlyLowerCharsAndNoSpace=apenas alfanumérico e minúsculas, sem espaço -SendingMailSetup=Configuração de envios por e-mail -SendmailOptionNotComplete=Atenção, em alguns sistemas Linux, para enviar e-mail de seu e-mail, sendmail instalação execução must contém opção-ba (mail.force_extra_parameters parâmetros no seu arquivo php.ini). Se alguns destinatários não receber e-mails, tentar editar este parâmetro PHP com mail.force_extra_parameters =-ba). -PathToDocuments=Rotas de acesso a documentos -SendmailOptionMayHurtBuggedMTA=Recurso para enviar mails usando o método de "correio PHP direto" irá gerar uma mensagem de email que pode não ser corretamente analisado por alguns servidores de entrada de email. O resultado é que alguns e-mails não podem ser lidos por pessoas hospedadas por essas plataformas grampeado. É o caso para alguns provedores de Internet (Ex: Laranja na França). Este não é um problema em Dolibarr nem em PHP, mas para receber servidor de correio. No entanto, pode adicionar a opção MAIN_FIX_FOR_BUGGED_MTA a 1 na configuração - outra para modificar Dolibarr para evitar isso. No entanto, você pode enfrentar problema com outros servidores que respeitem estritamente o padrão SMTP. A outra solução (recomendado) é usar o método de "biblioteca soquete SMTP" que não tem desvantagens. -TranslationSetup=Configuração de tradução -TranslationDesc=Escolha da língua visível na tela pode ser modificado: * A nível mundial a partir do menu strong Home - Setup - Exibição* Para o usuário apenas de guia de exibição do usuário de cartão de usuário (clique sobre o login no topo da tela). -TotalNumberOfActivatedModules=Número total de módulos de recursos ativados: -YouMustEnableOneModule=Você deve, pelo menos, permitir que um módulo -ClassNotFoundIntoPathWarning=A classe não foi encontrado em caminho PHP -OnlyFollowingModulesAreOpenedToExternalUsers=Note-se, os módulos seguintes são abertos a usuários externos (o que quer que são permissão desses usuários): -SuhosinSessionEncrypt=Armazenamento de sessão criptografada pelo Suhosin -ConditionIsCurrently=Condição é atualmente -YouUseBestDriver=Você usa o driverque é o melhor driver disponível atualmente. -YouDoNotUseBestDriver=Você usa drive mas recomendado. -NbOfProductIsLowerThanNoPb=Você tem produtos / serviços somente no banco de dados. Isso não exigida qualquer otimização particular. -SearchOptim=Pesquisa otimização -YouHaveXProductUseSearchOptim=Você tem produto no banco de dados. Você deve adicionar o PRODUCT_DONOTSEARCH_ANYWHERE constante a 1 em Home-Setup-Outros, você limitar a pesquisa ao início de cordas que fazem possível para banco de dados para usar o índice e você deve obter uma resposta imediata. -BrowserIsOK=Você está usando o navegador. Este navegador é ok para segurança e desempenho. -BrowserIsKO=Você está usando o navegador web% s. Este navegador é conhecido por ser uma má escolha para a segurança, desempenho e confiabilidade. Aconselhamos que você use o Firefox, Chrome, Opera ou Safari. +SendingMailSetup=Configurações de envios por email +SendmailOptionNotComplete=Aviso, em alguns sistemas Linux, para enviar email para seu email, sendmail executa a configuração que deve conter opção -ba (parâmetro mail.force_extra_parameters dentro do seu arquivo php.ini). Se algum destinatário não receber emails, tente editar esse parâmetro PHP com mail.force_extra_parameters = -ba). +PathToDocuments=Caminho para documentos +PathDirectory=Diretório +SendmailOptionMayHurtBuggedMTA=Função para envios de correspondência usando o método "PHP mail direct" irá gerar uma mensagem na correspondência que pode não estar corretamente analisada por algum servidor de recepção de correspondência. Resultando que essa correspondência não pode ser lida pela pessoa hostiada por essa plataforma bugada. É caso de alguns provedores de internet (Ex: Orange na França). Isso não é um problema para o Dolibarr nem dentro PHP mas para servidor receptor de correspondência. Você pode contudo adicionar a opção MAIN_FIX_FOR_BUGGED_MTA para 1 dentro da configuração, outra modificação do Dolibarr para evitar isso. Contudo você pode sofrer problemas com outros servidores que respeitão estritamente os padrões SMTP. A outra solução (RECOMENDADA) é usar o método "SMTP socket library" que não tem desvantagens. +TranslationSetup=Configurações de tradução +TranslationDesc=Escolha a língua visivel na sua tela que pode ser modificada:
* Global no menu Home->Configuração->Aparência
* Para somente usuário pela tab Aparência de usuário no cartão do usuário (clique no login no topo da tela). +TotalNumberOfActivatedModules=Número total de funções do módulo: %s +YouMustEnableOneModule=Você pelo menos deve ativar 1 módulo +ClassNotFoundIntoPathWarning=Classe %s não achado dentro o caminho PHP +YesInSummer=Sim em verão +OnlyFollowingModulesAreOpenedToExternalUsers=Note, somente seguintes módulos é aberto para usuários externos (qualquer que seja as permissões de tal usuário): +SuhosinSessionEncrypt=Sessão armazenada criptografada pelo Suhosin +ConditionIsCurrently=Condição é atualmente %s +YouUseBestDriver=Você usa o driver %s que é o melhor driver disponível atualmente. +YouDoNotUseBestDriver=Você usa o driver %s mas o driver %s é o mais recomendado. +NbOfProductIsLowerThanNoPb=Você tem somente %s produtos/serviços no seu banco de dados. Isso não requer qualquer particular otimização. +SearchOptim=Procurar Otimização +YouHaveXProductUseSearchOptim=Você tem %s produtos dentro do banco de dados. Você deveria adicionar a constante PRODUCT_DONOTSEARCH_ANYWHERE para 1 em Home->Configuração->Outros, seu limite para a procura começar na strings fazendo possível para o banco de dados usar o index e você deveria receber uma resposta imediata. +BrowserIsOK=Você está usando o navegador %s. Esse navegador está OK com a segurança e performa. +BrowserIsKO=Você está usando o navegador %s. Esse navegador é uma péssima escolha para segurança, performa e confiabilidade. Nós recomendandos usar Firefox, Chrome, Opera ou Safari. XDebugInstalled=XDebug é carregado. XCacheInstalled=XCache é carregado. -FieldEdition=Edição de campo -FixTZ=Correção de fuso horário -FillThisOnlyIfRequired=Exemplo: 2 (preencher somente se deslocamento de fuso horário problemas são experientes) +AddRefInList=Aparência cliente/fornecedor ref dentro da lista (escolha a lista ou combobox) e mais o hyperlink +FixTZ=Consertar TimeZone +FillThisOnlyIfRequired=Exemplo: +2 (Preencha somente se compensar o problema do timezone é experiente) EmptyNumRefModelDesc=O código é livre. Este código pode ser modificado a qualquer momento. -PasswordGenerationStandard=Devolve uma senha generada por o algoritmo interno Dolibarr: 8 caracteres, números e caracteres em minúsculas mescladas. -PasswordGenerationNone=não oferece Senhas. a senha se introduce manualmente. -UserGroupSetup=Configuração Módulo Usuários e Grupos -GeneratePassword=Propor uma senha generada -RuleForGeneratedPasswords=Norma para a geração das Senhas Propostas -DoNotSuggest=não propor -EncryptedPasswordInDatabase=Permitir encriptação das Senhas na base de dados -DisableForgetPasswordLinkOnLogonPage=não mostrar o link "senha esquecida" na página de login -UsersSetup=Configuração do módulo Usuários -UserMailRequired=EMail necessário para criar um novo usuário -CompanySetup=configuração do módulo empresas -CompanyCodeChecker=Módulo de geração e control dos códigos de Fornecedores (clientes/Fornecedores) -AccountCodeManager=Módulo de geração dos códigos contabíls (clientes/Fornecedores) -ModuleCompanyCodeAquarium=Devolve um código contabíl composto de %s seguido do código Fornecedor de provedor para o código contabíl de provedor, e %s seguido do código Fornecedor de cliente para o código contabíl de cliente. -ModuleCompanyCodePanicum=Devolve um código contabíl vazio. -ModuleCompanyCodeDigitaria=Devolve um código contabíl composto seguindo o código de Fornecedor. o código está formado por caracter0 ' C ' em primeiroa posição seguido dos 5 primeiroos caracteres do código Fornecedor. -NotificationsDesc=E-mails notificações este recurso permite que você envie e-mail automático silenciosamente, para alguns eventos Dolibarr. Alvos de notificações podem ser definidos:
* Por terceiros contatos (clientes ou fornecedores), um contato de tempo.
* Ou definindo endereços de e-mail alvo globais na página de configuração do módulo. -ModelModules=Modelos de documentos -DocumentModelOdt=Gere documentos a partir de modelos OpenDocuments (. ODT ou. Arquivos ODS para OpenOffice, KOffice, TextEdit, ...) -WatermarkOnDraft=Marca d'água sobre o projeto de documento +PasswordGenerationStandard=Retorna uma senha gerara de acordo com o algorítimo interno do Dolibarr: 8 caracteres contendo números e letras em letras minusculas. +PasswordGenerationNone=Não sugerir senha ou gerar senha. Senha deve ser digitada manualmente. +UserGroupSetup=Configurações do módulo de usuários e grupos +GeneratePassword=Sugerir uma senha gerada +RuleForGeneratedPasswords=Regra para sugerir uma senha gerada ou validação de senha +DoNotSuggest=Não sugerir senha +EncryptedPasswordInDatabase=Permitir criptografar a senha no banco de dados +DisableForgetPasswordLinkOnLogonPage=Não mostrar o link "Esqueceu a senha" na página de login +UsersSetup=Configurações de módulo de usuários +UserMailRequired=EMail é necessário para criação de um novo usuário +CompanySetup=Configurações de módulo das empresas +CompanyCodeChecker=Módulo de geração e verificação de códigos de terceiros (cliente ou fornecedor) +AccountCodeManager=Módulo de geração de códigos de contabilidade (clientes ou fornecedores) +ModuleCompanyCodeAquarium=Retorna código de contabilidade construido por:
%s seguido pelo código do fornecedor terceiro pelo código de contabilidade do fornecedor,
%s seguido pelo código do cliente terceiro pelo código de contabilidade do cliente. +ModuleCompanyCodePanicum=Retorna um código de contabilidade vazio. +ModuleCompanyCodeDigitaria=Código de contabilidade depende do código do terceiro. O Código é composto pelo caractere "C" na primeira posição seguido pelos 5 primeiros caracteres do código do terceiro. +NotificationsDesc=Função de notificação por email permite você enviar silenciosamente emails automáticos, em alguns eventos do Dolibarr, terceiros (clientes ou fornecedores) que é configurado para o mesmo. Escolher em ativar notificações e alvos a contatar é feito no tempo do terceiro. +ModelModules=Templates de documentos +DocumentModelOdt=Gerar documentos dos templates livres (Arquivos .ODT ou .ODS do libreoffice, KOffice, TextEdit, ...) +WatermarkOnDraft=Marca d'água no documento de rascuno JSOnPaimentBill=Ative a função de preenchimento automático de linhas no formulário de pagamento -CompanyIdProfChecker=Regras sobre profissional Ids -MustBeMandatory=Obrigatório para criar terceiros? -MustBeInvoiceMandatory=Obrigatório para validar faturas? -WebCalSetup=configuração de link com o calendário Webcalendar -WebCalSyncro=Integrar os eventos Dolibarr em WebCalendar -WebCalYesByDefault=Consultar (sim por default) -WebCalNoByDefault=Consultar (não por default) -WebCalURL=endereço (URL) de acesso ao calendário -WebCalServer=Servidor da base de dados do calendário -WebCalUser=Usuário com acesso e a base -WebCalSetupSaved=os dados de link são guardado corretamente. -WebCalTestOk=A ligação ao servidor no banco de dados com o usuário de sucesso. -WebCalTestKo1=a login à servidor '%s' ha sido satisfactoria, mas a base '%s' não se ha podido comTeste. -WebCalTestKo2=a login à servidor '%s' por o Usuário '%s' ha falhado. -WebCalErrorConnectOkButWrongDatabase=a login salió bien mas a base não parece ser uma base Webcalendar. -WebCalAddEventOnCreateActions=Adicionar evento ao calendário em criações de ações -WebCalAddEventOnCreateCompany=Adicionar evento ao calendário na criação de empresas -WebCalAddEventOnStatusPropal=Adicionar evento ao calendário ao alterar destado dos Orçamentos -WebCalAddEventOnStatusContract=Adicionar evento ao calendário ao alterar destado dos contratos -WebCalAddEventOnStatusBill=Adicionar evento ao calendário ao alterar destado das faturas -WebCalAddEventOnStatusMember=Adicionar evento ao calendário ao alterar destado dos Membros -WebCalUrlForVCalExport=um link de exportação do calendário em formato %s estará disponível na url: %s -WebCalCheckWebcalSetup=a configuração do módulo Webcal pode ser incorreta -BillsSetup=configuração do módulo Faturas +CompanyIdProfChecker=Regras no Ids profissional +MustBeUnique=Deve ser único? +MustBeMandatory=Deve ser obrigatório para criar terceiros? +MustBeInvoiceMandatory=Deve ser obrigatório para validar faturas? +Miscellaneous=Variados +WebCalSetup=Configurações do link do calendário web +WebCalSyncro=Adicionar eventos do Dolibarr no calendário web +WebCalAllways=Sempre, não perguntar +WebCalYesByDefault=Na demanda (sim por default) +WebCalNoByDefault=Na demanda (não por default) +WebCalURL=URL para o acessar o calendário +WebCalServer=Servidor hostiando o banco de dados do calendário +WebCalDatabaseName=Nome do banco de dados +WebCalUser=Usuário para acessar o banco de dados +WebCalSetupSaved=Configurações do calendário web salvo com sucesso. +WebCalTestOk=Conexão para o servidor '%s' no banco de dados '%s' com o usuário '%s' foi bem sucedida. +WebCalTestKo1=Conexão para o servidor '%s' foi sucedida mas o banco de dados '%s' não foi alcançado. +WebCalTestKo2=Conexão para o servidor '%s' com o usuário '%s' falhou. +WebCalErrorConnectOkButWrongDatabase=Conexão foi um sucesso mas o banco de dados não "visualizou" o banco de dados do calendário web. +WebCalAddEventOnCreateActions=Adicionar evento no calendário ao criar ações +WebCalAddEventOnCreateCompany=Adicionar evento no calendário ao criar empresas +WebCalAddEventOnStatusPropal=Adicionar evento no calendário ao trocar status de orçamentos +WebCalAddEventOnStatusContract=Adicionar evento no calendário ao trocar status de contratos +WebCalAddEventOnStatusBill=Adicionar evento no calendário ao trocar status de contas +WebCalAddEventOnStatusMember=Adicionar evento no calendário ao trocar status dos membros +WebCalUrlForVCalExport=Uma exportação de link para o formato %s está disponível no seguinte link: %s +WebCalCheckWebcalSetup=Talvez as configurações do módulo webcal não esteja correta +BillsSetup=Configurações do módulo de faturas BillsDate=Data das faturas -BillsNumberingModule=Módulo de numeração de faturas e entregas -BillsPDFModules=Modelo de documento de faturas -CreditNoteSetup=configuração do módulo entregas -ForceInvoiceDate=Forçar a data de fatura e a data de validação -DisableRepeatable=Desativar as faturas Repetitivas -SuggestedPaymentModesIfNotDefinedInInvoice=Formas de pagamento sugeridas para as faturas senão estão definidas explicitamente -EnableEditDeleteValidInvoice=Ativar a possibilidade de editar/eliminar uma fatura validada sem pagamento -SuggestPaymentByRIBOnAccount=Sugerenciar o pagamento por transfência em conta -SuggestPaymentByChequeToAddress=Sugerenciar o pagamento por cheque a -FreeLegalTextOnInvoices=Texto livre em faturas +BillsNumberingModule=Faturas e notas de crédito no modelo de numeração +BillsPDFModules=Modelos de documentos da fatura +CreditNoteSetup=Configurações do módulo de notas de crédito +CreditNotePDFModules=Modelos de documentos da nota de crédito +ForceInvoiceDate=Forçar data de fatura para data de validação +DisableRepeatable=Desativar faturas repetidas +SuggestedPaymentModesIfNotDefinedInInvoice=Sugerir formas de pagamentos na fatura por default se não estiver definida na fatura +EnableEditDeleteValidInvoice=Ativar a possibilidade de editar/deletar faturas validadas que não foram pagas +SuggestPaymentByRIBOnAccount=Sugerir pagamento por transferência bancária +SuggestPaymentByChequeToAddress=Sugerir pagamento por cheque para +FreeLegalTextOnInvoices=Texto livre nas fatura WatermarkOnDraftInvoices=Marca d'água sobre o projeto de faturas (nenhum se estiver vazio) -PropalSetup=configuração do módulo Orçamentos -CreateForm=criação formulário -ClassifiedInvoiced=Classificar faturado -HideTreadedPropal=Ocultar os Orçamentos processados do listado -AddShippingDateAbility=possibilidade de determinar uma data de entregas -AddDeliveryAddressAbility=possibilidade de selecionar uma endereço de envio -UseOptionLineIfNoQuantity=uma linha de produto/serviço que tem uma quantidade nula se considera como uma Opção -WatermarkOnDraftProposal=Marca d'água em projetos de propostas comerciais (nenhum se estiver vazio) +PropalSetup=Configurações do módulo de orçamentos +CreateForm=Criar formulário +NumberOfProductLines=Número de linhas de produto +ProposalsNumberingModules=Modelos de numeração de orçamentos +ProposalsPDFModules=Modelos de documentos para Orçamentos +ClassifiedInvoiced=Faturas classificadas +HideTreadedPropal=Esconder orçamentos processados na lista +AddShippingDateAbility=Capacidade de adicionar data de envio +AddDeliveryAddressAbility=Capacidade de adicionar data da entrega +UseOptionLineIfNoQuantity=Uma linha de produto/serviço com quantidade zero é considerado uma opção +FreeLegalTextOnProposal=Texto livre em orçamentos +WatermarkOnDraftProposal=Marca d'água no rascunho de orçamentos (nenhum se vazio) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Informar conta bancária de destino da proposta AskPriceSupplierSetup=Preço solicitado via fornecedor instalação de módulo FreeLegalTextOnAskPriceSupplier=Texto livre sobre os pedidos de preços de fornecedores -OrdersSetup=configuração do módulo pedidos +WatermarkOnDraftAskPriceSupplier=Marca d'água em projetos de ordem dos fornecedores (nenhum se estiver vazio) +BANK_ASK_PAYMENT_BANK_DURING_ASKPRICESUPPLIER=Informar conta bancária de destino da proposta +OrdersSetup=Configurações do gestor de pedidos +OrdersNumberingModules=modelos de numeração de pedidos OrdersModelModule=Modelos de documentos de pedidos -HideTreadedOrders=Esconder as ordens tratados ou cancelados na lista -WatermarkOnDraftOrders=Marca d'água em projetos de ordem (nenhum se estiver vazio) +HideTreadedOrders=Ocultar os pedidos processados ou cancelados na lista +ValidOrderAfterPropalClosed=Para validar o pedido após fechar o orçamento, tornar isso possível sem precisar de um pedido provisório +WatermarkOnDraftOrders=Marca d'água no rascunho de pedidos (nenhum para vazio) ShippableOrderIconInList=Adicionar um ícone na lista de pedidos que indicam se a ordem é shippable BANK_ASK_PAYMENT_BANK_DURING_ORDER=Informar conta bancária de destino da ordem -ClickToDialSetup=configuração do módulo Click To Dial -ClickToDialUrlDesc=Url de chamada fazendo click ao ícone telefone.
a 'url completa chamada será: URL?login -Bookmark4uSetup=configuração do módulo Bookmark4u -InterventionsSetup=configuração do módulo Intervenções -FreeLegalTextOnInterventions=Texto livre em documentos de intervenção -WatermarkOnDraftInterventionCards=Marca d'água em documentos de cartão de intervenção (nenhum se estiver vazio) -ContractsSetup=Contratos / instalação de módulo de Assinaturas -ContractsNumberingModules=Contratos numeração módulos +ClickToDialSetup=Configurações do módulo clique para discar +ClickToDialUrlDesc=Chamada URL quando se dá um clique na imagem do telefone. Na URL, você pode usar as tags
__TELEFONEPARA__ que será substituido com o número telefônico da pessoa a telefonar
__TELEFONEDE__ que será substituido com o número da pessoa que se telefona (seus)
__LOGIN__ que será substituido com o seu usuário do seu clique para discar (definido com o seu cartão de usuário)
__SENHA__ que será substituido pela sua senha do clique para discar (definida pelo seu cartão de usuário) +Bookmark4uSetup=Configurações do módulo Bookmark4u +InterventionsSetup=Configurações do módulo intervenções +FreeLegalTextOnInterventions=Texto livre nos documentos de intervenção +FicheinterNumberingModules=Modelos de numeração de intervenção +TemplatePDFInterventions=Modelos de documentos de cartão de intervenção +WatermarkOnDraftInterventionCards=Marca d'água nos documentos de cartão de intervenção (nenhum para vazio) +ContractsSetup=Configurações de módulo de contratos +ContractsNumberingModules=módulos de numeração de contratos TemplatePDFContracts=Modelos de documentos Contratos FreeLegalTextOnContracts=Texto livre em contratos WatermarkOnDraftContractCards=Marca d'água em projetos de contratos (nenhum se estiver vazio) -MembersSetup=configuração do módulo associações -MemberMainOptions=opções principales -AddSubscriptionIntoAccount=Registar honorários em conta bancaria ou Caixa do módulo bancario -AdherentMailRequired=E-Mail obrigatório para criar um membro novo -MemberSendInformationByMailByDefault=Caixa de verificação para enviar o correio de confirmação a os Membros é por default "sí" -LDAPSetup=Configuracón do módulo LDAP -LDAPUsersSynchro=Usuário +MembersSetup=Configurações de módulo de membros +AddSubscriptionIntoAccount=Sugerir por default para criar uma transação bancária, no módulo bancário, quando adicionado um novo pagamento +AdherentLoginRequired=Gestor de login para cada membro +AdherentMailRequired=E-Mail é obrigatório para criar um novo membro +MemberSendInformationByMailByDefault=Marque o checkbox para enviar confirmação de correspondência para membros (validação ou nova contribuição) é ativo por default +LDAPSetup=Configurações do LDAP +LDAPGlobalParameters=Parâmetros globais +LDAPUsersSynchro=Usuários LDAPContactsSynchro=Contatos LDAPSynchronization=sincronização LDAP -LDAPFunctionsNotAvailableOnPHP=as funções LDAP não estão disponíveis na sua PHP -LDAPSynchronizeUsers=sincronização dos Usuários Dolibarr com LDAP -LDAPSynchronizeGroups=sincronização dos grupos de Usuários Dolibarr com LDAP -LDAPSynchronizeContacts=sincronização dos contatos Dolibarr com LDAP -LDAPSynchronizeMembers=sincronização dos Membros do módulo associações de Dolibarr com LDAP -LDAPTypeExample=OpenLdap, Egroupware o Active Diretory -LDAPServerPortExample=Porta por default : 389 +LDAPFunctionsNotAvailableOnPHP=Funções LDAP não estão disponíveis no seu PHP +LDAPSynchronizeUsers=Organização dos usuários em LDAP +LDAPSynchronizeGroups=Organização dos grupos em LDAP +LDAPSynchronizeContacts=Organização dos contatos em LDAP +LDAPSynchronizeMembers=Organização dos membros da fundação em LDAP +LDAPTypeExample=OpenLdap, Egroupware ou Active Diretory +LDAPPrimaryServer=Servidor primário +LDAPSecondaryServer=Servidor secundário +LDAPServerPortExample=Porta default : 389 LDAPServerUseTLS=Usuário TLS -LDAPServerUseTLSExample=a sua servidor utiliza TLS +LDAPServerUseTLSExample=Seu servidor LDAP usa TLS +LDAPServerDn=Servidor DN +LDAPAdminDn=Administrador DN +LDAPAdminDnExample=DN completo (ex: cn=admin,dc=exemplo,dc=com) LDAPPassword=senha do administrador LDAPUserDn=DN dos Usuário -LDAPServerExample=endereço do servidor (ej: localhost, 192.168.0.2, ldaps://ldap.example.com/) +LDAPUserDnExample=DN completo (ex: ou=usuários,dc=exemplo,dc=com) +LDAPGroupDnExample=DN completo (ex: ou=grupos,dc=exemplo,dc=com) +LDAPServerExample=Endereço do servidor (ex: localhost, 192.168.0.2, ldaps://ldap.exemplo.com/) +LDAPServerDnExample=DN completo (Ex: dc=exemplo,dc=com) LDAPPasswordExample=senha do administrador LDAPDnSynchroActive=Sincronização de Usuários e Grupos -LDAPDnSynchroActiveExample=sincronização LDAP vers Dolibarr ó Dolibarr vers LDAP -LDAPDnContactActive=sincronização de contatos -LDAPDnContactActiveYes=sincronização ativada -LDAPDnContactActiveExample=sincronização ativada/desativada -LDAPDnMemberActive=sincronização dos Membros -LDAPDnMemberActiveExample=sincronização ativada/desativada -LDAPContactDn=DN dos contatos Dolibarr -LDAPMemberObjectClassListExample=Lista de ObjectClass que definem os atributos de um registo (ej: top,inetOrgPerson o top,user for active diretory) -LDAPUserObjectClassListExample=Lista de ObjectClass que definem os atributos de um registo (ej: top,inetOrgPerson o top,user for active diretory) -LDAPContactObjectClassListExample=Lista de objectClass que definem os atributos de um registo (ej: top,inetOrgPerson o top,user for active diretory) -LDAPTestConnect=Teste a login LDAP -LDAPTestSynchroContact=Teste a sincronização de contatos -LDAPTestSynchroUser=Teste a sincronização de Usuário -LDAPTestSearch=Teste uma pesquisa LDAP -LDAPSynchroOK=Prueba de sincronização realizada corretamente -LDAPSynchroKO=Prueba de sincronização errada -LDAPSynchroKOMayBePermissions=Error da prueba de sincronização. verifique que a login à servidor sea correta e que permite as atualizaciones LDAP -LDAPTCPConnectOK=login TCP à servidor LDAP efetuada (Servidor -LDAPTCPConnectKO=Fallo de login TCP à servidor LDAP (Servidor -LDAPBindOK=Ligue / authentificate ao servidor LDAP sucesso (Server =% s, Port =% s, Admin =% s, Password =% s) -LDAPBindKO=Fallo de login/autentificação à servidor LDAP (Servidor -LDAPUnbindSuccessfull=Desconecte sucesso -LDAPConnectToDNSuccessfull=login a DN (%s) realizada -LDAPConnectToDNFailed=Connexión a DN (%s) falhada -LDAPDolibarrMapping=Mapping Dolibarr -LDAPFieldLoginSambaExample=Exemplo : samaccountname -LDAPFieldPassword=senha -LDAPFieldPasswordNotCrypted=senha não encriptada -LDAPFieldPasswordCrypted=senha encriptada -LDAPFieldFirstNameExample=Exemplo : givenname -LDAPFieldPhone=telefone Trabalho -LDAPFieldPhoneExample=Exemplo : telephonenumber -LDAPFieldHomePhone=telefone personal -LDAPFieldHomePhoneExample=Exemplo : homephone -LDAPFieldMobile=telefone móvil -LDAPFieldMobileExample=Exemplo : mobile -LDAPFieldFaxExample=Exemplo : facsimiletelephonenumber -LDAPFieldAddress=endereço -LDAPFieldAddressExample=Exemplo : street -LDAPFieldZip=Código Postal -LDAPFieldZipExample=Exemplo : postalcode +LDAPDnSynchroActiveExample=Sincronização LDAP para Dolibarr ou Dolibarr para LDAP +LDAPDnContactActive=Sincronização dos contatos +LDAPDnContactActiveYes=Sincronização ativada +LDAPDnContactActiveExample=Sincronização Ativada/Desativada +LDAPDnMemberActiveExample=Sincronização Ativada/Desativada +LDAPContactDn=Contatos DN do Dolibarr +LDAPContactDnExample=DN completo (ex: ou=contatos,dc=exemplo,dc=com) +LDAPMemberDn=Membros DN do Dolibarr +LDAPMemberDnExample=DN completo (ex: ou=membros,dc=exemplo,dc=com) +LDAPMemberObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex: top,inetOrgPerson ou top,usuário por active diretory) +LDAPUserObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex: top,inetOrgPerson ou top,usuário por active diretory) +LDAPGroupObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex top,grupoDeNomeUnico) +LDAPContactObjectClassListExample=Lista de objectClass que definem os atributos gravados (ex: top,inetOrgPerson o top,usuários por active diretory) +LDAPMemberTypeDn=Tipos DN dos membros do Dolibarr +LDAPMemberTypeDnExample=DN completo (ex: ou=tipos_membros,d=exemplo,dc=com) +LDAPTestConnect=Teste de conexão LDAP +LDAPTestSynchroContact=Teste de sincronização dos contatos +LDAPTestSynchroUser=Teste de sincronização dos Usuário +LDAPTestSynchroGroup=Teste de sincronização dos grupos +LDAPTestSynchroMember=Teste de sincronização dos Membros +LDAPTestSearch=Teste de pesquisa LDAP +LDAPSynchroOK=Teste de sincronização foi um sucesso +LDAPSynchroKO=Teste de sincronização falhou +LDAPSynchroKOMayBePermissions=Teste de sincronização falhou. Verifique se a conexão do servidor está corretamente configurada e que permita atualizações LDAP +LDAPTCPConnectOK=Conexão TCP para o servidor LDAP foi um sucesso (Servidor=%s, Porta=%s) +LDAPTCPConnectKO=Conexão TCP para o servidor LDAP falhou (Servidor=%s, Porta=%s) +LDAPBindOK=Conexão/Autenticação do servidor LDAP foi um sucesso (Servidor=%s, Porta=%s, Admin=%s, Senha=%s) +LDAPBindKO=Conexão/Autenticação do servidor LDAP falhou (Servidor=%s, Porta=%s, Admin=%s, Senha=%s) +LDAPUnbindSuccessfull=Desconexão foi um sucesso +LDAPUnbindFailed=Desconexão falhou +LDAPConnectToDNSuccessfull=Conexão para DN (%s) foi um sucesso +LDAPConnectToDNFailed=Conexão para DN (%s) falhou +LDAPSetupForVersion3=Servidor LDAP configurado para versão 3 +LDAPSetupForVersion2=Servidor LDAP configurado para versão 2 +LDAPDolibarrMapping=Mapeamento Dolibarr +LDAPLdapMapping=Mapeamento LDAP +LDAPFilterConnectionExample=Exemplo : &(objectClass=inetOrgPerson) +LDAPFieldLoginSambaExample=Exemplo : ananomedaconta +LDAPFieldPassword=Senha +LDAPFieldPasswordNotCrypted=Senha não criptografada +LDAPFieldPasswordCrypted=Senha criptografada +LDAPFieldPasswordExample=Exemplo : SenhaUsuário +LDAPFieldCommonName=Nome comum +LDAPFieldFirstName=Primeiro nome +LDAPFieldFirstNameExample=Exemplo : deumnome +LDAPFieldPhone=Telefone profissional +LDAPFieldPhoneExample=Exemplo : númerotelefônico +LDAPFieldHomePhoneExample=Exemplo : númerodecasa +LDAPFieldMobile=Celular +LDAPFieldMobileExample=Exemplo : móvel +LDAPFieldFaxExample=Exemplo : númerodefax +LDAPFieldAddress=Endereço +LDAPFieldAddressExample=Exemplo : Rua +LDAPFieldZip=CEP +LDAPFieldZipExample=Exemplo : 00.000-000 LDAPFieldTown=Município -LDAPFieldDescriptionExample=Exemplo : description +LDAPFieldDescriptionExample=Exemplo : Descrição LDAPFieldNotePublic=Nota Pública LDAPFieldNotePublicExample=Exemplo: publicnote -LDAPFieldGroupMembersExample=Exemplo: uniqueMember -LDAPFieldBirthdate=data de nascimento -LDAPFieldSidExample=Exemplo : objectsid -LDAPFieldEndLastSubscription=data finalização como membro -LDAPParametersAreStillHardCoded=Parâmetros LDAP ainda são codificados (na classe de contato) -LDAPSetupNotComplete=configuração LDAP incompleta (a completar em Outras pestanhas) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Administrador o senha não indicados. os acessos LDAP serão anônimos e em só leitura. -LDAPDescContact=Esta página permite definir o Nome dos atributos da árvore LDAP para cada informação dos contatos Dolibarr. -LDAPDescUsers=Esta página permite definir o Nome dos atributos da árvore LDAP para cada informação dos Usuários Dolibarr. -LDAPDescGroups=Esta página permite definir o Nome dos atributos da árvore LDAP para cada informação dos grupos Usuários Dolibarr. -LDAPDescMembers=Esta página permite definir o Nome dos atributos da árvore LDAP para cada informação dos Membros do módulo associações Dolibarr. -LDAPDescValues=os valores de Exemplos se adaptan a OpenLDAP com os schemas carregados: core.schema, cosine.schema, inetorgperson.schema). sim voçê utiliza os a valores sugeridos e OpenLDAP, modifique a sua arquivo de configuração LDAP slapd.conf para tener todos estos schemas ativos. -PerfDolibarr=Relatório de configuração Desempenho / otimização -YouMayFindPerfAdviceHere=Você vai encontrar nesta página algumas verificações ou conselhos relacionados com o desempenho. -NotInstalled=Não instalado, por que o seu servidor não está mais lento por isso. -ApplicativeCache=Cache de aplicativo -MemcachedNotAvailable=No cache de aplicativo encontrado. Você pode melhorar o desempenho através da instalação de um servidor de cache Memcached e um módulo capaz de usar este servidor cache. Mais informações aqui OpenLDAP
seguido dos temas carregados: core.schema, cosine.schema, inetorgperson.schema). Se você usa esses valores e OpenLDAP, modifique seu arquivo de configurações LDAP slapd.conf para ter todos esses temas carregados. +ForANonAnonymousAccess=Para um acesso autenticado (para um acesso de escrita por exemplo) +PerfDolibarr=Configurações/otimizações de relatório de performance +YouMayFindPerfAdviceHere=Você achará nesta página alguns checks ou conselhos relatados sobre a performance. +NotInstalled=Não instalado, então seu servidor não está lento por causa disso. +ApplicativeCache=cache de aplicativo +MemcachedNotAvailable=Nenhum cache de aplicativo foi encontrado. Você pode aumentar a performance instalando um servidor de cache Memcached e o módulo será capaz de usar esse servidor de cache. Mais informações aqui http://wiki.dolibarr.org/index.php/Module_MemCached_EN. Note que vários provedores de host web não dispõem de tal servidor de cache. +MemcachedModuleAvailableButNotSetup=Módulo de aceleração da memória cache está ativado mas a configuração não está completa +MemcachedAvailableAndSetup=Módulo de aceleração da memória cache está ativado e a configuração está completa +OPCodeCache=cache OPCode +NoOPCodeCacheFound=Nenhum cache OPCode foi achado. Pode ser que você use outro cache OPCode do que XCache ou eAccelerator (bom), pode ser que você não tenha cache OPCode (muito mau). +FilesOfTypeCached=Arquivos do tipo %s estão no cache pelo servidor HTTP +FilesOfTypeNotCached=Arquivos do tipo %s não estão no cache pelo servidor HTTP +FilesOfTypeCompressed=Arquivos do tipo %s estão comprimidos pelo servidor HTTP +FilesOfTypeNotCompressed=Arquivos do tipo %s não estão comprimidos pelo servidor HTTP +CompressionOfResources=Comprimir as respostas HTTP +TestNotPossibleWithCurrentBrowsers=Não é possível detecção automática +ProductSetup=Configurações do módulo dos produtos +ServiceSetup=Configurações do módulo de serviços +ProductServiceSetup=Configurações dos módulos de produtos e serviços +NumberOfProductShowInSelect=Max número de produtos na lista selecionada (0=sem limite) +ConfirmDeleteProductLineAbility=Confirmação quando remover linha do produto nos formulários +ModifyProductDescAbility=Personalização das descrições do produto nos formulários +ViewProductDescInFormAbility=Visualização das descrições do produto nos formulários (caso contrário como popup tooltip) +ViewProductDescInThirdpartyLanguageAbility=Visualização das descrições de produtos na linguagem de terceiros UseSearchToSelectProductTooltip=Além disso, se você tem um grande número de produtos (> 100 000), você pode aumentar a velocidade, definindo PRODUCT_DONOTSEARCH_ANYWHERE constante a 1 em Setup Outro. Busca, então, ser limitada até o início da string. -UseSearchToSelectProduct=Use um formulário de pesquisa para escolher um produto (em vez de uma lista drop-down). -UseEcoTaxeAbility=Asumir ecotaxa (DEEE) -SetDefaultBarcodeTypeProducts=Tipo de código de barras utilizado por default para os produtos -SetDefaultBarcodeTypeThirdParties=Tipo de código de barras utilizado por default para os Fornecedores +UseSearchToSelectProduct=Usar um formulário de pesquisa para escolher um produto (ao invés de listá-los).
Também se tiver um grande número de produtos (> 100 000), você pode aumentar a velocidade alterando a constante PRODUCT_DONOTSEARCH_ANYWHERE para 1 no Configuração->Outros. A pesquisa será limitada para o começo da string. +UseEcoTaxeAbility=Suportar Eco-Taxa +SetDefaultBarcodeTypeProducts=Tipo de código de barras default para usar nós produtos +SetDefaultBarcodeTypeThirdParties=Tipo de código de barras default para usar nós terceiros ProductCodeChecker=Módulo para geração de código do produto e verificação (produto ou serviço) -ProductOtherConf=A configuração do produto / serviço -SyslogOutput=Saída do log +ProductOtherConf=Configurações de Produto / Serviço +SyslogSetup=Configurações do módulo de logs +SyslogOutput=Saídas de logs SyslogLevel=Nível SyslogSimpleFile=Arquivo -SyslogFilename=Nome e Rota do Arquivo -YouCanUseDOL_DATA_ROOT=pode utilizar DOL_DATA_ROOT/dolibarr.log para um log na pasta 'documentos' de Dolibarr. -ErrorUnknownSyslogConstant=a constante %s não é uma constante syslog conhecida -OnlyWindowsLOG_USER=Somente para Windows suporta LOG_USER -DonationsSetup=configuração do módulo Bolsas -BarcodeSetup=configuração dos códigos de barra -BarcodeEncodeModule=Módulos de codificação dos códigos de barra -CodeBarGenerator=gerador do código -ChooseABarCode=nenhum gerador selecionado -BarcodeDescEAN8=Códigos de barra tipo EAN8 -BarcodeDescEAN13=Códigos de barra tipo EAN13 -BarcodeDescUPC=Códigos de barra tipo UPC -BarcodeDescISBN=Códigos de barra tipo ISBN -BarcodeDescC39=Códigos de barra tipo C39 -BarcodeDescC128=Códigos de barra tipo C128 +SyslogFilename=Nome do arquivo e caminho +YouCanUseDOL_DATA_ROOT=Você pode usar DOL_DATA_ROOT/dolibarr.log para um arquivo de log no diretório dos "documentos" do Dolibarr. +ErrorUnknownSyslogConstant=A Constante %s não é conhecida pelas constantes do Syslog +OnlyWindowsLOG_USER=Somente Windows suporta LOG_USER +DonationsSetup=Configurações do módulo de doações +DonationsReceiptModel=Templates de recibos de doação +BarcodeSetup=Configurações de código de barras +PaperFormatModule=Módulo de formato de impressão +BarcodeEncodeModule=Tipo de codificação do código de barras +UseBarcodeInProductModule=Usar códigos de barras nos produtos +CodeBarGenerator=Gerador de código de barras +ChooseABarCode=Nenhum gerador de código de barras +FormatNotSupportedByGenerator=Formato não suportado por esse gerador +BarcodeDescEAN8=Código de barras tipo EAN8 +BarcodeDescEAN13=Código de barras tipo EAN13 +BarcodeDescUPC=Código de barras tipo UPC +BarcodeDescISBN=Código de barras tipo ISBN +BarcodeDescC39=Código de barras tipo C39 +BarcodeDescC128=Código de barras tipo C128 BarcodeDescDATAMATRIX=Código de barras do tipo Datamatrix BarcodeDescQRCODE=Código de barras do tipo QR code +GenbarcodeLocation=Ferramenta em linha de comando para geração de código de barras (usado pelo mecanismo interno para alguns tipos de código de barras) +BarcodeInternalEngine=Mecanismo interno BarCodeNumberManager=Gerente de auto definir números de código de barras -WithdrawalsSetup=configuração do módulo Débitos Diretos -ExternalRSSSetup=configuração das importações do fluxos RSS -NewRSS=Sindicação de um Novo fluxos RSS -MailingEMailError=Voltar E-mail (Erros-to) para e-mails com erros +WithdrawalsSetup=Configurações de módulo de retirada +ExternalRSSSetup=Configurações importantes de RSS externo +NewRSS=Novo RSS Feed +RSSUrl=URL de RSS +RSSUrlExample=Um interessante RSS feed +MailingSetup=Configurações do módulo de e-mails +MailingEMailFrom=Emissor de e-mails (de) por envio de e-mail pelo módulo de e-mails +MailingEMailError=Retornar e-mails (erros-para) por e-mails que contêm erros MailingDelay=Segundos de espera antes do envio da mensagem seguinte -NotificationSetup=Configuração do módulo de notificações por e-mail -ListOfAvailableNotifications=Lista de eventos que você pode definir a notificação em diante, para cada thirdparty (entrar em cartão thirdparty para instalação) ou definindo um e-mail fixa (Lista depende módulos ativados) +NotificationSetup=Configurações do módulo de notificações por e-mail +NotificationEMailFrom=Emissor de e-mails (de) por envio de notificação por e-mails +ListOfAvailableNotifications=Lista de notificações disponíveis (Essa lista depende dos módulos ativos) FixedEmailTarget=Alvo fixo e-mail -SendingsSetup=configuração do módulos envios -SendingsNumberingModules=Expedição de numeração de módulos -NoNeedForDeliveryReceipts=na maioria dos casos, as entregas utilizam como nota de entregas ao cliente (lista de produtos a enviar), se recebem e assinam por o cliente. Por o tanto, a hoja de entregas de produtos é uma característica duplicada e rara vez é ativada. -FreeLegalTextOnShippings=Texto livre sobre transferências -DeliveryOrderModel=Modelo de ordem de envio -DeliveriesOrderAbility=Fretes pagos por o cliente -AdvancedEditor=Formatação avançada -ActivateFCKeditor=Ativar FCKeditor para : -FCKeditorForCompany=Criação/Edição WYSIWIG da descrição e notas dos Fornecedores -FCKeditorForUserSignature=WYSIWIG criação / edição da assinatura do usuário -FCKeditorForMail=Criação WYSIWIG / edição para todos os emails (exceto Outils-> e-mail) -OSCommerceErrorConnectOkButWrongDatabase=a login se ha estabelecido, mas a base de dados não parece de OSCommerce. -OSCommerceTestOk=a login à servidor '%s' sobre a base '%s' por o Usuário '%s' é correta. -OSCommerceTestKo1=a login à servidor '%s' sobre a base '%s' por o Usuário '%s' não se pode efetuar. -OSCommerceTestKo2=a login à servidor '%s' por o Usuário '%s' ha falhado. -StockSetup=Configuração do módulo Armazém / Warehouse +SendingsSetup=Configurações do módulo de envios +SendingsReceiptModel=Modelo de recibo do envio +SendingsNumberingModules=Módulos de númeração de envios +SendingsAbility=Suporte para folhas de envios, para entregas de cliente +NoNeedForDeliveryReceipts=Na maioria dos casos, recibos de envios são usados em duas folhas pela entrega de clientes (lista de produtos a enviar) e folhas que é recebida e assinado pelo cliente. Então o recibo de entrega do produto é duplicado e é raramente ativado. +FreeLegalTextOnShippings=Texto livre para envios +DeliveryOrderNumberingModules=Módulo de numeração de recibos de produtos entregues +DeliveryOrderModel=Modelo de recibo de produtos entregues +DeliveriesOrderAbility=Suporta recibos de entrega de produtos +FreeLegalTextOnDeliveryReceipts=Texto livre em recibos de entregas +AdvancedEditor=Editor avançado +ActivateFCKeditor=Editor avançado ativo por: +FCKeditorForCompany=Criação/edição do WYSIWIG nas descrições de elementos e nota (exceto produtos/serviços) +FCKeditorForProduct=Criação/edição do WYSIWIG nas descrições de produtos/serviços e nota +FCKeditorForProductDetails=Criação/edição do WYSIWIG nas linhas dos detalhes de produtos de todas entidades (orçamentos, pedidos, faturas, etc...). Aviso: Usando essa opção nesse caso é extremamente NÃO recomendado, podendo causar problemas com caracteres especiais e no formato da página na construção do arquivo PDF. +FCKeditorForMailing=Criação/edição do WYSIWIG nos E-Mails massivos (ferramentas->emailing) +FCKeditorForUserSignature=criação/edição do WYSIWIG nas assinaturas de usuários +FCKeditorForMail=criação/edição do WYSIWIG para todas as correspondências (exceto Outils->eMailing) +OSCommerceErrorConnectOkButWrongDatabase=Conexão foi um sucesso mas o banco de dados não enxerga o banco de dados do OSCommerce (chave %s não achada na tabela %s). +OSCommerceTestOk=Conexão ao servidor '%s' no banco de dados '%s' com o usuário '%s' foi um sucesso. +OSCommerceTestKo1=Conexão ao servidor '%s' foi um sucesso mas o banco de dados '%s' não foi alcançado. +OSCommerceTestKo2=Conexão ao servidor '%s' com o usuário '%s' falhou. +StockSetup=Configurações do módulo de estoque +UserWarehouse=Usar estoques pessoal do usuário IfYouUsePointOfSaleCheckModule=Se você usar um módulo Ponto de Venda (POS módulo fornecido por padrão ou outro módulo externo), esta configuração pode ser ignorado pelo seu modulo ponto de Venda. A maioria modulo ponto de Vendas são projetados para criar imediatamente uma fatura e diminuir estoque por padrão tudo o que são opções aqui. Então, se você precisa ou não ter uma diminuição de ações quando registrar uma venda a partir do seu ponto de venda, verifique também a configuração do seu módulo POS. -Menu=Seleção dos menus -MenuHandler=Gerente de menus -HideUnauthorizedMenu=Esconder menus não autorizadas (cinza) -DetailMenuHandler=Nome do gerente de menus -DetailMenuModule=Nome do módulo sim a entrada do menu é resultante de um módulo -DetailType=Tipo de menu (superior o izquierdp) -DetailTitre=Etiqueta de menu -DetailMainmenu=Grupo à qual pertence (obsoleto) -DetailUrl=URL da página fazia a qual o menu aponta -DetailLeftmenu=Condição de visualização o não (obsoleto) -DetailEnabled=Condição para mostrar ou não entrada -DetailRight=Condição de visualização completa o cristálida -DetailLangs=Arquivo langs para a tradução do título -DetailTarget=Objetivo -DetailLevel=Nível (-1:menu superior, 0:principal, >0 menu e submenú) -ConfirmDeleteMenu=Tem certeza que quer eliminar a entrada de menu %s ? -DeleteLine=Apagar a Linha -ConfirmDeleteLine=Tem certeza que quer eliminar esta linha? -TaxSetup=Instalação de módulo de Impostos, encargos sociais e fiscais e dividendos -OptionVatMode=Opção de carga de ICMS -OptionVATDefault=Regime de caixa -OptionVATDebitOption=Regime de competência -OptionVatDefaultDesc=a carga do ICMS é:
-ao envio dos bens
-sobre o pagamento por os serviços -OptionVatDebitOptionDesc=a carga do ICMS é:
-ao envio dos bens
-sobre o faturamento dos serviços -SummaryOfVatExigibilityUsedByDefault=Hora do VTA exigibilidade por padrão de acordo com a opção escolhida: -OnPayment=Mediante o pagamento +MenuDeleted=Menu Deletado +TreeMenu=Árvores de menus +MenuConf=Configurações de menus +Menu=Seleção de menus +MenuModule=Fonte do módulo +HideUnauthorizedMenu=Esconder menus não autorizados (cinza) +DetailId=Menu ID +DetailMenuHandler=Gestor de menu onde mostra novo menu +DetailMenuModule=Nome do módulo se a entrada do menu vier de um módulo +DetailType=Tipo do menu (superior o esquerdo) +DetailTitre=Etiqueta do menu ou código da etiqueta para tradução +DetailMainmenu=Grupo a que pertence (obsoleto) +DetailUrl=URL onde o menu envia para você (URL absoluta ou link externo com http://) +DetailLeftmenu=Mostrar condição ou não (obsoleto) +DetailEnabled=Condição para mostra ou não entrar +DetailRight=Condição para mostrar menus não autorizados em cinza +DetailLangs=Nomes de arquivos lang para código de etiqueta da tradução +DetailTarget=Alvos por links (_blank topo abre uma nova janela) +DetailLevel=Nível (-1:menu superior, 0:menu do cabeçario, >0 menu e sub-menu) +ModifMenu=Modificar menu +DeleteMenu=Deletar entrada do menu +ConfirmDeleteMenu=Você tem certeza que deseja deletar a entrada do menu? %s ? +DeleteLine=Apagar linha +ConfirmDeleteLine=Você tem certeza que deseja deletar essa linha? +TaxSetup=Configurações do módulo taxas, contribuição social e dividendos +OptionVatMode=Imposto ICMS +OptionVATDefault=Base em Dinheiro +OptionVATDebitOption=Base em Acréscimo +OptionVatDefaultDesc=ICMS é um imposto:
- Nas entregas dos bens (Nós usamos a data da fatura)
- Nos pagamentos dos serviços +OptionVatDebitOptionDesc=ICMS é um imposto:
- Nas entregas dos bens (Nós usamos a data da fatura)
- Na emissão da fatura do serviço +SummaryOfVatExigibilityUsedByDefault=O tempo do ICMS exige por default as seguintes opções a serem escolhidas: +OnPayment=No pagamento OnInvoice=Na fatura -SupposedToBePaymentDate=Data de pagamento usado -SupposedToBeInvoiceDate=Data da fatura usado -InvoiceDateUsed=Data da fatura usado -YourCompanyDoesNotUseVAT=Sua empresa foi definido para não usar de IVA (Home - Configuração - Empresa / Fundação), então não há nenhuma opção de VAT a configuração. -AccountancyCodeSell=Conta Venda. código -AccountancyCodeBuy=Compre conta. código -AgendaSetup=Módulo configuração de ações e agenda -PasswordTogetVCalExport=Chave de autorização vcal export link -PastDelayVCalExport=Não exportar evento mais antigo que -AGENDA_USE_EVENT_TYPE=Use eventos tipos (geridos em Setup Menu -> Dicionário -> Tipo de eventos da agenda) +SupposedToBePaymentDate=Data usada no pagamento +SupposedToBeInvoiceDate=Data usada na fatura +Buy=Compra +Sell=Venda +InvoiceDateUsed=Data usada na fatura +YourCompanyDoesNotUseVAT=Sua empresa está definido para não usar ICMS (Home->Configuração->Empresa), então não há nenhuma opção de configuração do ICMS. +AccountancyCode=Código de contabilidade +AccountancyCodeSell=Código de contas de vendas +AccountancyCodeBuy=Código de contas de compras +AgendaSetup=Configurações do módulo de eventos e agenda +PasswordTogetVCalExport=Chave para autorizar exportação do link +PastDelayVCalExport=Não exportar eventos antigos de +AGENDA_USE_EVENT_TYPE=Use tipos de eventos (gestor dentro de configuração->Dicionários->llx_c_actioncomm) AGENDA_DEFAULT_FILTER_TYPE=Use automaticamente este tipo de evento no filtro de busca da agenda AGENDA_DEFAULT_FILTER_STATUS=Use automaticamente este estado no filtro das buscas da agenda AGENDA_DEFAULT_VIEW=Qual aba voçê quer abrir por padrão quando o menu Agenda e selecionado -ClickToDialDesc=Este módulo permite agregar um ícone depois do número de telefone de contatos Dolibarr. um clic neste ícone, Chama a um servidor com uma URL que se indica a continuação. Esto pode ser usado para Chamar à sistema call center de Dolibarr que pode Chamar à número de telefone em um sistema SIP, por Exemplo. -CashDeskSetup=configuração do módulo de Caixa registradora -CashDeskThirdPartyForSell=Terceiro padrão para uso em vendas -CashDeskBankAccountForSell=conta de efetivo que se utilizará para as vendas -CashDeskBankAccountForCheque=Padrão conta para usar a receber pagamentos por cheque -CashDeskBankAccountForCB=Padrão conta para usar a receber pagamentos por cartões de crédito +ClickToDialDesc=Esse módulo permite você adicionar um ícone depois do telefone. Um clique nesse ícone irá chamar um servidor com URL particular definida abaixo. Isso pode ser usado para chamar uma central de chamadas do Dolibarr que pode chamar o número telefonico no sistema SIP por exemplo. +CashDeskSetup=Configurações do módulo do ponto de vendas +CashDeskThirdPartyForSell=Terceiro genérico para usar nas vendas +CashDeskBankAccountForSell=Conta default para usar nos pagamentos em dinheiro +CashDeskBankAccountForCheque=Conta default para usar nos pagamentos em cheque +CashDeskBankAccountForCB=Conta default para usar nos pagamentos em cartão de crédito CashDeskDoNotDecreaseStock=Desativar diminuição de ações quando uma venda é feita a partir de ponto de venda (se "não", diminuição de ações é feito para cada vendem feito a partir de POS, o que for opção definida no módulo de estoque). -CashDeskIdWareHouse=Forçar e restringir armazém a usar para redução de ações +CashDeskIdWareHouse=Depósito para usar nas vendas StockDecreaseForPointOfSaleDisabled=Diminuição do estoque pelo PDV desativado -BookmarkSetup=Configuração do Módulo de Favoritos -BookmarkDesc=Este módulo lhe permite Gerenciar os links e acessos diretos. também permite Adicionar qualquer página de Dolibarr o link web ao menu de acesso rápido da esquerda. -NbOfBoomarkToShow=Número máximo de marcadores que se mostrará ao menu -WebServicesSetup=Configuração do módulo Webservices -WebServicesDesc=Ao habilitar este módulo, Dolibarr se tornar um servidor web service para fornecer serviços web diversos. -WSDLCanBeDownloadedHere=Arquivos descritores WSDL dos serviços prestados pode ser baixado aqui -EndPointIs=Clientes SOAP devem enviar seus pedidos para o terminal Dolibarr Disponível em URL +StockDecreaseForPointOfSaleDisabledbyBatch=Diminuir estoque no Ponto De Vendas não é compativel com o gerenciamento do lote +BookmarkSetup=Configurações do módulo de marcadores +BookmarkDesc=Esse módulo permite você gerenciar marcadores. Você pode também adicionar atalhos para qualquer página do Dolibarr ou sites externos no seu menu esquerdo. +NbOfBoomarkToShow=Número máximo de marcadores para mostrar no menu esquerdo +WebServicesSetup=Configurações do módulo de serviço de web +WebServicesDesc=Ativando esse módulo, Dolibarr se torna um servidor de serviços web e fornece vários serviços web. +WSDLCanBeDownloadedHere=Arquivos descritor WSDL que fornece serviços que podem ser baixados aqui +EndPointIs=Clientes SOAP devem enviar suas requisições para o Dolibarr endpoint disponível na URL ApiSetup=Instalação de módulo de API ApiDesc=Ao ativar este módulo, Dolibarr se tornar um servidor REST para fornecer serviços de web diversos. KeyForApiAccess=Chave para usar a API (parâmetro "api_key") @@ -1091,31 +1325,32 @@ ApiEndPointIs=Você pode acessar a API na url ApiExporerIs=Você pode explorar a API na url OnlyActiveElementsAreExposed=Somente elementos de módulos habilitados são expostos ApiKey=Chave para API -BankSetupModule=Configuração do módulo Banco -FreeLegalTextOnChequeReceipts=Texto livre em recibos de verificação -BankOrderShow=Ordem de apresentação das contas bancárias para os países usando o "número do banco detalhada" +BankSetupModule=Configurações do módulo bancário +FreeLegalTextOnChequeReceipts=Texto livre para recibos de cheque +BankOrderShow=Mostrar ordem das contas bancárias para países usando "Número do banco detalhado" +BankOrderGlobalDesc=Ordem geral exibida BankOrderES=Espanhol -BankOrderESDesc=Ordem de exibição Espanhol -MultiCompanySetup=Configuração do módulo Multi-empresa -SuppliersSetup=Configuração Módulo Fornecedor -SuppliersCommandModel=Modelo completo de ordem fornecedor (logo. ..) -SuppliersInvoiceModel=Modelo completo da fatura do fornecedor (logo. ..) -SuppliersInvoiceNumberingModel=Faturas de fornecedores de numeração modelos +BankOrderESDesc=Ordem espanhola exibida +MultiCompanySetup=Configurações do módulo multi-empresas +SuppliersSetup=Configurações do módulo de fornecedores +SuppliersCommandModel=Template completo de pedidos de fornecedores (logo...) +SuppliersInvoiceModel=Template completo de faturas de fornecedores (logo...) +SuppliersInvoiceNumberingModel=Modelo de numeração de faturas de fornecedores IfSetToYesDontForgetPermission=Se definido como sim, não se esqueça de fornecer permissões a grupos ou usuários autorizados para a segunda aprovação -GeoIPMaxmindSetup=Configuração do módulo GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Caminho para o arquivo que contém a tradução Maxmind ip país. Exemplos: / Usr / local / share / GeoIP / GeoIP.dat / Usr / share / GeoIP / GeoIP.dat -NoteOnPathLocation=Note-se que o seu ip para o arquivo de dados do país devem estar dentro de um diretório do seu PHP pode ler (Verifique se o seu PHP open_basedir configuração e as permissões do sistema de arquivos). -YouCanDownloadFreeDatFileTo=Você pode baixar uma versão demo gratuita do arquivo país Maxmind GeoIP em. -YouCanDownloadAdvancedDatFileTo=Você também pode baixar uma versão,mais completa, com atualizações, do arquivo país em Maxmind GeoIP. -TestGeoIPResult=Teste de um IP de conversão -> país -ProjectsNumberingModules=Projetos de numeração módulo -ProjectsSetup=Configuração do módulo de Projetos -ProjectsModelModule=Os relatórios do projeto modelo de documento -TasksNumberingModules=Módulo de numeração de Tarefas -TaskModelModule=Relatórios Tarefas modelo de documento +GeoIPMaxmindSetup=Configurações do módulo GeoIP Maxmind +PathToGeoIPMaxmindCountryDataFile=Caminho do arquivo que contêm Maxmind ip para tradução do país.
Exemplos:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat +NoteOnPathLocation=Nota que seu ip para o arquivo de dados do país deve estar dentro do diretório do seu PHP que possa ser lido (Verifique a configuração do seu PHP open_basedir e o sistema de permissões). +YouCanDownloadFreeDatFileTo=Você pode baixar uma Versão demo do arquivo Maxmind GeoIP do seu país no %s. +YouCanDownloadAdvancedDatFileTo=Você também pode baixar uma versão mais completa, com updates do arquivo Maxmind GeoIP do seu país no %s. +TestGeoIPResult=Teste a conversão IP -> país +ProjectsNumberingModules=Modelo de numeração de projetos +ProjectsSetup=Configurações do módulo de projetos +ProjectsModelModule=Modelo de documento de relatório de projeto +TasksNumberingModules=Modelo de numeração de tarefas +TaskModelModule=Modelo de numeração de relatório de tarefas UseSearchToSelectProject=Use campos de completação automática para escolher projeto (em vez de usar uma caixa de lista) -ECMSetup =Instalar GED -ECMAutoTree =Pasta árvore automática e documento +ECMSetup =Configurações de Gestão de Conteúdo Empresarial (ECM) +ECMAutoTree =Pasta e documentos de árvore automática FiscalYears=Anos fiscais FiscalYear=Ano fiscal FiscalYearCard=Ficha ano fiscal @@ -1127,6 +1362,7 @@ MAIN_APPLICATION_TITLE=Forçar nome visível da aplicação (aviso: definir o se NbMajMin=Número mínimo de caracteres maiúsculos NbNumMin=Número mínimo de caracteres numéricos NbSpeMin=Número mínimo de caracteres especiais +NbIteConsecutive=Numero maximo dos mesmos caracteres repetidos SortOrder=Ordem de classificação TypePaymentDesc=0: Pagamento para Cliente, 1: Pagamento para Fornecedor, 2: Pagamentos para Clientes e Fornecedores IncludePath=Incluir caminho (definido na variável %s) @@ -1142,6 +1378,7 @@ SomethingMakeInstallFromWebNotPossible=A instalação do módulo externo não é SomethingMakeInstallFromWebNotPossible2=Por esta razão, o processo de atualização descrito aqui é apenas manual de passos que um usuário privilegiado pode fazer. HighlightLinesOnMouseHover=Destacar linhas de tabela quando o mouse passar sobre elas PressF5AfterChangingThis=Pressione F5 no teclado depois de mudar este valor para tê-lo eficaz +NotSupportedByAllThemes=Funcionara com o tema eldy porem nao e suportado em todos os temas. BackgroundColor=Cor de fundo TopMenuBackgroundColor=Cor de fundo para o menu de topo LeftMenuBackgroundColor=A cor do fundo para o menu esquerdo @@ -1155,9 +1392,12 @@ PositionIntoComboList=Posição de linha em listas de combinação SellTaxRate=Taxa de imposto sobre venda TypeOfTemplate=Tipo de modelo TemplateIsVisibleByOwnerOnly=Template é visível somente pelo proprietário +ExpectedChecksum=Checksum esperado +CurrentChecksum=Checksum corrente MailToSendProposal=Para enviar a proposta ao cliente MailToSendOrder=Para enviar pedido do cliente MailToSendInvoice=Para enviar fatura do cliente +MailToSendShipment=Enviar envio MailToSendIntervention=Para enviar intervenção MailToSendSupplierRequestForQuotation=Para enviar a solicitação de cotação para fornecedor MailToSendSupplierOrder=Para enviar ordem fornecedor diff --git a/htdocs/langs/pt_BR/agenda.lang b/htdocs/langs/pt_BR/agenda.lang index 6c68383a67b..0dd0cdab8d7 100644 --- a/htdocs/langs/pt_BR/agenda.lang +++ b/htdocs/langs/pt_BR/agenda.lang @@ -1,76 +1,79 @@ # Dolibarr language file - Source file is en_US - agenda -IdAgenda=ID evento +IdAgenda=ID do Evento Actions=Eventos -ActionsArea=Área de eventos (Atividades e Tarefas) +ActionsArea=Área de eventos (Ações e Tarefas) +LocalAgenda=Calendário local ActionsOwnedBy=Evento de propriedade do -DoneBy=Concluído por +DoneBy=Feito por Event=Evento -EventsNb=Numero de eventos -EventOnFullDay=Evento durante todo o dia (s) +EventOnFullDay=Evento no(s) dia(s) todo SearchAnAction=Procurar um evento/tarefa MenuToDoActions=Todos os eventos incompletos -MenuDoneActions=Todas os eventos completos -MenuToDoMyActions=Os meus eventos incompletas -MenuDoneMyActions=Os meus eventos completos -ListOfEvents=Lista de eventos (calendário interno) -ActionsAskedBy=Eventos registrados por -ActionsToDoBy=Eventos atribuídos à -ActionsDoneBy=Eventos concluído por +MenuToDoMyActions=Meus eventos incompletos +MenuDoneMyActions=Meus eventos terminados +ListOfEvents=Lista de eventos Dolibarr +ActionsAskedBy=Eventos relatados pelo +ActionsToDoBy=Eventos atribuídos para +ActionsDoneBy=Eventos feito por ActionsForUser=Eventos para o usuário ActionsForUsersGroup=Eventos para todos os usuários do grupo ActionAssignedTo=Evento atribuído a AllMyActions=Todos meus eventos/tarefas -AllActions=Todas os eventos/tarefas -ViewCal=Exibir Calendário -ViewDay=Exibir dia -ViewWeek=Exibir semana +AllActions=Todos eventos/tarefas +ViewCal=Ver Mês +ViewDay=Ver dia +ViewWeek=ver semana ViewPerUser=Visão do usuário -ViewWithPredefinedFilters=Exibir com filtros predefinidos -AgendaAutoActionDesc=Defina aqui quais os eventos que deseja que o Dolibarr adicione automaticamente na sua agenda. Se nada estiver marcado (por padrão), sera incluído só eventos manualmente na agenda. -AgendaSetupOtherDesc=Esta página fornece opções para permitir a exportação de seus eventos do Dolibarr para um calendário externo (thunderbird, google agenda, ...) -AgendaExtSitesDesc=Esta página permite importar calendários de fontes externas para sua agenda de eventos no Dolibarr. -ActionsEvents=Para qual eventos o Dolibarr irá criar uma atividade na agenda automaticamente -PropalValidatedInDolibarr=Proposta %s validada +AgendaAutoActionDesc=Defina aqui os eventos que deseja que o Dolibarr crie automáticamente em eventos na agenda. Se nada for marcado (por default), somente ações manuias serão inclusas na agenda. +AgendaSetupOtherDesc=Essa página fornece a opção de exportar seus eventos Dolibarr para um calendário externo (thunderbird, google, ...) +AgendaExtSitesDesc=Essa página permite declarar calendários externos para serem visto nos eventos da agenda Dolibarr. +ActionsEvents=Eventos no qual Dolibarr cria uma ação na agenda automáticamente. +PropalValidatedInDolibarr=Orçamento %s validado InvoiceValidatedInDolibarr=Fatura %s validada InvoiceValidatedInDolibarrFromPos=Fatura %s validada no POS -InvoiceBackToDraftInDolibarr=Fatura %s volta ao estado de rascunho +InvoiceBackToDraftInDolibarr=Fatura %s voltou para o status de rascunho +InvoiceDeleteDolibarr=Fatura %s deletada OrderValidatedInDolibarr=Pedido %s validado OrderDeliveredInDolibarr=Ordem %s classificadas entregues OrderCanceledInDolibarr=Pedido %s cancelado OrderBilledInDolibarr=Ordem %s classificadas faturado OrderApprovedInDolibarr=Pedido %s aprovado OrderRefusedInDolibarr=Pedido %s recusado -OrderBackToDraftInDolibarr=Pedido %s volta ao estado de rascunho -ProposalSentByEMail=Proposta comercial %s enviada por e-mail -OrderSentByEMail=Pedido do cliente %s enviado por e-mail -InvoiceSentByEMail=Fatura do cliente %s enviada por e-mail -SupplierOrderSentByEMail=Pedido do fornecedor %s enviado por e-mail -SupplierInvoiceSentByEMail=Fatura do fornecedor %s enviada por e-mail -ShippingSentByEMail=Embarque %s enviada por e-mail +OrderBackToDraftInDolibarr=Pedido %s voltou para o status de rascunho +ProposalSentByEMail=Orçamento %s enviada por e-mail +OrderSentByEMail=Pedido de cliente %s enviado por e-mail +InvoiceSentByEMail=Fatura de cliente %s enviado por e-mail +SupplierOrderSentByEMail=Pedido de fornecedor %s enviado por e-mail +SupplierInvoiceSentByEMail=Fatura de fornecedor %s enviado por e-mail +ShippingSentByEMail=Frete %s enviado por e-mail ShippingValidated=Envio %s validado -InterventionSentByEMail=Intervenção %s enviada por e-mail -NewCompanyToDolibarr=Fornecedor criado -DateActionPlannedStart=Data de início do planejamento -DateActionPlannedEnd=Data final do planejamento +InterventionSentByEMail=Intervenção %s enviado por e-mail +NewCompanyToDolibarr=Terceiro Criado +DateActionPlannedStart=Data planejada de início +DateActionPlannedEnd=Data planejada de término DateActionDoneStart=Data real de início -DateActionDoneEnd=Data real de fim +DateActionDoneEnd=Data real de término +DateActionStart=Data de início DateActionEnd=Data de término -AgendaUrlOptions1=Você também pode adicionar os seguintes parâmetros para filtrar o resultado: -AgendaUrlOptions2=login =%s ​​para restringir a saída para ações criadas por ou atribuídos para o usuário %s. -AgendaUrlOptions3=logina=%s para restringir açoes de propriedade do usuario %s. -AgendaUrlOptions4=Usuário=%s permitir apenas resultados para atividades atribuídas ao usuário %s. +AgendaUrlOptions1=Você também pode adicionar os seguintes parâmetros nos filtros de saída: +AgendaUrlOptions2=login=%s para restringir a saída para ações criada por, atribuída para ou feito pelo usuário %s. +AgendaUrlOptions3=logina=%s para restringir a saída para ações criada pelo usuário %s. +AgendaUrlOptions4=logint=%s para restringir a saída para ações atribuídas para o usuário %s. AgendaUrlOptionsProject=project=PROJECT_ID para restringir a saida de açoes associadas ao projeto PROJECT_ID. -AgendaShowBirthdayEvents=Visualizar aniversários dos contatos -AgendaHideBirthdayEvents=Esconder aniversários dos contatos -ExportDataset_event1=Lista de eventos na agenda +AgendaShowBirthdayEvents=Mostrar Aniversariantes dos Contatos +AgendaHideBirthdayEvents=Esconder Aniversariantes dos Contatos +ExportDataset_event1=Lista dos eventos da agenda DefaultWorkingDays=Padrão dias úteis por semana (Exemplo: 1-5, 1-6) DefaultWorkingHours=Padrão horas de trabalho em dia (Exemplo: 9-18) -ExtSitesEnableThisTool=Mostrar calendários externos (definidos na configuração global) na agenda. Não afeta calendários externos definidos pelos usuários. -AgendaExtNb=Calendário nr. %s +ExtSitesEnableThisTool=Mostrar calendários externos na agenda +ExtSitesNbOfAgenda=Número de calendarios +AgendaExtNb=Calendário núm %s ExtSiteUrlAgenda=URL para acessar arquivos .ical ExtSiteNoLabel=Sem descrição WorkingTimeRange=Intervalo de tempo trabalhado WorkingDaysRange=Intervalo de dias trabalhado +VisibleTimeRange=Intervalo de tempo visível +VisibleDaysRange=Intervalo de dias visíveis AddEvent=Criar evento MyAvailability=Minha disponibilidade ActionType=Tipo de Evento diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang index c08eef28cc2..e652d289c91 100644 --- a/htdocs/langs/pt_BR/banks.lang +++ b/htdocs/langs/pt_BR/banks.lang @@ -1,124 +1,139 @@ # Dolibarr language file - Source file is en_US - banks MenuBankCash=Banco/Caixa -MenuSetupBank=Configuração Banco/Caixa -BankName=Nome do Banco -BankAccount=Conta Bancaria -BankAccounts=Contas Bancarias +MenuSetupBank=Configurações Banco/Caixa +BankAccount=Conta Bancária ShowAccount=Visualizar Conta -AccountRef=Ref. Conta Financeira -AccountLabel=Etiqueta da Conta Financeira -CashAccount=Conta Caixa/Efetivo -CashAccounts=Contas Caixa/Efetivo -MainAccount=Conta Principal +AccountRef=Ref. da conta financeira +AccountLabel=Etiqueta da conta financeira +CashAccount=Conta do caixa +CashAccounts=Contas do Caixa +MainAccount=Conta principal CurrentAccount=Conta Corrente -CurrentAccounts=Contas Correntes -SavingAccount=Conta a Prazo -SavingAccounts=Contas a Prazo -ErrorBankLabelAlreadyExists=Etiqueta de Conta Financeira já existente -BankBalanceBefore=Sldo anterior -BankBalanceAfter=Saldo depois +CurrentAccounts=Contas Corrente +SavingAccount=Conta Poupança +SavingAccounts=Contas Poupança +ErrorBankLabelAlreadyExists=Etiqueta de conta financeira já existe +BankBalanceBefore=Saldo anterior +BankBalanceAfter=Saldo posterior +BalanceMinimalAllowed=Saldo mínimo permitido +BalanceMinimalDesired=Saldo mínimo desejado +InitialBankBalance=Saldo inicial +EndBankBalance=Saldo final CurrentBalance=Saldo atual -ShowAllTimeBalance=Mostrar Balanço Desde do Inicio +FutureBalance=Saldo futuro +ShowAllTimeBalance=Mostrar saldo do começo AllTime=Do inicio -RIB=Conta Bancaria +Reconciliation=Reconciliação +RIB=Número da conta bancária IbanValid=IBAN é válido IbanNotValid=IBAN não é válido SwiftValid=BIC / SWIFT é válido SwiftNotValid=BIC / SWIFT não é válido -AccountStatement=Extrato da Conta +AccountStatement=Extrato da conta AccountStatementShort=Extrato -AccountStatements=Extratos das Contas -LastAccountStatements=�ltimos Extratos Bancários -IOMonthlyReporting=Relatório Mensal E/S -BankAccountDomiciliation=Domicilio de Conta -BankAccountCountry=Conta do pais -BankAccountOwner=Nome do Proprietário da Conta -BankAccountOwnerAddress=Endereço do Proprietário da Conta -RIBControlError=Se a integridade das verificações de valores falhar. Isto significa que informações para este número de conta não estão completos ou errados (verifique País, números e IBAN). -NewBankAccount=Nova Conta Bancaria -NewFinancialAccount=Nova Conta Financeira -MenuNewFinancialAccount=Nova Conta Financeira -NewCurrentAccount=Nova Conta Corrente -NewSavingAccount=Nova Conta de a Prazo -SearchBankMovement=Procurar Registo Bancario -LabelBankCashAccount=Etiqueta da Conta ou Caixa -BankType0=Conta Bancaria a Prazo -BankType1=Conta Bancaria Corrente -BankType2=Conta Caixa/Efetivo -IfBankAccount=Se a Conta Bancária -AccountsArea=Área das Contas -AccountCard=Ficha da Conta -ConfirmDeleteAccount=Tem certeza que quer eliminar esta Conta? -ByCategories=Por Categorias -ByRubriques=Por Rúbricas -BankTransactionByCategories=Registros bancários por rúbricas -BankTransactionForCategory=Registros bancários por a rúbrica %s -RemoveFromRubrique=Eliminar link com rúbrica -RemoveFromRubriqueConfirm=Tem certeza que quer eliminar o link entre a transação e a rubrica? -ListBankTransactions=Lista de Transações -IdTransaction=Id de Transação -BankTransactions=Transações Bancarias -SearchTransaction=Procurar Registo -ListTransactions=Lista Transações -ListTransactionsByCategory=Lista Transações/Categoria -TransactionsToConciliate=Registros a Conciliar -IncludeClosedAccount=Incluir Contas Fechadas -OnlyOpenedAccount=Apenas contas abertas -AccountToCredit=Conta de Crédito -AccountToDebit=Conta de Débito -DisableConciliation=Desativar a função de Conciliação para esta Conta -ConciliationDisabled=Função de Conciliação Desativada -StatusAccountOpened=Aberto +AccountStatements=Extratos da conta +LastAccountStatements=Últimos extratos da conta +Rapprochement=Reconciliar +IOMonthlyReporting=Relatório Mensal +BankAccountDomiciliation=Endereço da conta +BankAccountCountry=País da conta +BankAccountOwner=Nome do titular da conta +BankAccountOwnerAddress=Endereço do titular da conta +RIBControlError=Verificação da integridade dos valores falhou. Isso significa que esse número de conta não esta completo ou errado (verifique país, número e agência). +CreateAccount=Criar conta +NewAccount=Nova conta +NewBankAccount=Nova conta bancária +NewFinancialAccount=Nova conta financeira +MenuNewFinancialAccount=Nova conta financeira +NewCurrentAccount=Nova conta corrente +NewSavingAccount=Nova conta poupança +NewCashAccount=Nova conta de caixa +EditFinancialAccount=Editar conta +AccountSetup=Configurações de contas financeira +SearchBankMovement=Procurar movimentação bancária +LabelBankCashAccount=Etiqueta do banco ou caixa +AccountType=Tipo de conta +BankType0=Conta poupança +BankType1=Conta corrente +BankType2=Conta caixa +IfBankAccount=Se conta bancária +AccountsArea=Área das contas +AccountCard=Ficha da conta +DeleteAccount=Deletar conta +ConfirmDeleteAccount=Você tem certeza que deseja deletar essa conta? +ByRubriques=Por categorias +BankTransactionByCategories=Transações bancárias por categorias +BankTransactionForCategory=Transações bancárias por categoria %s +RemoveFromRubrique=Remover vinculo com categoria +RemoveFromRubriqueConfirm=Você tem certeza que deseja remover o vinculo entre transação e categoria? +ListBankTransactions=Lista de transações bancárias +IdTransaction=Transação ID +BankTransactions=Transações bancarias +SearchTransaction=Procurar transações +ListTransactions=Lista de transações +ListTransactionsByCategory=Lista de transação/categoria +TransactionsToConciliate=Transações para reconciliação +Conciliable=Pode ser reconciliado +Conciliate=Reconciliar +Conciliation=Reconciliação +ConciliationForAccount=Reconcilie essa conta +IncludeClosedAccount=Incluir contas inativas +OnlyOpenedAccount=Somente contas ativas +AccountToCredit=Conta para crédito +AccountToDebit=Conta para débito +DisableConciliation=Desativar função de reconciliação dessa conta +ConciliationDisabled=Função de reconciliação desativada +StatusAccountOpened=Ativa +StatusAccountClosed=Inativa EditBankRecord=Editar Registo -AddBankRecord=Adicionar Registo -AddBankRecordLong=Realizar um registo manual fora de uma fatura -BankLineConciliated=Registo Conciliado -CustomerInvoicePayment=Pagamento de Cliente -CustomerInvoicePaymentBack=Pagamento do cliente de volta -SupplierInvoicePayment=Pagamento a Fornecedor -WithdrawalPayment=Reembolso -SocialContributionPayment=Pagamento de imposto social / fiscal -FinancialAccountJournal=Diário de Tesouraria da Conta -BankTransfer=Transferencia Bancaria -BankTransfers=Transferências Bancarias -TransferDesc=Ao criar uma transferencia de uma das suas contas bancarias fazia outra, Dolibarr cria os registros contabeis (um de débito em uma Conta e outro de crédito, do mesmo valor, na outra Conta. Se utiliza para os dois registros a mesma etiqueta de transferencia e a mesma data) -TransferFromToDone=A transferencia de %s fazia %s de %s %s foi criado. -ValidateCheckReceipt=Validar esta ficha de entregas? -ConfirmValidateCheckReceipt=Tem certeza que quer Confirmar esta ficha (Nenhuma modificação será possível uma vez a ficha este validada)? -DeleteCheckReceipt=Eliminar esta ficha de entregas? -ConfirmDeleteCheckReceipt=Tem certeza que quer eliminar esta ficha? -BankChecksToReceipt=Cheques a Depositar -ShowCheckReceipt=Mostra recibos do deposito com cheque. -NumberOfCheques=N� de Cheques -DeleteTransaction=Eliminar a Transação -ConfirmDeleteTransaction=Tem certeza que quer eliminar esta transação? -ThisWillAlsoDeleteBankRecord=Esto eliminará também os registros bancários gerados -CashBudget=Orçamento de Tesouraria -PlannedTransactions=Transações Previstas -Graph=Graficos -ExportDataset_banque_1=Transação Bancaria e Extrato de Conta +LineRecord=Transação +AddBankRecord=Adicionar transação +AddBankRecordLong=Adicionar manualmente uma transação +ConciliatedBy=Reconciliado por +DateConciliating=Data da reconciliação +BankLineConciliated=Transação reconciliada +CustomerInvoicePaymentBack=Pagamento do cliente estorno +SocialContributionPayment=Pagamento de contribuição social +FinancialAccountJournal=Registro diário da conta financeira +BankTransfers=Transferências Bancária +TransferDesc=Transferência de uma conta a outra, Dolibarr irá escrever dois registro (uma de débito na conta fonte e outra de crédito na conta alvo, do mesmo montante. A mesma etiqueta e data será usada nesta transação) +TransferFromToDone=Uma transferência de %s para %s de %s %s foi registrado. +ValidateCheckReceipt=Validar esse recibo de cheque? +ConfirmValidateCheckReceipt=Você tem certeza que deseja validar esse recibo de cheque? (não será possível desvalidar depois dessa confirmação) +DeleteCheckReceipt=Deletar esse recibo de cheque? +ConfirmDeleteCheckReceipt=Você tem certeza que deseja deletar esse recibo de cheque? +BankChecks=Cheques do banco +BankChecksToReceipt=Cheques esperando por depósito +ShowCheckReceipt=Mostrar recibo de depósito do cheque +NumberOfCheques=Núm de cheques +DeleteTransaction=Deletar transação +ConfirmDeleteTransaction=Você tem certeza que deseja deletar essa transação? +ThisWillAlsoDeleteBankRecord=Isso também irá deletar transação bancária gerada +CashBudget=Orçamento de caixa +PlannedTransactions=Transações planejadas +ExportDataset_banque_1=Transações bancárias e extrato da conta ExportDataset_banque_2=comprovante de depósito -TransactionOnTheOtherAccount=Transação Sobre Outra Conta -TransactionWithOtherAccount=Transferencia de Conta -PaymentNumberUpdateSucceeded=Numero de pagamento modificado -PaymentNumberUpdateFailed=Numero de pagamento não foi possível modificar -PaymentDateUpdateFailed=Data de pagamento não pode ser modificada +TransactionOnTheOtherAccount=transação de outra conta +TransactionWithOtherAccount=transferência de conta +PaymentNumberUpdateSucceeded=Número de pagamento atualizado com sucesso +PaymentNumberUpdateFailed=Número de pagamento não foi possível ser atualizada +PaymentDateUpdateSucceeded=Data de pagamento foi atualizada com sucesso +PaymentDateUpdateFailed=Data de pagamento não foi possível ser atualizada Transactions=Transações BankTransactionLine=Transação Bancária -AllAccounts=Todas as Contas bancarias/de Caixa -BackToAccount=Voltar e a Conta -FutureTransaction=Transação futura. Impossivel conciliar. -SelectChequeTransactionAndGenerate=Selecionar/filtrar cheques a se incluir no recibo de deposito e clickar no "Criar" -InputReceiptNumber=Escolha o extrato bancário relacionadas com a conciliação. Use um valor numérico classificável: AAAAMM ou AAAAMMDD -EventualyAddCategory=Posivelmente especificar a categoria para se clasificar os registros -ToConciliate=A se conciliar ? -ThenCheckLinesAndConciliate=Verificar as linhas presentes no relatorio do banco e clickar -BankDashboard=Somario de contas bancarias -DefaultRIB=BAN padrao +AllAccounts=Todas contas bancária/caixa +BackToAccount=Volte para conta +ShowAllAccounts=Mostre todas as contas +FutureTransaction=Transação futura. Não pode ser conciliada. +SelectChequeTransactionAndGenerate=Selecionar/filtrar cheques para incluir dentro de recibos de cheques depositados e clique em "Criar". +InputReceiptNumber=Escolha um estrato bancário relacionado com conciliação. Use um valor numérico classificável (tal como, YYYYMM) +EventualyAddCategory=Eventualmente, especifique a categoria na qual os registros será classificado +ThenCheckLinesAndConciliate=Então, verifique as linhas presente no estrato bancário e clique +BankDashboard=Resumo das contas bancárias +DefaultRIB=BAN padrão AllRIB=Todos BAN -NoBANRecord=Nao tem registro BAN -DeleteARib=Apagar registro BAN -ConfirmDeleteRib=Voce tem certeza que quer apagar este registro BAN ? +DeleteARib=Deletar registro de BAN +ConfirmDeleteRib=Você tem certeza que deseja deletar esse registro de BAN? StartDate=Data de início EndDate=Data final RejectCheck=Verifique rejeição diff --git a/htdocs/langs/pt_BR/bills.lang b/htdocs/langs/pt_BR/bills.lang index adc214c60f3..e026cc827f2 100644 --- a/htdocs/langs/pt_BR/bills.lang +++ b/htdocs/langs/pt_BR/bills.lang @@ -273,6 +273,8 @@ PaymentTypeVIR=Transferência Bancaria PaymentTypePRE=Débito Direto Bancario PaymentTypeShortPRE=Débito Direto PaymentTypeLIQ=Espécie +PaymentTypeTIP=Depósito +PaymentTypeShortTIP=Depósito PaymentTypeTRA=Letra BankDetails=Dados Bancários BankCode=Código Banco diff --git a/htdocs/langs/pt_BR/companies.lang b/htdocs/langs/pt_BR/companies.lang index fe85da94e9a..74aa4351721 100644 --- a/htdocs/langs/pt_BR/companies.lang +++ b/htdocs/langs/pt_BR/companies.lang @@ -1,187 +1,245 @@ # Dolibarr language file - Source file is en_US - companies -ErrorCompanyNameAlreadyExists=Nome da empresa %s já existe. Indique outro. -ErrorPrefixAlreadyExists=Prefixo %s já existe. Indique outro. -ErrorSetACountryFirst=Primeiro defina o Pais -SelectThirdParty=Selecione um cliente/fornecedor -DeleteThirdParty=Excluir um cliente/fornecedor -ConfirmDeleteCompany=Tem certeza que quer excluir esta empresa e toda a informação dela pendente? -DeleteContact=Excluir um contato -ConfirmDeleteContact=Tem certeza que quer excluir este contato e toda a sua informação inerente? -MenuNewThirdParty=Novo cliente/fornecedor -MenuNewProspect=Novo cliente em potencial +ErrorCompanyNameAlreadyExists=Nome da empresa %s já existe. Escolha outro. +ErrorPrefixAlreadyExists=Prefixo %s já existe. Escolha outro. +ErrorSetACountryFirst=Defina o país primeiro +DeleteThirdParty=Delete um terceiro +ConfirmDeleteCompany=Você tem certeza que deseja deletar essa empresa e todas informações herdadas? +DeleteContact=Deletar um contato/endereço +ConfirmDeleteContact=Você tem certeza que deseja deletar esse contato e todas informações herdadas? +MenuNewThirdParty=Novo terceiro +MenuNewCompany=Nova empresa +MenuNewCustomer=Novo cliente +MenuNewProspect=Novo possível cliente MenuNewSupplier=Novo fornecedor -NewCompany=Nova Empresa (cliente em potencial, cliente, fornecedor) -NewThirdParty=Novo cliente/fornecedor (cliente em potencial, cliente, fornecedor) +MenuNewPrivateIndividual=Novo particular +NewCompany=Nova empresa (possível cliente, cliente e fornecedor) +NewThirdParty=Novo terceiro (possível cliente, cliente e fornecedor) NewSocGroup=Novo grupo de empresas -NewPrivateIndividual=Nova pessoa física (cliente em potencial, cliente, fornecedor) +NewPrivateIndividual=Novo particular (possível cliente, cliente e fornecedor) CreateDolibarrThirdPartySupplier=Criar um fornecedor -SocGroup=Agrupamento de empresas -IdThirdParty=ID do cliente/fornecedor -IdContact=Id Contato -Contacts=Contatos -ThirdPartyContacts=Contatos de clientes/fornecedores -ThirdPartyContact=Contato/Endereço de cliente/fornecedor -StatusContactValidated=Estado do Contato +ProspectionArea=Área de prospecção +SocGroup=Grupo de empresas +IdThirdParty=Terceiro ID +IdCompany=Empresa ID +IdContact=Contato ID +Contacts=Contatos/Endereços +ThirdPartyContacts=Contato de terceiros +ThirdPartyContact=Contato/Endereço de terceiros +StatusContactValidated=Status de Contato/Endereço AliasNames=Nome do alias (comercial, marca registrada, ...) AliasNameShort=Nome do alias -CountryIsInEEC=País da Comunidadeee Económica Europeia -ThirdPartyName=Nome do cliente/fornecedor -ThirdParty=Cliente/Fornecedor -ThirdParties=Clientes/Fornecedores -ThirdPartyAll=Clientes/Fornecedores (Todos) -ThirdPartyProspects=Clientes em potencial -ThirdPartyProspectsStats=Clientes em potencial -ThirdPartyType=Tipo de cliente/fornecedor -ToCreateContactWithSameName=Criar automaticamente um contato fisico com a mesma informação -ParentCompany=Casa Mãe -Subsidiary=Subsidiário -Subsidiaries=Subsidiários -NoSubsidiary=Sem subsidiário -RegisteredOffice=Domicilio Social +CountryIsInEEC=País se encontra dentro da Comunidade Europeia +ThirdPartyName=Nome do terceiro +ThirdPartyProspects=Possíveis clientes +ThirdPartyProspectsStats=Possíveis clientes +ThirdPartyCustomersWithIdProf12=Clientes com %s ou %s +ThirdPartyType=Tipos de terceiros +ToCreateContactWithSameName=Irá criar automaticamente um contato físico com a mesma informação +ParentCompany=Empresa pai +Subsidiaries=Filiais +NoSubsidiary=Não é filial +ReportByCustomers=Relatório pelos clientes +ReportByQuarter=Relatório pela taxa +CivilityCode=Código civil +RegisteredOffice=Escritório registrado +Lastname=Sobrenome +PostOrFunction=Cargo/Função +Surname=Apelido Address=Endereço -CountryCode=Código País -CountryId=ID do país +State=Estado +CountryCode=Código do País +CountryId=País ID PhoneShort=Telefone -Call=Ligar -PhonePerso=Telef. Particular -No_Email=Não envie e-mails em massa -Zip=Código Postal +Call=Chamar +PhonePro=Tel. comercial +PhonePerso=Tel. particular +PhoneMobile=Celular +No_Email=Não enviar e-mails massivos (spam) +Zip=CEP Town=Município -DefaultLang=Linguagem por padrão +Web=Web Site +DefaultLang=Língua default VATIsUsed=Sujeito a ICMS VATIsNotUsed=Não Sujeito a ICMS -CopyAddressFromSoc=Preencha com o endereço do cliente/fornecedor +CopyAddressFromSoc=Preencher endereço com o endereço do terceiro NoEmailDefined=Não tem email definido -LocalTax1IsUsedES=Sujeito a RE -LocalTax1IsNotUsedES=Não sujeito a RE -LocalTax2IsUsedES=Sujeito a IRPF -LocalTax2IsNotUsedES=Não sujeito a IRPF +LocalTax1IsUsedES=É usado RE +LocalTax1IsNotUsedES=Não é usado RE +LocalTax2IsUsedES=É usado IRPF +LocalTax2IsNotUsedES=Não é usado IRPF TypeLocaltax1ES=RE Tipo TypeLocaltax2ES=IRPF Tipo -WrongCustomerCode=Código cliente incorreto -WrongSupplierCode=Código do fornecedor incorreto +WrongCustomerCode=Código do cliente esta invalido +WrongSupplierCode=Código do fornecedor esta invalido +CustomerCodeModel=Modelo de código do cliente +SupplierCodeModel=Modelo de código do fornecedor ProfId6Short=Prof. id 6 -ProfId5=ID profesional 5 -ProfId6=ID profesional 6 -ProfId2AR=Prof Id 2 (Receitas brutas) -ProfId1BE=Núm da Ordem -ProfId2ES=Prof Id 2 (Número do seguro social) -ProfId3IN=Prof Id 3 (Taxa de Serviço) -ProfId3MX=Prof Id 3 (Carta Profissional) -ProfId1RU=Id prof 1 (I.E.) -ProfId2RU=Id prof 2 (I.M.) -ProfId3RU=Id prof. 3 (CGC) -ProfId4RU=Id prof. 4 (Livre) -VATIntra=Cadastro Nacional Pessoa Juridica - CNPJ -ProspectCustomer=Cliente em potencial/Cliente -Prospect=Cliente em potencial -CompanyHasRelativeDiscount=Este cliente tem um Desconto por default de %s%% -CompanyHasNoRelativeDiscount=Este cliente não tem Descontos relativos por default -CompanyHasAbsoluteDiscount=Este cliente tem %s %s Descontos fixos disponíveis -CompanyHasCreditNote=Este cliente tem %s %s recibos disponíveis -CompanyHasNoAbsoluteDiscount=Este cliente não tem mais Descontos fixos disponíveis -CustomerAbsoluteDiscountAllUsers=Descontos fixos em curso (acordado por todos os Usuário) -DefaultDiscount=Desconto por Fefeito -AvailableGlobalDiscounts=Descontos Fixos Disponíveis -AddContact=Criar contato -AddContactAddress=Criar contato/endereço +ProfId1=ID profissional 1 +ProfId2=ID profissional 2 +ProfId3=ID profissional 3 +ProfId4=ID profissional 4 +ProfId5=ID profissional 5 +ProfId6=ID profissional 6 +ProfId1BE=Prof Id 1 (Número profissional) +ProfId4BR=CNPJ/CPF +ProfId3CH=Prof Id 1 (Número federal) +ProfId4CH=Prof Id 2 (Número gravado comercial) +ProfId2ES=Prof Id 2 (Número de seguro social) +ProfId4ES=Prof Id 4 (Número do colegial) +VATIntra=Número ICMS +VATIntraShort=Núm ICMS +VATIntraVeryShort=ICMS +VATIntraSyntaxIsValid=Sintaxe é válida +VATIntraValueIsValid=Valor é válido +ProspectCustomer=Possível cliente / Cliente +Prospect=Possível cliente +CustomerCard=Ficha do Cliente +CustomerDiscount=Desconto do Cliente +CustomerRelativeDiscount=Desconto relativo do cliente +CustomerAbsoluteDiscount=Desconto fixo do cliente +CustomerRelativeDiscountShort=Desconto relativo +CustomerAbsoluteDiscountShort=Desconto fixo +CompanyHasRelativeDiscount=Esse cliente tem um desconto padrão de %s%% +CompanyHasNoRelativeDiscount=Esse cliente não tem desconto relativo por padrão +CompanyHasAbsoluteDiscount=Este cliente ainda tem desconto de créditos ou depósitos por %s %s +CompanyHasCreditNote=Esse cliente ainda tem notas de crédito por %s %s +CompanyHasNoAbsoluteDiscount=Esse cliente não tem desconto de crédito disponível +CustomerAbsoluteDiscountAllUsers=Desconto fixo (concedido para todos usuários) +CustomerAbsoluteDiscountMy=Desconto fixo (concedido para seu usuário) +DefaultDiscount=Desconto padrão +AvailableGlobalDiscounts=Desconto fixo disponível +DiscountNone=Nenhum +CompanyList=Lista de empresas +AddContact=Adicionar contato +AddContactAddress=Adicionar contato/endereço EditContact=Editar contato -EditContactAddress=Editar contato/endereco +EditContactAddress=Editar contato/endereço Contact=Contato -ContactsAddresses=Contatos/Enderecos -NoContactDefinedForThirdParty=Nenhum contato definido para este cliente/fornecedor -NoContactDefined=Nenhum contato definido -DefaultContact=Contato por Padrao -AddThirdParty=Criar cliente/fornecedor -SupplierCode=Código do fornecedor +ContactsAddresses=Contatos/Endereços +NoContactDefinedForThirdParty=Nenhum contato esta definido para esse terceiro +NoContactDefined=Nenhum contato esta definido +DefaultContact=Contato/endereço padrão +AddCompany=Adicionar empresa +AddThirdParty=Adicionar terceiro +DeleteACompany=Deletar empresa +PersonalInformations=Dados Pessoais +CustomerCode=Código de cliente +SupplierCode=Código de fornecedor +CustomerAccount=Conta do cliente SupplierAccount=Conta do fornecedor -SupplierCodeDesc=Código do fornecedor, único para cada fornecedor -RequiredIfCustomer=Requerida se for cliente ou cliente em potencial -RequiredIfSupplier=Obrigatório se for fornecedor -LastProspect=último cliente em potencial -ProspectToContact=Cliente em potencial a contatar -ListOfContacts=Lista de Contatos/Endereços +CustomerCodeDesc=Código de cliente, único para todos os clientes +SupplierCodeDesc=Código de fornecedor, único para todos os fornecedores +RequiredIfCustomer=Necessário se o terceiro for um cliente ou um possível cliente +RequiredIfSupplier=Necessário se o terceiro for um fornecedor +ValidityControledByModule=Validação controlada pelo módulo +ThisIsModuleRules=Esta é a regra é para esse módulo +LastProspect=Último +ProspectToContact=Possível cliente para contatar +CompanyDeleted=Empresa "%s" foi deletada do banco de dados. +ListOfContacts=Lista de contatos/endereços ListOfContactsAddresses=Lista de Contatos/Endereços -ListOfProspectsContacts=Lista de Contatos Clientes Potenciais -ListOfCustomersContacts=Lista de Contatos Clientes -ListOfSuppliersContacts=Lista de contatos de fornecedores -ListOfThirdParties=Lista de clientes/fornecedores -ShowContact=Mostrar Contato -ContactType=Tipo de Contato -ContactForOrders=Contato para Pedidos -ContactForProposals=Contato de Orçamentos -ContactForContracts=Contato de Contratos -ContactForInvoices=Contato de Faturas -NoContactForAnyOrder=Este contato não é contato de nenhum pedido -NoContactForAnyProposal=Este contato não é contato de nenhum orçamento -NoContactForAnyContract=Este contato não é contato de nenhum contrato -NoContactForAnyInvoice=Este contato não é contato de nenhuma fatura -NewContact=Novo Contato -NewContactAddress=Novo Contato/Endereço +ListOfProspectsContacts=Lista de contatos de possíveis clientes +ListOfCustomersContacts=Lista de Contatos de clientes +ListOfSuppliersContacts=Lista de Contatos de fornecedores +ListOfCompanies=Lista de empresas +ListOfThirdParties=Lista de terceiros +ShowContact=Mostrar contato +ContactType=Tipo de contato +ContactForOrders=Contato de pedidos +ContactForProposals=Contato de orçamentos +ContactForContracts=Contato de contratos +ContactForInvoices=Contato de faturas +NoContactForAnyOrder=Esse contato não é de nenhum pedido +NoContactForAnyProposal=Esse contato não é de nenhum orçamento +NoContactForAnyContract=Esse contato não é de nenhum contrato +NoContactForAnyInvoice=Esse contato não é de nenhuma fatura +NewContact=Novo contato +NewContactAddress=Novo contato/endereço LastContacts=Últimos contatos -MyContacts=Meus Contatos -EditDeliveryAddress=Modificar Endereço de Envio -ThisUserIsNot=Este usuário não é um cliente em potencial, nem um cliente, nem um fornecedor -VATIntraCheckDesc=o link %s permite consultar à serviço europeo de control de números de ICMS intracomunitario. Se requer acesso a internet para que o serviço funcione -VATIntraCheckURL=http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/cnpjreva_solicitacao.asp -VATIntraCheckableOnEUSite=Verificar na web da Comisión Europea -VATIntraManualCheck=pode também realizar uma verificação manual na web europea
%s
permite perguntar ao serviço de verificação da VAT europeia. Acesso externo a internet é necessário para o serviço. +VATIntraCheckableOnEUSite=Verificar taxa VAT no site da comissão europeia +VATIntraManualCheck=Você pode também verificar manualmente no site europeu %s +ErrorVATCheckMS_UNAVAILABLE=Verificação não é possível. Verifique o serviço não é necessário por um membro de estado (%s). +NorProspectNorCustomer=Nem possível cliente, nem cliente +JuridicalStatus=Estado jurídico +Staff=Funcionários +ProspectLevelShort=Pos. Cli. +ProspectLevel=Possível cliente ContactPublic=Compartilhado -OthersNotLinkedToThirdParty=Outros, não associado à um cliente/fornecedor -ProspectStatus=Estado do cliente em potencial -StatusProspect-1=Não contatar -StatusProspect1=A contatar -StatusProspect2=Contato em Curso -StatusProspect3=Contato Realizado -ChangeDoNotContact=Alterar o estado para ' Não contatar ' -ChangeToContact=Alterar o estado para 'A contatar' -ChangeContactInProcess=Alterar o Estado para 'Contato em Curso' -ChangeContactDone=Alterar o Estado para 'Contato Realizado' -ProspectsByStatus=Clientes em potencial por estado -BillingContact=Contato para Faturação -NbOfAttachedFiles=N de Arquivos Anexos -AttachANewFile=Adicionar um Novo Arquivo -ExportCardToFormat=Exportar Ficha para o Formato -ContactNotLinkedToCompany=Contato não associado à um cliente/fornecedor -ExportDataset_company_1=Cilentes/Fornecedores (Empresas/Instituíções/Pessoas Fisicas) e propriedades -ExportDataset_company_2=Contatos de Fornecedor e Atributos -ImportDataset_company_1=Clientes/Fornecedores (Empresas/Fundações/Pessoas Físicas) e propriedades -ImportDataset_company_2=Contatos/Enderecos (de clientes/fornecedores ou não) e atributos -ImportDataset_company_3=Dados Bancários -PriceLevel=Nível de Preços -DeliveriesAddress=Endereço(ões) de Envio -DeliveryAddress=Endereço de Envio -DeliveryAddressLabel=Etiqueta de Envio -DeleteDeliveryAddress=Eliminar uma Endereço de Envio -ConfirmDeleteDeliveryAddress=? Tem certeza que quer eliminar esta endereço de envio? -NewDeliveryAddress=Nova Endereço de Envio -AddDeliveryAddress=Criar endereço -AddAddress=Criar endereço -NoOtherDeliveryAddress=Não Existe Endereço alternatica definidas -SupplierCategory=Categoria de Fornecedor -JuridicalStatus200=Estado Juridico -DeleteFile=Apagar um Arquivo -ConfirmDeleteFile=? Tem certeza que quer eliminar este Arquivo? -AllocateCommercial=Assinado ao representate de vendas -SelectCountry=Selecionar um País -SelectCompany=Selecionar um Fornecedor -AutomaticallyGenerated=Gerado Automaticamente -YouMustCreateContactFirst=Você deve cadastrar contatos de e-mail para um cliente/fornecedor para ser possível adicionar notificações por e-mail. -ListSuppliersShort=Lista de Fornecedores -ListProspectsShort=Lista de clientes em potencial -ListCustomersShort=Lista de Clientes -ThirdPartiesArea=Área de clientes/fornecedores e contatos -LastModifiedThirdParties=Os ultimos %s clitentes/fornecedores modificados -UniqueThirdParties=Total de clientes/fornecedores únicos -ActivityStateFilter=Status das atividades -ProductsIntoElements=Lista de produtos para %s +ContactVisibility=Visível +OthersNotLinkedToThirdParty=Outros, não esta vinculado a terceiros +ProspectStatus=Status de possível cliente +PL_UNKNOWN=Desconhecido +PL_MEDIUM=Médio +TE_STARTUP=Empresa começando +TE_GROUP=Empresa de grande porte +TE_MEDIUM=Empresa de médio porte +TE_ADMIN=Governo +TE_SMALL=Empresa de pequeno porte +TE_RETAIL=Varejista +TE_WHOLE=Atacadista +TE_PRIVATE=Particular +StatusProspect-1=Não entrar em contato +StatusProspect0=Nunca entrar em contato +StatusProspect1=Entrar em contato +StatusProspect2=Contato em andamento +StatusProspect3=Contato feito +ChangeDoNotContact=Trocar status para 'Não entrar em contato' +ChangeNeverContacted=Trocar status para 'Nunca entrar em contato' +ChangeToContact=Trocar status para 'Entrar em contato' +ChangeContactInProcess=Trocar status para 'Contato em andamento' +ChangeContactDone=Trocar status para 'Contato feito' +ProspectsByStatus=Possível cliente pelo status +BillingContact=Contato de cobrança +NbOfAttachedFiles=Número de arquivos anexados +AttachANewFile=Anexar novo arquivo +NoRIB=Nenhum BAN esta definido +ContactNotLinkedToCompany=Contato não esta vinculado a nenhum terceiro +NoDolibarrAccess=Sem acesso ao Dolibarr +ExportDataset_company_1=Terceiros (Empresas/Associações/Particulares) e propriedades +ExportDataset_company_2=Contatos e propriedades +ImportDataset_company_1=Terceiros (Empresas/Associações/Particulares) e propriedades +ImportDataset_company_2=Contatos/Endereços (terceiros ou não) e atributos +ImportDataset_company_3=Detalhes bancários +PriceLevel=Nível de preço +DeliveriesAddress=Endereços de entrega +DeliveryAddress=Endereço de entrega +DeliveryAddressLabel=Etiqueta de endereço de entrega +DeleteDeliveryAddress=Deletar um endereço de entrega +ConfirmDeleteDeliveryAddress=Você tem certeza que deseja deletar esse endereço de entrega? +NewDeliveryAddress=Novo endereço de entrega +AddDeliveryAddress=Adicionar endereço +AddAddress=Adicionar endereço +NoOtherDeliveryAddress=Nenhum endereço de entrega alternativo esta definido +SupplierCategory=Categoria de fornecedor +DeleteFile=Deletar arquivo +ConfirmDeleteFile=Você tem certeza que deseja deletar esse arquivo? +AllocateCommercial=Atribuido para representante de vendas +SelectCountry=Selecione um país +SelectCompany=Selecione um terceiro +Organization=Organização +AutomaticallyGenerated=Gerado automaticamente +FiscalYearInformation=Informações do ano fiscal +FiscalMonthStart=Mês inicial do ano fiscal +YouMustCreateContactFirst=Você deve criar contatos com e-mail de terceiros para poder enviar notificações por e-mails. +ListProspectsShort=Lista de possíveis clientes +ThirdPartiesArea=Área de terceiros +LastModifiedThirdParties=Última modificação de terceiros foi %s +UniqueThirdParties=Total de terceiros únicos +InActivity=Ativo +ActivityCeased=Inativo +ActivityStateFilter=Status ativo +ProductsIntoElements=Lista de produtos dentro de CurrentOutstandingBill=Notas aberta correntes -OutstandingBill=Max. permitido para uma nota aberta +OutstandingBill=Conta excelente OutstandingBillReached=Chegou ao max permitido para nostas abertas -MonkeyNumRefModelDesc=Devolve um número baixo o formato %syymm-nnnn para os códigos de clientes e %syymm-nnnn para os códigos dos Fornecedores, donde yy é o ano, mm o mês e nnnn um contador seq�êncial sem ruptura e sem Voltar a 0. +MonkeyNumRefModelDesc=Retorna um número no formato %syymm-nnnn para código de cliente e %syymm-nnnn para código de fornecedor onde yy é o ano, mm é o mês e nnnn é uma sequência numerica crescente (não repete, não retorna no zero). +LeopardNumRefModelDesc=O código é livre. Esse código pode ser modificado a qualquer hora. ManagingDirectors=Nome do Representante(CEO,Diretor,Presidente...) SearchThirdparty=Pesquisar terceiros SearchContact=Procurar contato diff --git a/htdocs/langs/pt_BR/contracts.lang b/htdocs/langs/pt_BR/contracts.lang index 2a176ef5269..ae4416d8bcc 100644 --- a/htdocs/langs/pt_BR/contracts.lang +++ b/htdocs/langs/pt_BR/contracts.lang @@ -14,6 +14,8 @@ ServiceStatusClosed=Encerrado ServicesLegend=Legenda para os Serviços Contracts=Contratos ContractsAndLine=Contratos e linha de contratos +ContractLine=Linha contrato +Closing=Fechando NoContracts=Sem Contratos MenuInactiveServices=Serviços Inativos MenuRunningServices=Serviços Ativos diff --git a/htdocs/langs/pt_BR/errors.lang b/htdocs/langs/pt_BR/errors.lang index 3e9b1761015..2af889656c1 100644 --- a/htdocs/langs/pt_BR/errors.lang +++ b/htdocs/langs/pt_BR/errors.lang @@ -65,6 +65,7 @@ ErrorRecordIsUsedCantDelete=Não é possível excluir registro. Ele já é usado ErrorModuleRequireJavascript=Javascript não deve ser desativado para ter esse recurso funcionando. Para ativar / desativar o Javascript, vá ao menu Home-> Configuração-> Display. ErrorContactEMail=Ocorreu um erro técnico. Por favor, contate o administrador no seguinte e-mail %s e forneça o seguinte código de erro %s em sua mensagem. Ou, se possível, adicione uma foto da tela - print screen. ErrorWrongValueForField=Valor errado para o número do campo% s (valor '% s' não corresponde regra% s) +ErrorFieldValueNotIn=Valor errado para o número de campo %s (valor '%s' não é um valor disponível no campo %s da tabela %s) ErrorFieldRefNotIn=Valor errado para o número do campo% s (valor '% s' não é um% s ref existente) ErrorsOnXLines=Erros no registro de origem% s (s) ErrorSpecialCharNotAllowedForField=Os caracteres especiais não são permitidos para o campo "% s" diff --git a/htdocs/langs/pt_BR/exports.lang b/htdocs/langs/pt_BR/exports.lang index 560f17b5d95..75ee05ba6f9 100644 --- a/htdocs/langs/pt_BR/exports.lang +++ b/htdocs/langs/pt_BR/exports.lang @@ -22,6 +22,7 @@ NoImportableData=Não existe tipo de dados importavel (não existe nenhum módul FileSuccessfullyBuilt=Arquivo de exportação gerado SQLUsedForExport=Pedido de SQL usado para construir exportação de arquivo LineId=Id da Linha +LineLabel=Rótulo de linha LineDescription=Descrição da Linha LineUnitPrice=Preço Unitário da Linha LineVATRate=Taxa ICMS por Linha diff --git a/htdocs/langs/pt_BR/languages.lang b/htdocs/langs/pt_BR/languages.lang index 9cc12283347..0e410bb6f4a 100644 --- a/htdocs/langs/pt_BR/languages.lang +++ b/htdocs/langs/pt_BR/languages.lang @@ -26,6 +26,7 @@ Language_fr_BE=Fançes (Belgica) Language_fr_CA=Françes (Canada) Language_fr_CH=Françes (Suiça) Language_fr_FR=Françes +Language_fy_NL=Holandês Language_he_IL=Ebreo Language_hu_HU=Ungeres Language_is_IS=Islandes @@ -37,5 +38,6 @@ Language_pl_PL=Polones Language_pt_BR=Portugues (Brasil) Language_pt_PT=Portugues Language_ru_UA=Russo (Ukrania) +Language_sr_RS=Sérvio Language_zh_CN=Chines Language_zh_TW=Chines (Tradicional) diff --git a/htdocs/langs/pt_BR/main.lang b/htdocs/langs/pt_BR/main.lang index ad15241507d..96f743193c1 100644 --- a/htdocs/langs/pt_BR/main.lang +++ b/htdocs/langs/pt_BR/main.lang @@ -68,6 +68,7 @@ PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar a prec WarningYouHaveAtLeastOneTaskLate=Atenção, tem um elemento a menos que passou a data de tolerância. yes=sim no=não +Alls=Todos OnlineHelp=Ajuda online PageWiki=Pagina wiki PeriodEndDate=Data final periodo @@ -326,6 +327,7 @@ GoIntoSetupToChangeLogo=Vá para casa - Configuração - Empresa de mudar logoti Deny=Negar Denied=Negado ListOfTemplates=Lista de modelos +Gender=Gênero Genderman=Homem Genderwoman=Mulher ViewList=Exibição de lista @@ -335,3 +337,4 @@ Sincerely=Sinceramente Saturday=Sabado SaturdayMin=Sab SelectMailModel=Escolha um modelo de e-mail +SetRef=Escolher referência diff --git a/htdocs/langs/pt_BR/products.lang b/htdocs/langs/pt_BR/products.lang index 71c7d4d17a1..9a9eae1416b 100644 --- a/htdocs/langs/pt_BR/products.lang +++ b/htdocs/langs/pt_BR/products.lang @@ -164,6 +164,9 @@ MinimumRecommendedPrice=Preço minimo recomendado e: %s PriceExpressionEditor=Editor de expressão Preço PriceExpressionSelected=Expressão de preço Selecionado PriceExpressionEditorHelp1="Preço = 2 + 2" ou "2 + 2" para fixação do preço. use; para separar expressões +PriceExpressionEditorHelp2=Você pode acessar ExtraFields com variáveis como #extrafield_myextrafieldkey# e variáveis globais com o #global_mycode # +PriceExpressionEditorHelp3=Em ambos produtos/serviços e fornecedores nesses preços há essas variáveis disponíveis:
#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# +PriceExpressionEditorHelp4=No preço do produto/serviço apenas: #supplier_min_price#
Em apenas preços com fornecedores: #supplier_quantity# e #supplier_tva_tx# PriceExpressionEditorHelp5=Valores globais disponíveis: PriceMode=Modo de Preço DefaultPrice=Preço padrão diff --git a/htdocs/langs/pt_BR/sendings.lang b/htdocs/langs/pt_BR/sendings.lang index b380b9997e1..0ab884b93f2 100644 --- a/htdocs/langs/pt_BR/sendings.lang +++ b/htdocs/langs/pt_BR/sendings.lang @@ -36,6 +36,7 @@ ProductQtyInCustomersOrdersRunning=Quantidade do produto em aberto ordens client ProductQtyInSuppliersOrdersRunning=Quantidade do produto em ordens abertas fornecedores ProductQtyInShipmentAlreadySent=Quantidade do produto da ordem do cliente abriu já foi enviado ProductQtyInSuppliersShipmentAlreadyRecevied=Quantidade do produto a partir da ordem fornecedor abriu já recebeu +NoProductToShipFoundIntoStock=Nenhum produto para enviar encontrado em armazém %s. Estoque correto ou voltar para escolher outro armazém. SendingMethodCATCH=Remoção pelo cliente SendingMethodTRANS=Transportadora SendingMethodCOLSUI=Acompanhamento diff --git a/htdocs/langs/sl_SI/banks.lang b/htdocs/langs/sl_SI/banks.lang index 28841e03c1b..02db5d817c1 100644 --- a/htdocs/langs/sl_SI/banks.lang +++ b/htdocs/langs/sl_SI/banks.lang @@ -94,12 +94,12 @@ Conciliate=Uskladi Conciliation=Uskladitev ConciliationForAccount=Uskladi ta konto IncludeClosedAccount=Vključi zaprte račune -OnlyOpenedAccount=Only open accounts +OnlyOpenedAccount=Samo odprti računi AccountToCredit=Kreditni konto AccountToDebit=Debetni konto DisableConciliation=Onemogoči funkcijo usklajevanja za ta konto ConciliationDisabled=Funkcija usklajevanja onemogočena -StatusAccountOpened=Open +StatusAccountOpened=Odpri StatusAccountClosed=Zaprt AccountIdShort=Številka EditBankRecord=Urejanje postavk @@ -113,7 +113,7 @@ CustomerInvoicePayment=Plačilo kupca CustomerInvoicePaymentBack=Vrnitev plačila kupcu SupplierInvoicePayment=Plačilo dobavitelju WithdrawalPayment=Nakazano plačilo -SocialContributionPayment=Social/fiscal tax payment +SocialContributionPayment=Plačilo socialnega/fiskalnega davka FinancialAccountJournal=Dnevnik finančnega računa BankTransfer=Bančni transfer BankTransfers=Bančni transferji @@ -165,8 +165,8 @@ DeleteARib=Izbriši BAN zapis ConfirmDeleteRib=Ali zares želite izbrisati ta BAN zapis StartDate=Začetni datum EndDate=Končni datum -RejectCheck=Check rejection -ConfirmRejectCheck=Are you sure you want to mark this check as rejected ? -RejectCheckDate=Check rejection date -CheckRejected=Check rejected -CheckRejectedAndInvoicesReopened=Check rejected and invoices reopened +RejectCheck=Zavrnitev čeka +ConfirmRejectCheck=Ali zares želite označiti ta ček kot zavrnjen? +RejectCheckDate=Datum zavrnitve čeka +CheckRejected=Ček zavrnjen +CheckRejectedAndInvoicesReopened=Ček zavrnjen in računi ponovno odprti diff --git a/htdocs/langs/sl_SI/propal.lang b/htdocs/langs/sl_SI/propal.lang index b080d9c1230..1ed1b45e0bb 100644 --- a/htdocs/langs/sl_SI/propal.lang +++ b/htdocs/langs/sl_SI/propal.lang @@ -4,7 +4,7 @@ Proposal=Komercialna ponudba ProposalShort=Ponudba ProposalsDraft=Osnutek komercialnih ponudb ProposalDraft=Osnutek komercialne ponudbe -ProposalsOpened=Open commercial proposals +ProposalsOpened=Odprte komercialne ponudbe Prop=Komercialne ponudbe CommercialProposal=Komercialna ponudba CommercialProposals=Komercialne ponudbe @@ -31,7 +31,7 @@ AmountOfProposalsByMonthHT=Znesek po mesecih(brez DDV) NbOfProposals=Število komercialnih ponudb ShowPropal=Prikaži ponudbo PropalsDraft=Osnutki -PropalsOpened=Open +PropalsOpened=Odpri PropalsNotBilled=Zaključene, ne fakturirane PropalStatusDraft=Osnutek (potrebno potrditi) PropalStatusValidated=Potrjena (ponudba je odprta) @@ -42,7 +42,7 @@ PropalStatusNotSigned=Nepodpisana (zaprta) PropalStatusBilled=Fakturirana PropalStatusDraftShort=Osnutek PropalStatusValidatedShort=Potrjena -PropalStatusOpenedShort=Open +PropalStatusOpenedShort=Odprt PropalStatusClosedShort=Zaprta PropalStatusSignedShort=Podpisana PropalStatusNotSignedShort=Nepodpisana @@ -51,8 +51,8 @@ PropalsToClose=Komercialne ponudbe, ki jih je potrebno zapreti PropalsToBill=Podpisane komercialne ponudbe, ki jih je potrebno fakturirati ListOfProposals=Seznam komercialnih ponudb ActionsOnPropal=Aktivnosti v zvezi s ponudbo -NoOpenedPropals=No open commercial proposals -NoOtherOpenedPropals=No other open commercial proposals +NoOpenedPropals=Ni odprtih komercialnih ponudb +NoOtherOpenedPropals=Ni drugih odprtih komercialnih ponudb RefProposal=Referenca komercialne ponudbe SendPropalByMail=Pošlji komercialno ponudbo po pošti AssociatedDocuments=Dokumenti, povezani s ponudbo: @@ -98,4 +98,4 @@ DocModelJauneDescription=Vzorec ponudbe Jaune DefaultModelPropalCreate=Ustvarjanje privzetega modela DefaultModelPropalToBill=Privzeta predloga za zaključek ponudbe (za fakturiranje) DefaultModelPropalClosed=Privzeta predloga za zaključek ponudbe (nefakturirana) -ProposalCustomerSignature=Written acceptance, company stamp, date and signature +ProposalCustomerSignature=Pisna potrditev, žig podjetja, datum in podpis diff --git a/htdocs/langs/sl_SI/withdrawals.lang b/htdocs/langs/sl_SI/withdrawals.lang index d8cf8ac20d8..d0f00722b94 100644 --- a/htdocs/langs/sl_SI/withdrawals.lang +++ b/htdocs/langs/sl_SI/withdrawals.lang @@ -85,10 +85,10 @@ SetToStatusSent=Nastavi status na "Datoteka poslana" ThisWillAlsoAddPaymentOnInvoice=S tem bodo plačila povezana z računi, ki bodo spremenili status v "Plačano" StatisticsByLineStatus=Statistika po statusu vrstic RUM=RUM -RUMWillBeGenerated=RUM number will be generated once bank account information are saved -WithdrawMode=Withdraw mode (FRST or RECUR) -WithdrawRequestAmount=Withdraw request amount: -WithdrawRequestErrorNilAmount=Unable to create withdraw request for nil amount. +RUMWillBeGenerated=Številka RUM bo ustvarjena, ko bodo shranjeni podatki o bančnem računu +WithdrawMode=Način dviga (FRST ali RECUR) +WithdrawRequestAmount=Želen znesek dviga: +WithdrawRequestErrorNilAmount=Ni možno ustvariti zahteve za dvig zneska nič. ### Notifications InfoCreditSubject=Plačilo odprtega naročila %s s strani banke diff --git a/htdocs/langs/sr_RS/companies.lang b/htdocs/langs/sr_RS/companies.lang index 764ca969350..ac01f97c299 100644 --- a/htdocs/langs/sr_RS/companies.lang +++ b/htdocs/langs/sr_RS/companies.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - companies ErrorCompanyNameAlreadyExists=Company name %s already exists. Choose another one. ErrorPrefixAlreadyExists=Prefix %s already exists. Choose another one. -ErrorSetACountryFirst=Set the country first -SelectThirdParty=Select a third party -DeleteThirdParty=Delete a third party +ErrorSetACountryFirst=Prvo izaberi državu +SelectThirdParty=Izaberi subjekat +DeleteThirdParty=Obriši subjekat ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information ? DeleteContact=Delete a contact/address ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information ? @@ -30,8 +30,8 @@ ThirdPartyContact=Third party contact/address StatusContactValidated=Status of contact/address Company=Company CompanyName=Company name -AliasNames=Alias name (commercial, trademark, ...) -AliasNameShort=Alias name +AliasNames=Alias (komercijalni) +AliasNameShort=Alias Companies=Companies CountryIsInEEC=Country is inside European Economic Community ThirdPartyName=Third party name @@ -69,7 +69,7 @@ Country=Country CountryCode=Country code CountryId=Country id Phone=Phone -PhoneShort=Phone +PhoneShort=Telefon Skype=Skype Call=Call Chat=Chat diff --git a/htdocs/langs/sr_RS/main.lang b/htdocs/langs/sr_RS/main.lang index 8ebb74139ae..ab812a9b841 100644 --- a/htdocs/langs/sr_RS/main.lang +++ b/htdocs/langs/sr_RS/main.lang @@ -8,86 +8,86 @@ FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. SeparatorThousand=, -FormatDateShort=%m/%d/%Y -FormatDateShortInput=%m/%d/%Y -FormatDateShortJava=MM/dd/yyyy -FormatDateShortJavaInput=MM/dd/yyyy -FormatDateShortJQuery=mm/dd/yy -FormatDateShortJQueryInput=mm/dd/yy +FormatDateShort=%d/%m/%Y +FormatDateShortInput=%d/%m/%Y +FormatDateShortJava=dd/MM/yyyy +FormatDateShortJavaInput=dd/MM/yyyy +FormatDateShortJQuery=dd/mm/yy +FormatDateShortJQueryInput=dd/mm/yy FormatHourShortJQuery=HH:MI FormatHourShort=%I:%M %p FormatHourShortDuration=%H:%M FormatDateTextShort=%b %d, %Y FormatDateText=%B %d, %Y -FormatDateHourShort=%m/%d/%Y %I:%M %p -FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourShort=%d/%m/%Y %I:%M %p +FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p DatabaseConnection=Database connection -NoTranslation=No translation +NoTranslation=Nema prevoda NoRecordFound=No record found -NoError=No error -Error=Error -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist +NoError=Nema greške +Error=Greška +ErrorFieldRequired=Polje '%s' je obavezno +ErrorFieldFormat=Polje '%s' sadrži pogrešnu vrednost +ErrorFileDoesNotExists=Fajl %s ne postoji ErrorFailedToOpenFile=Failed to open file %s ErrorCanNotCreateDir=Can not create dir %s ErrorCanNotReadDir=Can not read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorAttachedFilesDisabled=File attaching is disabled on this server +ErrorConstantNotDefined=Parametar %s nije definisan +ErrorUnknown=Nepoznata greška +ErrorSQL=Greška u SQL-u +ErrorLogoFileNotFound=Logo fajl '%s' nije pronađen +ErrorGoToGlobalSetup=Idite u 'Company/Foundation' podešavanja da ovo ispravite +ErrorGoToModuleSetup=Idite u podešavanja Modula da ovo ispravite +ErrorFailedToSendMail=Greška u slanju mail-a (pošiljalac=%s, primalac=%s) +ErrorAttachedFilesDisabled=Fajlovi u prilogu su deaktivirani na ovom serveru ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorNoRequestRan=No request ran -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. +ErrorInternalErrorDetected=Detektovana je greška +ErrorNoRequestRan=Nema izvršenih upita +ErrorWrongHostParameter=Pogrešan host parametar +ErrorYourCountryIsNotDefined=Vaša zemlja nije definisana. Idite na Početna-Podešavanja-Izmene i ponovo popunite formu ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value +ErrorWrongValue=Pogrešna vrednost ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. +ErrorNoRequestInError=Nema upita sa greškom +ErrorServiceUnavailableTryLater=Servis trenutno nije dostupan. Pokušajte ponovo. ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. +ErrorSomeErrorWereFoundRollbackIsDone=Detektovane su greške. Poništavamo sve promene. ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -BackgroundColorByDefault=Default background color +ErrorFailedToSaveFile=Greška, nemoguće sačuvati fajl. +SetDate=Postavi datum +SelectDate=Izaberi datum +SeeAlso=Pogledajte i %s +SeeHere=Pogledaj ovde +BackgroundColorByDefault=Default boja pozadine FileNotUploaded=The file was not uploaded FileUploaded=The file was successfully uploaded FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (need Internet access) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted +NbOfEntries=Br linija +GoToWikiHelpPage=Pročitajte online pomoć (potrebna je internet konekcija) +GoToHelpPage=Pročitajte pomoć +RecordSaved=Linija sačuvana +RecordDeleted=Linija obrisana LevelOfFeature=Level of features -NotDefined=Not defined +NotDefined=Nije definisano DefinedAndHasThisValue=Defined and value to -IsNotDefined=undefined +IsNotDefined=nedefinisano DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is setup to %s in configuration file conf.php.
This means that password database is extern to Dolibarr, so changing this field may have no effects. Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten ? -SeeAbove=See above +Undefined=Nedefinisano +PasswordForgotten=Zaboravljena lozinka ? +SeeAbove=Pogledajte iznad HomeArea=Home area -LastConnexion=Last connection -PreviousConnexion=Previous connection +LastConnexion=Poslednja konekcija +PreviousConnexion=Prethodna konekcija ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since +ConnectedSince=Konektovani ste od AuthenticationMode=Authentification mode -RequestedUrl=Requested Url +RequestedUrl=Traženi Url DatabaseTypeManager=Database type manager RequestLastAccess=Request for last database access RequestLastAccessInError=Request for last database access in error @@ -95,136 +95,136 @@ ReturnCodeLastAccessInError=Return code for last database access in error InformationLastAccessInError=Information for last database access in error DolibarrHasDetectedError=Dolibarr has detected a technical error InformationToHelpDiagnose=This is information that can help diagnostic -MoreInformation=More information -TechnicalInformation=Technical information -NotePublic=Note (public) -NotePrivate=Note (private) +MoreInformation=Više informacija +TechnicalInformation=Tehnički podaci +NotePublic=Beleška (javna) +NotePrivate=Beleška (privatna) PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. DoTest=Test ToFilter=Filter WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Alls=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -Always=Always -Never=Never -Under=under +yes=da +Yes=Da +no=ne +No=Ne +All=Sve +Alls=Sve +Home=Početna +Help=Pomoć +OnlineHelp=Online pomoć +PageWiki=Wiki stranica +Always=Uvek +Never=Nikad +Under=ispod Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed +PeriodEndDate=Kraj perioda +Activate=Aktivirajte +Activated=Uključeno +Closed=Zatvoreno Closed2=Closed -Enabled=Enabled +Enabled=Uključeno Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link +Disable=Isključite +Disabled=Isključeno +Add=Dodajte +AddLink=Dodajte link +RemoveLink=Ukloni link Update=Update AddActionToDo=Add event to do AddActionDone=Add event done -Close=Close -Close2=Close -Confirm=Confirm +Close=Zatvori +Close2=Zatvori +Confirm=Potvrdi ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s ? -Delete=Delete -Remove=Remove -Resiliate=Resiliate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone +Delete=Obriši +Remove=Ukloni +Resiliate=Otkaži +Cancel=Poništi +Modify=Izmeni +Edit=Izmeni +Validate=Potvrdi +ValidateAndApprove=Validiraj i Odobri +ToValidate=Potvrditi +Save=Sačuvaj +SaveAs=Sačuvaj kao +TestConnection=Testiraj konekciju +ToClone=Kloniraj ConfirmClone=Choose data you want to clone : NoCloneOptionsSpecified=No data to clone defined. -Of=of +Of=od Go=Go Run=Run CopyOf=Copy of -Show=Show +Show=Pokaži ShowCardHere=Show card Search=Search SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove +Valid=Validno +Approve=Odobri +Disapprove=Odbij ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose +Upload=Pošalji fajl +ToLink=ink +Select=Izaberi +Choose=Izaberi ChooseLangage=Please choose your language Resize=Resize Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password +Author=Autor +User=Korisnik +Users=Korisnici +Group=Grupa +Groups=Grupe +NoUserGroupDefined=Korisnička grupa nije definisana +Password=Lozinka PasswordRetype=Retype your password NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -GlobalValue=Global value +Name=Ime +Person=Osoba +Parameter=Parametar +Parameters=Parametri +Value=Vrednost +GlobalValue=Globalna vrednost PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language +NewValue=Nova vrednost +CurrentValue=Trenutna vrednost +Code=Kod +Type=Tip +Language=Jezik MultiLanguage=Multi-language -Note=Note +Note=Beleška CurrentNote=Current note -Title=Title +Title=Naslov Label=Label RefOrLabel=Ref. or label Info=Log -Family=Family -Description=Description -Designation=Description +Family=Familija +Description=Opis +Designation=Opis Model=Model DefaultModel=Default model -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number +Action=Događaj +About=O +Number=Broj +NumberByMonth=Broj po mesecu +AmountByMonth=Svota po mesecu +Numero=Broj Limit=Limit -Limits=Limits +Limits=Limiti DevelopmentTeam=Development Team Logout=Logout NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup +Connection=Konekcija +Setup=Podešavanja Alert=Alert -Previous=Previous -Next=Next +Previous=Prethodno +Next=Sledeće Cards=Cards Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour +Now=Sada +HourStart=Vreme početka +Date=Datum +DateAndHour=Datum i vreme DateStart=Date start DateEnd=Date end DateCreation=Creation date @@ -245,36 +245,36 @@ DatePlanShort=Date planed DateRealShort=Date real. DateBuild=Report build date DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon +DateApprove=Vreme odobravanja +DateApprove2=Vreme odobravanja (drugo odobrenje) +DurationYear=godina +DurationMonth=mesec +DurationWeek=nedelja +DurationDay=dan +DurationYears=godine +DurationMonths=meseci +DurationWeeks=nedelje +DurationDays=dani +Year=Godina +Month=Mesec +Week=Nedelja +Day=Dan +Hour=Sat +Minute=Minut +Second=Sekund +Years=Godine +Months=Meseci +Days=Dani +days=dani +Hours=Sati +Minutes=Minuti +Seconds=Sekunde +Weeks=Nedelje +Today=Danas +Yesterday=Juče +Tomorrow=Sutra +Morning=Pre podne +Afternoon=Posle podne Quadri=Quadri MonthOfDay=Month of the day HourShort=H @@ -295,14 +295,14 @@ Cut=Cut Copy=Copy Paste=Paste Default=Default -DefaultValue=Default value -DefaultGlobalValue=Global value -Price=Price -UnitPrice=Unit price +DefaultValue=Default vrednost +DefaultGlobalValue=Globalna vrednost +Price=Cena +UnitPrice=Jedinična cena UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) +UnitPriceTTC=Jedinična cena +PriceU=J.C. +PriceUHT=J.C. (neto) AskPriceSupplierUHT=U.P. net Requested PriceUTTC=U.P. (inc. tax) Amount=Amount @@ -323,7 +323,7 @@ PriceQtyHT=Price for this quantity (net of tax) PriceQtyMinHT=Price quantity min. (net of tax) PriceQtyTTC=Price for this quantity (inc. tax) PriceQtyMinTTC=Price quantity min. (inc. of tax) -Percentage=Percentage +Percentage=Procenat Total=Total SubTotal=Subtotal TotalHTShort=Total (net) @@ -346,14 +346,14 @@ LT1ES=RE LT2ES=IRPF VATRate=Tax Rate Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics +Sum=Suma +Delta=Razlika +Module=Modul +Option=Opcija +List=Lista +FullList=Cela lista +Statistics=Statistike +OtherStatistics=Druge statistike Status=Status Favorite=Favorite ShortInfo=Info. @@ -362,18 +362,18 @@ ExternalRef=Ref. extern RefSupplier=Ref. supplier RefPayment=Ref. payment CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments +Comment=Komentar +Comments=Komentari ActionsToDo=Events to do ActionsDone=Events done ActionsToDoShort=To do -ActionsRunningshort=Started -ActionsDoneShort=Done +ActionsRunningshort=Započeto +ActionsDoneShort=Završeno ActionNotApplicable=Not applicable ActionRunningNotStarted=To start -ActionRunningShort=Started -ActionDoneShort=Finished -ActionUncomplete=Uncomplete +ActionRunningShort=Započeto +ActionDoneShort=Završeno +ActionUncomplete=nepotpuno CompanyFoundation=Company/Foundation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party @@ -384,252 +384,252 @@ NActions=%s events NActionsLate=%s late RequestAlreadyDone=Request already recorded Filter=Filter -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated +RemoveFilter=Ukloni filter +ChartGenerated=Grafik generisan +ChartNotGenerated=Grafik nije generisan GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration +Generate=Gereriši +Duration=Trajanje +TotalDuration=Ukupno trajanje Summary=Summary MyBookmarks=My bookmarks OtherInformationsBoxes=Other information boxes DolibarrBoard=Dolibarr board -DolibarrStateBoard=Statistics +DolibarrStateBoard=Statistike DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Popularity=Popularity -Categories=Tags/categories -Category=Tag/category +Available=Dostupno +NotYetAvailable=Još uvek nedostupno +NotAvailable=Nedostupno +Popularity=Popularnost +Categories=Tagovi/kategorije +Category=Tag/kategorija By=By -From=From +From=Od to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused +and=i +or=ili +Other=Drugo +Others=Drugi +OtherInformations=Druge informacije +Quantity=Količina +Qty=Kol. +ChangedBy=Izmenio +ApprovedBy=Odobrio +ApprovedBy2=Odobrio (drugo odobrenje) +Approved=Odobreno +Refused=Odbijeno ReCalculate=Recalculate ResultOk=Success ResultKo=Failure -Reporting=Reporting -Reportings=Reporting +Reporting=Izveštavanje +Reportings=Izveštavanje Draft=Draft Drafts=Drafts -Validated=Validated -Opened=Open -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Sujet +Validated=Validirano +Opened=Otvori +New=Novo +Discount=Popust +Unknown=Nepoznato +General=Opšte +Size=Veličina +Received=Primljeno +Paid=Plaćeno +Topic=Tema ByCompanies=By third parties ByUsers=By users -Links=Links +Links=Linkovi Link=Link Receipts=Receipts -Rejects=Rejects +Rejects=Odbijeni Preview=Preview -NextStep=Next step -PreviousStep=Previous step -Datas=Data -None=None -NoneF=None -Late=Late -Photo=Picture -Photos=Pictures -AddPhoto=Add picture +NextStep=Sledeće +PreviousStep=Prethodno +Datas=Podaci +None=Ništa +NoneF=Ništa +Late=Kasni +Photo=Slika +Photos=Slike +AddPhoto=Dodaj sliku Login=Login -CurrentLogin=Current login -January=January -February=February -March=March +CurrentLogin=Trenutni login +January=Januar +February=Februar +March=Mart April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December +May=Maj +June=Jun +July=Jul +August=Avgust +September=Septembar +October=Oktobar +November=Novembar +December=Decembar JanuaryMin=Jan FebruaryMin=Feb MarchMin=Mar AprilMin=Apr -MayMin=May +MayMin=Maj JuneMin=Jun JulyMin=Jul -AugustMin=Aug +AugustMin=Avg SeptemberMin=Sep -OctoberMin=Oct +OctoberMin=Okt NovemberMin=Nov DecemberMin=Dec -Month01=January -Month02=February -Month03=March +Month01=Januar +Month02=Februar +Month03=Mart Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December +Month05=Maj +Month06=Jun +Month07=Jul +Month08=Avgust +Month09=Septembar +Month10=Oktobar +Month11=Novembar +Month12=Decembar MonthShort01=Jan MonthShort02=Feb MonthShort03=Mar MonthShort04=Apr -MonthShort05=May +MonthShort05=Maj MonthShort06=Jun MonthShort07=Jul -MonthShort08=Aug +MonthShort08=Avg MonthShort09=Sep -MonthShort10=Oct +MonthShort10=Okt MonthShort11=Nov MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly +AttachedFiles=Fajlovi i dokumenti u prilogu +FileTransferComplete=Fajl je uspešno sačuvan DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Mot clé -Legend=Legend -FillTownFromZip=Fill city from zip -Fill=Fill -Reset=Reset -ShowLog=Show log -File=File -Files=Files -NotAllowed=Not allowed +ReportName=Ime izveštaja +ReportPeriod=Period izveštaja +ReportDescription=Opis +Report=Izveštaj +Keyword=Ključna reč +Legend=Legenda +FillTownFromZip=Ispuni grad iz poštanskog koda +Fill=Ispuni +Reset=Resetuj +ShowLog=Prikaži log +File=Fajl +Files=Fajlovi +NotAllowed=Nije dozvoljeno ReadPermissionNotAllowed=Read permission not allowed AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug +Example=Primer +Examples=Primeri +NoExample=Nema primera +FindBug=Prijavi bug NbOfThirdParties=Number of third parties -NbOfCustomers=Number of customers -NbOfLines=Number of lines -NbOfObjects=Number of objects +NbOfCustomers=Broj klijenata +NbOfLines=Broj linija +NbOfObjects=Broj objekata NbOfReferers=Number of referrers Referers=Refering objects -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check +TotalQuantity=Ukupna količina +DateFromTo=Od %s do %s +DateFrom=Od %s +DateUntil=Do %s +Check=Proveri Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildPDF=Build PDF -RebuildPDF=Rebuild PDF -BuildDoc=Build Doc -RebuildDoc=Rebuild Doc -Entity=Environment +Internal=interni +External=Eksterni +Internals=Interni +Externals=Eksterni +Warning=Upozorenje +Warnings=Upozorenja +BuildPDF=Generiši PDF +RebuildPDF=Regeneriši PDF +BuildDoc=Generiši Doc +RebuildDoc=Regeneriši Doc +Entity=Okruženje Entities=Entities -EventLogs=Logs -CustomerPreview=Customer preview -SupplierPreview=Supplier preview +EventLogs=Logovi +CustomerPreview=Preview klijenta +SupplierPreview=Preview dobavljača AccountancyPreview=Accountancy preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview +ShowCustomerPreview=Prikaži preview klijenta +ShowSupplierPreview=Prikaži preview dobavljača ShowAccountancyPreview=Show accountancy preview ShowProspectPreview=Show prospect preview RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators +Currency=Valuta +InfoAdmin=Informacija za administratore Undo=Undo Redo=Redo ExpandAll=Expand all UndoExpandAll=Undo expand -Reason=Reason +Reason=Razlog FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Question=Question -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body +CloseWindow=Zatvori prozor +Question=Pitanje +Response=Odgovor +Priority=Prioritet +SendByMail=Poslato mailom +MailSentBy=Mail poslao +TextUsedInTheMessageBody=Sadržaj maila SendAcknowledgementByMail=Send Ack. by email -NoEMail=No email -NoMobilePhone=No mobile phone -Owner=Owner -DetectedVersion=Detected version +NoEMail=Nema maila +NoMobilePhone=Nema mobilnog telefona +Owner=Vlasnik +DetectedVersion=Detektovana verzija FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. Refresh=Refresh -BackToList=Back to list -GoBack=Go back +BackToList=Nazad na listu +GoBack=Nazad CanBeModifiedIfOk=Can be modified if valid CanBeModifiedIfKo=Can be modified if not valid -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s records modified -AutomaticCode=Automatic code +RecordModifiedSuccessfully=Linija uspešno izmenjena +RecordsModified=%s linija izmenjeno +AutomaticCode=Automatski kod NotManaged=Not managed FeatureDisabled=Feature disabled MoveBox=Move box %s Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method +NotEnoughPermissions=Nemate pravo da izvršite ovu operaciju +SessionName=Ime sesije +Method=Metoda Receive=Receive -PartialWoman=Partial -PartialMan=Partial -TotalWoman=Total -TotalMan=Total +PartialWoman=Delimično +PartialMan=Delimično +TotalWoman=Celo +TotalMan=Celo NeverReceived=Never received -Canceled=Canceled +Canceled=Otkazano YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -Color=Color -Documents=Linked files -DocumentsNb=Linked files (%s) -Documents2=Documents -BuildDocuments=Generated documents -UploadDisabled=Upload disabled -MenuECM=Documents +Color=Boja +Documents=Povezani fajlovi +DocumentsNb=Povezani fajlovi (%s) +Documents2=Dokumenti +BuildDocuments=Generisani dokumenti +UploadDisabled=Upload deaktiviran +MenuECM=Dokumenti MenuAWStats=AWStats -MenuMembers=Members +MenuMembers=Članovi MenuAgendaGoogle=Google agenda ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature +CurrentUserLanguage=Aktivni jezik +CurrentTheme=Aktivna tema +CurrentMenuManager=Aktivni menu manager +DisabledModules=Deaktivirani moduli +For=Za +ForCustomer=Za klijenta +Signature=Potpis HidePassword=Show command with password hidden UnHidePassword=Show real command with clear password Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -ListOfFiles=List of available files +Informations=Informacije +Page=Strana +Notes=Beleške +AddNewLine=Dodaj liniju +AddFile=Dodaj fajl +ListOfFiles=Lista dostupnih fajlova FreeZone=Free entry FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes @@ -637,61 +637,61 @@ PDFMerge=PDF Merge Merge=Merge PrintContentArea=Show page to print main content area MenuManager=Menu manager -NoMenu=No sub-menu +NoMenu=Nema pod menija WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error +CoreErrorTitle=Sistemska greška CoreErrorMessage=Sorry, an error occurred. Check the logs or contact your system administrator. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory +CreditCard=Kreditna kartica +FieldsWithAreMandatory=Polja sa %s su obavezna FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result +Line=Linija +NotSupported=Nije podržano +RequiredField=Obavezno polje +Result=Rezultat ToTest=Test ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency +Visibility=Vidljivost +Private=Privatno +Hidden=Skriveno +Resources=Resursi +Source=Izvor +Prefix=Prefiks +Before=Pre +After=Posle +IPAddress=IP adresa +Frequency=Učestalost IM=Instant messaging -NewAttribute=New attribute +NewAttribute=Novi atribut AttributeCode=Attribute code OptionalFieldsSetup=Extra attributes setup -URLPhoto=URL of photo/logo +URLPhoto=URL fotografije/logoa SetLinkToThirdParty=Link to another third party -CreateDraft=Create draft +CreateDraft=Napravi draft SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day +ClickToEdit=Klikni za edit +ObjectDeleted=Objekat %s je obrisan +ByCountry=Po zemlji +ByTown=Po gradu +ByDate=Po datumu +ByMonthYear=Po mesecu/godini +ByYear=Po godini +ByMonth=Po mesecu +ByDay=Po danu BySalesRepresentative=By sales representative LinkedToSpecificUsers=Linked to a particular user contact -DeleteAFile=Delete a file +DeleteAFile=Obriši fajl ConfirmDeleteAFile=Are you sure you want to delete file -NoResults=No results -SystemTools=System tools -ModulesSystemTools=Modules tools +NoResults=Nema rezultata +SystemTools=Sistemski alati +ModulesSystemTools=Alati modua Test=Test Element=Element -NoPhotoYet=No pictures available yet -HomeDashboard=Home summary +NoPhotoYet=Još nema slika +HomeDashboard=Pregled početne Deductible=Deductible -from=from -toward=toward +from=od +toward=ka Access=Access HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") @@ -699,52 +699,52 @@ OriginFileName=Original filename SetDemandReason=Set source SetBankAccount=Define Bank Account AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL +ViewPrivateNote=Pogledaj beleške +XMoreLines=%s linija skrivena(o) +PublicUrl=Javni UR AddBox=Add box SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show transaction +PrintFile=Štampaj fajl %s +ShowTransaction=Prikaži transakciju GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied +Deny=Odbij +Denied=Odbijeno ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman +Gender=Pol +Genderman=Muško +Genderwoman=Žensko ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely +Mandatory=Obavezno +Hello=Zdravo +Sincerely=Srdačan pozdrav # Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F +Monday=Ponedeljak +Tuesday=Utorak +Wednesday=Sreda +Thursday=Četvrtak +Friday=Petak +Saturday=Subota +Sunday=Nedelja +MondayMin=Po +TuesdayMin=Ut +WednesdayMin=Sr +ThursdayMin=Če +FridayMin=Pe +SaturdayMin=Su +SundayMin=Ne +Day1=Ponedeljak +Day2=Utorak +Day3=Sreda +Day4=Četvrtak +Day5=Petak +Day6=Subota +Day0=Nedelja +ShortMonday=P +ShortTuesday=U +ShortWednesday=S +ShortThursday=Č +ShortFriday=P ShortSaturday=S -ShortSunday=S +ShortSunday=N SelectMailModel=Select email template SetRef=Set ref diff --git a/htdocs/langs/sr_RS/users.lang b/htdocs/langs/sr_RS/users.lang index b4df936bff7..9a52dabdc80 100644 --- a/htdocs/langs/sr_RS/users.lang +++ b/htdocs/langs/sr_RS/users.lang @@ -1,99 +1,99 @@ # Dolibarr language file - Source file is en_US - users HRMArea=HRM area -UserCard=User card -ContactCard=Contact card -GroupCard=Group card -NoContactCard=No card among contacts -Permission=Permission -Permissions=Permissions -EditPassword=Edit password -SendNewPassword=Regenerate and send password -ReinitPassword=Regenerate password -PasswordChangedTo=Password changed to: %s -SubjectNewPassword=Your new password for Dolibarr -AvailableRights=Available permissions -OwnedRights=Owned permissions -GroupRights=Group permissions -UserRights=User permissions -UserGUISetup=User display setup -DisableUser=Disable -DisableAUser=Disable a user -DeleteUser=Delete -DeleteAUser=Delete a user -DisableGroup=Disable -DisableAGroup=Disable a group -EnableAUser=Enable a user -EnableAGroup=Enable a group -DeleteGroup=Delete -DeleteAGroup=Delete a group -ConfirmDisableUser=Are you sure you want to disable user %s ? -ConfirmDisableGroup=Are you sure you want to disable group %s ? -ConfirmDeleteUser=Are you sure you want to delete user %s ? -ConfirmDeleteGroup=Are you sure you want to delete group %s ? -ConfirmEnableUser=Are you sure you want to enable user %s ? -ConfirmEnableGroup=Are you sure you want to enable group %s ? -ConfirmReinitPassword=Are you sure you want to generate a new password for user %s ? -ConfirmSendNewPassword=Are you sure you want to generate and send new password for user %s ? -NewUser=New user -CreateUser=Create user -SearchAGroup=Search a group -SearchAUser=Search a user -LoginNotDefined=Login is not defined. -NameNotDefined=Name is not defined. -ListOfUsers=List of users +UserCard=Kartica korisnika +ContactCard=Kartica kontakta +GroupCard=Kartica grupe +NoContactCard=Nema kartice među kontaktima +Permission=Pravo +Permissions=Prava +EditPassword=Izmeni lozinku +SendNewPassword=Regeneriši i pošalji lozinku +ReinitPassword=Regeneriši lozinku +PasswordChangedTo=Lozinka izmenjena u: %s +SubjectNewPassword=Nova lozinka za Dolibarr +AvailableRights=Dostupna prava +OwnedRights=Aktivna prava +GroupRights=Prava grupe +UserRights=Prava korisnika +UserGUISetup=Podešavanja prikaza korisnika +DisableUser=Deaktiviraj +DisableAUser=Deaktiviraj korisnika +DeleteUser=Obriši +DeleteAUser=Obriši korisnika +DisableGroup=Deaktiviraj +DisableAGroup=Deaktiviraj grupu +EnableAUser=Aktiviraj korisnika +EnableAGroup=Aktiviraj grupu +DeleteGroup=Obriši +DeleteAGroup=iši grupu +ConfirmDisableUser=Da li ste sigurni da želite da deaktivirate korisnika %s ? +ConfirmDisableGroup=Da li ste sigurni da želite da deaktivirate grupu %s ? +ConfirmDeleteUser=Da li ste sigurni da želite da obrišete korisnika %s ? +ConfirmDeleteGroup=Da li ste sigurni da želite da obrišete grupu %s ? +ConfirmEnableUser=Da li ste sigurni da želite da aktivirate korisnika %s ? +ConfirmEnableGroup=Da li ste sigurni da želite da aktivirate grupu %s ? +ConfirmReinitPassword=Da li ste sigurni da želite da generišete novu lozinku za korisnika %s ? +ConfirmSendNewPassword=Da li ste sigurni da želite da generišete i pošaljete novu lozinku za korisnika %s ? +NewUser=Novi korisnik +CreateUser=Kreiraj korisnika +SearchAGroup=Traži grupu +SearchAUser=Traži korisnika +LoginNotDefined=Login nije definisan. +NameNotDefined=Ime nije definisano. +ListOfUsers=Lista korisnika Administrator=Administrator SuperAdministrator=Super Administrator -SuperAdministratorDesc=Global administrator +SuperAdministratorDesc=Globalni administrator AdministratorDesc=Administrator's entity -DefaultRights=Default permissions +DefaultRights=Default prava DefaultRightsDesc=Define here default permissions that are automatically granted to a new created user (Go on user card to change permission of an existing user). -DolibarrUsers=Dolibarr users -LastName=Name -FirstName=First name -ListOfGroups=List of groups -NewGroup=New group -CreateGroup=Create group -RemoveFromGroup=Remove from group +DolibarrUsers=Dolibarr korisnici +LastName=Ime +FirstName=Ime +ListOfGroups=Lista grupa +NewGroup=Nova grupa +CreateGroup=Kreiraj grupu +RemoveFromGroup=Izbaci iz grupe PasswordChangedAndSentTo=Password changed and sent to %s. PasswordChangeRequestSent=Request to change password for %s sent to %s. -MenuUsersAndGroups=Users & Groups -MenuMyUserCard=My user card -LastGroupsCreated=Last %s created groups -LastUsersCreated=Last %s users created -ShowGroup=Show group -ShowUser=Show user -NonAffectedUsers=Non assigned users -UserModified=User modified successfully -PhotoFile=Photo file -UserWithDolibarrAccess=User with Dolibarr access -ListOfUsersInGroup=List of users in this group -ListOfGroupsForUser=List of groups for this user -UsersToAdd=Users to add to this group -GroupsToAdd=Groups to add to this user -NoLogin=No login -LinkToCompanyContact=Link to third party / contact -LinkedToDolibarrMember=Link to member -LinkedToDolibarrUser=Link to Dolibarr user -LinkedToDolibarrThirdParty=Link to Dolibarr third party -CreateDolibarrLogin=Create a user -CreateDolibarrThirdParty=Create a third party -LoginAccountDisable=Account disabled, put a new login to activate it. -LoginAccountDisableInDolibarr=Account disabled in Dolibarr. -LoginAccountDisableInLdap=Account disabled in the domain. -UsePersonalValue=Use personal value -GuiLanguage=Interface language -InternalUser=Internal user -MyInformations=My data -ExportDataset_user_1=Dolibarr's users and properties -DomainUser=Domain user %s -Reactivate=Reactivate +MenuUsersAndGroups=Korisnici & Grupe +MenuMyUserCard=Moja korisnička kartica +LastGroupsCreated=Poslednjih %s kreiranih grupa +LastUsersCreated=Poslednjih %s kreiranih korisnika +ShowGroup=Prikaži grupu +ShowUser=Prikaži korisnika +NonAffectedUsers=Nedodeljeni korisnici +UserModified=Korisnik je uspešno izmenjen +PhotoFile=Photo fajl +UserWithDolibarrAccess=Korisnik sa Dolibarr pristupom +ListOfUsersInGroup=Lista korisnika u ovoj grupi +ListOfGroupsForUser=Lista grupa za ovog korisnika +UsersToAdd=Korisnici za dodavanje u ovu grupu +GroupsToAdd=Grupe za dodavanje ovom korisniku +NoLogin=Nema login-a +LinkToCompanyContact=Link ka subjektu / kontaktu +LinkedToDolibarrMember=Link ka članu +LinkedToDolibarrUser=Link ka Dolibarr korisniku +LinkedToDolibarrThirdParty=Link ka Dolibarr subjektu +CreateDolibarrLogin=Kreiraj korisnika +CreateDolibarrThirdParty=Kreiraj subjekat +LoginAccountDisable=Nalog je deaktiviran, unesite novi login da biste ga aktivirali. +LoginAccountDisableInDolibarr=Nalog je deaktiviran u Dolibarr-u +LoginAccountDisableInLdap=Nalog je deaktiviran u domenu. +UsePersonalValue=Upotrebi lićnu vrednost +GuiLanguage=Jezik interfejsa +InternalUser=Interni korsnik +MyInformations=Moji podaci +ExportDataset_user_1=Korisnici Dolibarr-a i parametri +DomainUser=Korisnik domena %s +Reactivate=Reaktiviraj CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. -Inherited=Inherited +Inherited=Nasleđeno UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) UserWillBeExternalUser=Created user will be an external user (because linked to a particular third party) -IdPhoneCaller=Id phone caller +IdPhoneCaller=Id telefonskog poziva UserLogged=User %s login UserLogoff=User %s logout NewUserCreated=User %s created @@ -103,21 +103,21 @@ UserDisabled=User %s disabled UserEnabled=User %s activated UserDeleted=User %s removed NewGroupCreated=Group %s created -GroupModified=Group %s modified +GroupModified=Grupa %s je izmenjena GroupDeleted=Group %s removed ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact ? ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member ? ConfirmCreateThirdParty=Are you sure you want to create a third party for this member ? LoginToCreate=Login to create NameToCreate=Name of third party to create -YourRole=Your roles -YourQuotaOfUsersIsReached=Your quota of active users is reached ! -NbOfUsers=Nb of users +YourRole=Vaši profili +YourQuotaOfUsersIsReached=Vaša kvota aktivnih korisnika je dostignuta ! +NbOfUsers=Br korisnika DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin -HierarchicalResponsible=Supervisor -HierarchicView=Hierarchical view +HierarchicalResponsible=Supervizor +HierarchicView=Hijerarhijski prikaz UseTypeFieldToChange=Use field Type to change -OpenIDURL=OpenID URL -LoginUsingOpenID=Use OpenID to login -WeeklyHours=Weekly hours -ColorUser=Color of the user +OpenIDURL=OpenID UR +LoginUsingOpenID=Uloguj se sa OpenID-em +WeeklyHours=Nedeljni broj sati +ColorUser=Boja korisnika diff --git a/htdocs/langs/zh_CN/cron.lang b/htdocs/langs/zh_CN/cron.lang index a9186a3589e..38a87982d23 100644 --- a/htdocs/langs/zh_CN/cron.lang +++ b/htdocs/langs/zh_CN/cron.lang @@ -33,7 +33,7 @@ CronExecute=Launch scheduled jobs CronConfirmExecute=Are you sure you want to execute these scheduled jobs now ? CronInfo=Scheduled job module allow to execute job that have been planned CronWaitingJobs=Waiting jobs -CronTask=Job +CronTask=工作 CronNone=无 CronDtStart=开始日期 CronDtEnd=结束日期 From c75f62ddb792036c84ea0b4ff809c6d91e6847f4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Sep 2015 12:11:28 +0200 Subject: [PATCH 085/205] FIX icon into export profile may be not correctly output --- dev/skeletons/modMyModule.class.php | 7 +++++-- htdocs/exports/export.php | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/dev/skeletons/modMyModule.class.php b/dev/skeletons/modMyModule.class.php index 8c55edc3d1a..518b4f4d018 100644 --- a/dev/skeletons/modMyModule.class.php +++ b/dev/skeletons/modMyModule.class.php @@ -228,11 +228,14 @@ class modMyModule extends DolibarrModules // Example: // $this->export_code[$r]=$this->rights_class.'_'.$r; - // $this->export_label[$r]='CustomersInvoicesAndInvoiceLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + // $this->export_label[$r]='MyModule'; // Translation key (used only if key ExportDataset_xxx_z not found) // $this->export_enabled[$r]='1'; // Condition to show export in list (ie: '$user->id==3'). Set to 1 to always show when module is enabled. - // $this->export_permission[$r]=array(array("facture","facture","export")); + // $this->export_icon[$r]='generic:MyModule'; + // $this->export_permission[$r]=array(array("mymodule","level1","level2")); // $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.price'=>"LineUnitPrice",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",'fd.total_tva'=>"LineTotalTVA",'fd.total_ttc'=>"LineTotalTTC",'fd.date_start'=>"DateStart",'fd.date_end'=>"DateEnd",'fd.fk_product'=>'ProductId','p.ref'=>'ProductRef'); + // $this->export_TypeFields_array[$r]=array('t.date'=>'Date', 't.qte'=>'Numeric', 't.poids'=>'Numeric', 't.fad'=>'Numeric', 't.paq'=>'Numeric', 't.stockage'=>'Numeric', 't.fadparliv'=>'Numeric', 't.livau100'=>'Numeric', 't.forfait'=>'Numeric', 's.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'fd.description'=>"Text",'fd.subprice'=>"Numeric",'fd.tva_tx'=>"Numeric",'fd.qty'=>"Numeric",'fd.total_ht'=>"Numeric",'fd.total_tva'=>"Numeric",'fd.total_ttc'=>"Numeric",'fd.date_start'=>"Date",'fd.date_end'=>"Date",'fd.special_code'=>'Numeric','fd.product_type'=>"Numeric",'fd.fk_product'=>'List:product:label','p.ref'=>'Text','p.label'=>'Text','p.accountancy_code_sell'=>'Text'); // $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.price'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.date_start'=>"invoice_line",'fd.date_end'=>"invoice_line",'fd.fk_product'=>'product','p.ref'=>'product'); + // $this->export_dependencies_array[$r]=array('invoice_line'=>'fd.rowid','product'=>'fd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them // $this->export_sql_start[$r]='SELECT DISTINCT '; // $this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'facture as f, '.MAIN_DB_PREFIX.'facturedet as fd, '.MAIN_DB_PREFIX.'societe as s)'; // $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)'; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 7522a09bbf5..ceab5d54714 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -431,10 +431,10 @@ if ($step == 1 || ! $datatoexport) //print img_object($objexport->array_export_module[$key]->getName(),$export->array_export_module[$key]->picto).' '; print $objexport->array_export_module[$key]->getName(); print '
'; - $icon=$objexport->array_export_icon[$key]; + $icon=preg_replace('/:.*$/','',$objexport->array_export_icon[$key]); $label=$objexport->array_export_label[$key]; //print $value.'-'.$icon.'-'.$label."
"; - print img_object($objexport->array_export_module[$key]->getName(),$icon).' '; + print img_object($objexport->array_export_module[$key]->getName(), $icon).' '; print $label; print '
'; if ($objexport->array_export_perms[$key]) @@ -492,10 +492,10 @@ if ($step == 2 && $datatoexport) // Lot de donnees a exporter print '
'.$langs->trans("DatasetToExport").''; - $icon=$objexport->array_export_icon[0]; + $icon=preg_replace('/:.*$/','',$objexport->array_export_icon[0]); $label=$objexport->array_export_label[0]; //print $value.'-'.$icon.'-'.$label."
"; - print img_object($objexport->array_export_module[0]->getName(),$icon).' '; + print img_object($objexport->array_export_module[0]->getName(), $icon).' '; print $label; print '
'.$langs->trans("DatasetToExport").''; - $icon=$objexport->array_export_icon[0]; + $icon=preg_replace('/:.*$/','',$objexport->array_export_icon[0]); $label=$objexport->array_export_label[0]; //print $value.'-'.$icon.'-'.$label."
"; - print img_object($objexport->array_export_module[0]->getName(),$icon).' '; + print img_object($objexport->array_export_module[0]->getName(), $icon).' '; print $label; print '
'.$langs->trans("DatasetToExport").''; - print img_object($objexport->array_export_module[0]->getName(),$objexport->array_export_icon[0]).' '; + $icon=preg_replace('/:.*$/','',$objexport->array_export_icon[0]); + print img_object($objexport->array_export_module[0]->getName(), $icon).' '; print $objexport->array_export_label[0]; print '
'.$langs->trans("DatasetToExport").''; - print img_object($objexport->array_export_module[0]->getName(),$objexport->array_export_icon[0]).' '; + $icon=preg_replace('/:.*$/','',$objexport->array_export_icon[0]); + print img_object($objexport->array_export_module[0]->getName(), $icon).' '; print $objexport->array_export_label[0]; print '
'; - print $form->select_company('', 'socid', 's.client = 1 OR s.client = 2 OR s.client = 3', 1); + print $form->select_company('', 'socid', '(s.client = 1 OR s.client = 2 OR s.client = 3) AND status=1', 1); print '
'.$langs->trans("DefaultSkin").''; $url='http://ckeditor.com/addons/skins/all'; - print ''; + /*print ''; print $langs->trans('DownloadMoreSkins'); - print ''; + print '';*/ print '
'.$langs->trans('Account').''; - $form->select_comptes(empty($_POST['accountid'])?'':$_POST['accountid'],'accountid',0,'',2); + $form->select_comptes(empty($accountid)?'':$accountid,'accountid',0,'',2); print '
' . $langs->trans("Categories") . ''; - print $form->showCategories($object->id, 'supplier', 1); - print "
' . $langs->trans("Categories") . ''; + print $form->showCategories($object->id, 'supplier', 1); + print "
' . fieldLabel('CustomersCategoriesShort', 'custcats') . ''; From 313d9ddacdf5f59577d2560999e6dcbc74ccc8bb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Sep 2015 22:04:03 +0200 Subject: [PATCH 098/205] FIX #3534 --- htdocs/admin/dict.php | 1 + htdocs/commande/card.php | 12 ++++++++---- htdocs/core/class/commonobject.class.php | 14 ++++++++++---- htdocs/core/tpl/contacts.tpl.php | 7 ++++++- htdocs/expedition/contact.php | 10 +++++----- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index f9137a06acf..17c8bcae048 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -445,6 +445,7 @@ if ($id == 11) $langs->load("interventions"); $elementList = array( '' => '', + 'societe' => $langs->trans('ThirdParty'), // 'proposal' => $langs->trans('Proposal'), // 'order' => $langs->trans('Order'), // 'invoice' => $langs->trans('Bill'), diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index bd76ec1646d..1d418ac295c 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -1165,8 +1165,10 @@ if (empty($reshook)) - if (! $error && ! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->commande->creer) { - if ($action == 'addcontact') { + if (! $error && ! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->commande->creer) + { + if ($action == 'addcontact') + { if ($object->id > 0) { $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid')); $result = $object->add_contact($contactid, GETPOST('type'), GETPOST('source')); @@ -1186,7 +1188,8 @@ if (empty($reshook)) } // bascule du statut d'un contact - else if ($action == 'swapstatut') { + else if ($action == 'swapstatut') + { if ($object->id > 0) { $result = $object->swapContactStatus(GETPOST('ligne')); } else { @@ -1195,7 +1198,8 @@ if (empty($reshook)) } // Efface un contact - else if ($action == 'deletecontact') { + else if ($action == 'deletecontact') + { $result = $object->delete_contact($lineid); if ($result >= 0) { diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 65ece020ac8..16ebb0e77e9 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -452,13 +452,15 @@ abstract class CommonObject // Check parameters if ($fk_socpeople <= 0) { - $this->error=$langs->trans("ErrorWrongValueForParameter","1"); + $langs->load("errors"); + $this->error=$langs->trans("ErrorWrongValueForParameterX","1"); dol_syslog(get_class($this)."::add_contact ".$this->error,LOG_ERR); return -1; } if (! $type_contact) { - $this->error=$langs->trans("ErrorWrongValueForParameter","2"); + $langs->load("errors"); + $this->error=$langs->trans("ErrorWrongValueForParameterX","2"); dol_syslog(get_class($this)."::add_contact ".$this->error,LOG_ERR); return -2; } @@ -486,7 +488,7 @@ abstract class CommonObject } $datecreate = dol_now(); - + $this->db->begin(); // Insertion dans la base @@ -504,7 +506,11 @@ abstract class CommonObject if (! $notrigger) { $result=$this->call_trigger(strtoupper($this->element).'_ADD_CONTACT', $user); - if ($result < 0) { $this->db->rollback(); return -1; } + if ($result < 0) + { + $this->db->rollback(); + return -1; + } } $this->db->commit(); diff --git a/htdocs/core/tpl/contacts.tpl.php b/htdocs/core/tpl/contacts.tpl.php index 382abbe81c0..5abdfc124e4 100644 --- a/htdocs/core/tpl/contacts.tpl.php +++ b/htdocs/core/tpl/contacts.tpl.php @@ -72,7 +72,12 @@ $userstatic=new User($db);
trans("Users"); ?>
global->MAIN_INFO_SOCIETE_NOM; ?>
select_dolusers($user->id, 'userid', 0, (! empty($userAlreadySelected)?$userAlreadySelected:null), 0, null, null, 0, 56); ?>
-
selectTypeContact($object, '', 'type','internal'); ?>
+
+ element == 'shipping' && is_object($objectsrc)) $tmpobject=$objectsrc; + echo $formcompany->selectTypeContact($tmpobject, '', 'type','internal'); + ?>
 
">
diff --git a/htdocs/expedition/contact.php b/htdocs/expedition/contact.php index c09b3e415cd..039af2cd0ec 100644 --- a/htdocs/expedition/contact.php +++ b/htdocs/expedition/contact.php @@ -77,7 +77,7 @@ if ($action == 'addcontact' && $user->rights->expedition->creer) { if ($result > 0 && $id > 0) { - $result = $objectsrc->add_contact($_POST["contactid"], $_POST["type"], $_POST["source"]); + $result = $objectsrc->add_contact(GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid'), $_POST["type"], $_POST["source"]); } if ($result >= 0) @@ -87,14 +87,15 @@ if ($action == 'addcontact' && $user->rights->expedition->creer) } else { - if ($objectsrc->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') { + if ($objectsrc->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') + { $langs->load("errors"); $mesg = $langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"); } else { $mesg = $objectsrc->error; + $mesgs = $objectsrc->errors; } - - setEventMessage($mesg, 'errors'); + setEventMessages($mesg, $mesgs, 'errors'); } } @@ -236,7 +237,6 @@ if ($id > 0 || ! empty($ref)) // Lignes de contacts echo '
'; - // Contacts lines (modules that overwrite templates must declare this into descriptor) $dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl')); foreach($dirtpls as $reldir) From 099e3f03760203bd4180a12bfb8b7d26811108c5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Sep 2015 00:47:56 +0200 Subject: [PATCH 099/205] FIX Removed warnings --- htdocs/user/card.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index f545e325712..4cfb2a96562 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -278,7 +278,7 @@ if (($action == 'addgroup' || $action == 'removegroup') && $caneditfield) { $editgroup = new UserGroup($db); $editgroup->fetch($group); - $editgroup->oldcopy=dol_clone($editgroup); + $editgroup->oldcopy=clone($editgroup); $object->fetch($id); if ($action == 'addgroup') $object->SetInGroup($group,($conf->multicompany->transverse_mode?GETPOST("entity"):$editgroup->entity)); @@ -340,7 +340,7 @@ if ($action == 'update' && ! $_POST["cancel"]) { $db->begin(); - $object->oldcopy=dol_clone($object); + $object->oldcopy=clone($object); $object->lastname = GETPOST("lastname",'alpha'); $object->firstname = GETPOST("firstname",'alpha'); @@ -508,7 +508,7 @@ if ($action == 'update' && ! $_POST["cancel"]) { $object->fetch($id); - $object->oldcopy=dol_clone($object); + $object->oldcopy=clone($object); $ret=$object->setPassword($user,$_POST["password"]); if ($ret < 0) @@ -1046,7 +1046,7 @@ if (($action == 'create') || ($action == 'adduserldap')) { print '
'.$langs->trans("ColorUser").''; - print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', 'usercolorconfig', 1, '', 'hideifnotset'); + print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', null, 1, '', 'hideifnotset'); print '
'.$langs->trans("ColorUser").''; - print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', 'usercolorconfig', 1, '', 'hideifnotset'); + print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', null, 1, '', 'hideifnotset'); print '
'.$langs->trans("Ref").''; - print $form->showrefnav($member,'id'); + print $form->showrefnav($member,'id','','1','rowid','ref','','&type=3'); print '
'.$langs->trans("Color").''; +print $formother->select_color($color, 'color'); +print '
'.$langs->trans("In").''; print $form->select_all_categories($type,$object->fk_parent,'parent',64,$object->id); diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php index 87d6dc57d63..bf86c1d496c 100644 --- a/htdocs/categories/viewcat.php +++ b/htdocs/categories/viewcat.php @@ -29,6 +29,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; $langs->load("categories"); @@ -159,6 +160,7 @@ if ($type == Categorie::TYPE_PRODUCT && $elemid && $action == 'addintocategory' */ $form = new Form($db); +$formother = new FormOther($db); llxHeader("","",$langs->trans("Categories")); @@ -197,11 +199,17 @@ foreach ($ways as $way) print '
'; +print '
'; print $langs->trans("Description").''; print dol_htmlentitiesbr($object->description); print '
'; +print $langs->trans("Color").''; +print $formother->showColor($object->color); +print '
'.$langs->trans("Color").''; + print $formother->select_color($color,'color'); + print '
'.$langs->trans("AddIn").''; print $form->select_all_categories($type, $catorigin); diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index acc569dcec3..ac051a45666 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -368,7 +368,7 @@ class Categorie extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."categorie"; $sql.= " SET label = '".$this->db->escape($this->label)."',"; - $sql.= " description = '".$this->db->escape($this->description)."'"; + $sql.= " description = '".$this->db->escape($this->description)."',"; $sql.= " color = '".$this->db->escape($this->color)."'"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { diff --git a/htdocs/categories/edit.php b/htdocs/categories/edit.php index 228f02eb881..83d3547d1b8 100644 --- a/htdocs/categories/edit.php +++ b/htdocs/categories/edit.php @@ -27,6 +27,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; $langs->load("categories"); @@ -84,15 +85,17 @@ if ($action == 'update' && $user->rights->categorie->creer) if (empty($categorie->label)) { + $error++; $action = 'create'; setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("Label")), 'errors'); } if (empty($categorie->description)) { + $error++; $action = 'create'; setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("Description")), 'errors'); } - if (empty($categorie->error)) + if (! $error && empty($categorie->error)) { $ret = $extrafields->setOptionalsFromPost($extralabels,$categorie); if ($ret < 0) $error++; @@ -120,6 +123,7 @@ if ($action == 'update' && $user->rights->categorie->creer) */ $form = new Form($db); +$formother = new FormOther($db); llxHeader("","",$langs->trans("Categories")); @@ -140,14 +144,14 @@ dol_fiche_head(''); print ''; // Ref -print ''; print ''; // Description print ''; -print ''; +print ''; print ''; // Color print ''; -print ''; +print ''; print ''; // Parent category From 4195eb3366c54b01c826629833f45d208f5063da Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Sep 2015 20:20:03 +0200 Subject: [PATCH 109/205] NEW Color category is visible onto the thumb of tags on thirdparty, or products cards. --- htdocs/core/class/html.form.class.php | 6 +++--- htdocs/societe/soc.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 6d0263d01a1..2900f6b7519 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4670,7 +4670,7 @@ class Form * * @param int $id Id of object * @param string $type Type of category ('member', 'customer', 'supplier', 'product', 'contact'). Old mode (0, 1, 2, ...) is deprecated. - * @param int $rendermode 0=Default, use multiselect. 1=Emulate multiselect + * @param int $rendermode 0=Default, use multiselect. 1=Emulate multiselect (recommended) * @return mixed Array of category objects or < 0 if KO */ function showCategories($id, $type, $rendermode=0) @@ -4687,10 +4687,10 @@ class Form $toprint = array(); foreach($categories as $c) { - $ways = $c->print_all_ways(); + $ways = $c->print_all_ways(); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formated text foreach($ways as $way) { - $toprint[] = '
  • '.img_object('','category').' '.$way.'
  • '; + $toprint[] = '
  • color?' style="background: #'.$c->color.'"':'').'>'.img_object('','category').' '.$way.'
  • '; } } return '
      '.implode(' ', $toprint).'
    '; diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index ee232ce9fcb..08bf5268b8f 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -41,7 +41,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; -require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; if (! empty($conf->adherent->enabled)) require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; $langs->load("companies"); From 148e8a2c233d354d58ef8565001b8895a714c8fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Thu, 17 Sep 2015 20:38:48 +0200 Subject: [PATCH 110/205] Used OOP for mysqli connector Better error handling Slightly more readable codebase --- htdocs/core/db/mysqli.class.php | 120 +++++++++++++++----------------- 1 file changed, 55 insertions(+), 65 deletions(-) diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php index 4033dc01117..068cd410326 100644 --- a/htdocs/core/db/mysqli.class.php +++ b/htdocs/core/db/mysqli.class.php @@ -31,6 +31,8 @@ require_once DOL_DOCUMENT_ROOT .'/core/db/DoliDB.class.php'; */ class DoliDBMysqli extends DoliDB { + /** @var mysqli Database object */ + public $db; //! Database type public $type='mysqli'; //! Database label @@ -81,29 +83,26 @@ class DoliDBMysqli extends DoliDB $this->connected = false; $this->ok = false; $this->error=$langs->trans("ErrorWrongHostParameter"); - dol_syslog(get_class($this)."::DoliDBMysqli : Erreur Connect, wrong host parameters",LOG_ERR); + dol_syslog(get_class($this)."::DoliDBMysqli : Connect error, wrong host parameters",LOG_ERR); return $this->ok; } - // Essai connexion serveur - // We do not try to connect to database, only to server. Connect to database is done later in constrcutor - $this->db = $this->connect($host, $user, $pass, '', $port); + // Try server connection + // We do not try to connect to database, only to server. Connect to database is done later in constrcutor + $this->db = $this->connect($host, $user, $pass, '', $port); - if ($this->db) - { - $this->connected = true; - $this->ok = true; - } - else - { - // host, login ou password incorrect - $this->connected = false; - $this->ok = false; - $this->error=mysqli_connect_error(); - dol_syslog(get_class($this)."::DoliDBMysqli : Erreur Connect mysqli_connect_error=".$this->error,LOG_ERR); - } + if ($this->db->connect_errno) { + $this->connected = false; + $this->ok = false; + $this->error = $this->db->connect_error; + dol_syslog(get_class($this) . "::DoliDBMysqli Connect error: " . $this->error, LOG_ERR); + return $this->ok; + } else { + $this->connected = true; + $this->ok = true; + } - // Si connexion serveur ok et si connexion base demandee, on essaie connexion base + // If server connection is ok, we try to connect to the database if ($this->connected && $name) { if ($this->select_db($name)) @@ -116,7 +115,7 @@ class DoliDBMysqli extends DoliDB $clientmustbe=''; if (preg_match('/UTF-8/i',$conf->file->character_set_client)) $clientmustbe='utf8'; if (preg_match('/ISO-8859-1/i',$conf->file->character_set_client)) $clientmustbe='latin1'; - if (mysqli_character_set_name($this->db) != $clientmustbe) + if ($this->db->character_set_name() != $clientmustbe) { $this->query("SET NAMES '".$clientmustbe."'", $this->db); //$this->query("SET CHARACTER SET ". $this->forcecharset); @@ -128,7 +127,7 @@ class DoliDBMysqli extends DoliDB $this->database_name = ''; $this->ok = false; $this->error=$this->error(); - dol_syslog(get_class($this)."::DoliDBMysqli : Erreur Select_db ".$this->error,LOG_ERR); + dol_syslog(get_class($this)."::DoliDBMysqli : Select_db error ".$this->error,LOG_ERR); } } else @@ -142,7 +141,7 @@ class DoliDBMysqli extends DoliDB $clientmustbe=''; if (preg_match('/UTF-8/i',$conf->file->character_set_client)) $clientmustbe='utf8'; if (preg_match('/ISO-8859-1/i',$conf->file->character_set_client)) $clientmustbe='latin1'; - if (mysqli_character_set_name($this->db) != $clientmustbe) + if ($this->db->character_set_name() != $clientmustbe) { $this->query("SET NAMES '".$clientmustbe."'", $this->db); //$this->query("SET CHARACTER SET ". $this->forcecharset); @@ -175,36 +174,27 @@ class DoliDBMysqli extends DoliDB function select_db($database) { dol_syslog(get_class($this)."::select_db database=".$database, LOG_DEBUG); - return mysqli_select_db($this->db,$database); + return $this->db->select_db($database); } - /** - * Connexion to server + /** + * Connect to server * - * @param string $host database server host - * @param string $login login - * @param string $passwd password - * @param string $name name of database (not used for mysql, used for pgsql) - * @param integer $port Port of database server - * @return mysqli Database access handler - * @see close - */ - function connect($host, $login, $passwd, $name, $port=0) - { - dol_syslog(get_class($this)."::connect host=$host, port=$port, login=$login, passwd=--hidden--, name=$name",LOG_DEBUG); + * @param string $host database server host + * @param string $login login + * @param string $passwd password + * @param string $name name of database (not used for mysql, used for pgsql) + * @param integer $port Port of database server + * @return mysqli Database access object + * @see close + */ + function connect($host, $login, $passwd, $name, $port = 0) + { + dol_syslog(get_class($this) . "::connect host=$host, port=$port, login=$login, passwd=--hidden--, name=$name", LOG_DEBUG); - $newhost=$host; - $newport=$port; - - // With mysqli, port must be in connect parameters - if (! $newport) $newport=3306; - - $this->db = @mysqli_connect($newhost, $login, $passwd, $name, $newport); - - //print "Resultat fonction connect: ".$this->db; - return $this->db; - } + return new mysqli($host, $login, $passwd, $name, $port); + } /** * Return version of database server @@ -213,7 +203,7 @@ class DoliDBMysqli extends DoliDB */ function getVersion() { - return mysqli_get_server_info($this->db); + return $this->db->get_server_info(); } /** @@ -221,10 +211,10 @@ class DoliDBMysqli extends DoliDB * * @return string Version string */ - function getDriverInfo() - { - return mysqli_get_client_info($this->db); - } + function getDriverInfo() + { + return $this->db->get_client_info(); + } /** @@ -239,7 +229,7 @@ class DoliDBMysqli extends DoliDB { if ($this->transaction_opened > 0) dol_syslog(get_class($this)."::close Closing a connection with an opened transaction depth=".$this->transaction_opened,LOG_ERR); $this->connected=false; - return mysqli_close($this->db); + return $this->db->close(); } return false; } @@ -264,11 +254,11 @@ class DoliDBMysqli extends DoliDB if (! $this->database_name) { // Ordre SQL ne necessitant pas de connexion a une base (exemple: CREATE DATABASE) - $ret = mysqli_query($this->db,$query); + $ret = $this->db->query($query); } else { - $ret = mysqli_query($this->db,$query); + $ret = $this->db->query($query); } if (! preg_match("/^COMMIT/i",$query) && ! preg_match("/^ROLLBACK/i",$query)) @@ -300,7 +290,7 @@ class DoliDBMysqli extends DoliDB { // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion if (! is_object($resultset)) { $resultset=$this->_results; } - return mysqli_fetch_object($resultset); + return $resultset->fetch_object(); } @@ -314,7 +304,7 @@ class DoliDBMysqli extends DoliDB { // If resultset not provided, we take the last used by connexion if (! is_object($resultset)) { $resultset=$this->_results; } - return mysqli_fetch_array($resultset); + return $resultset->fetch_array(); } /** @@ -329,7 +319,7 @@ class DoliDBMysqli extends DoliDB if (! is_bool($resultset)) { if (! is_object($resultset)) { $resultset=$this->_results; } - return mysqli_fetch_row($resultset); + return $resultset->fetch_row(); } else { @@ -349,7 +339,7 @@ class DoliDBMysqli extends DoliDB { // If resultset not provided, we take the last used by connexion if (! is_object($resultset)) { $resultset=$this->_results; } - return mysqli_num_rows($resultset); + return $resultset->num_rows; } /** @@ -365,7 +355,7 @@ class DoliDBMysqli extends DoliDB if (! is_object($resultset)) { $resultset=$this->_results; } // mysql necessite un link de base pour cette fonction contrairement // a pqsql qui prend un resultset - return mysqli_affected_rows($this->db); + return $this->db->affected_rows; } @@ -380,7 +370,7 @@ class DoliDBMysqli extends DoliDB // If resultset not provided, we take the last used by connexion if (! is_object($resultset)) { $resultset=$this->_results; } // Si resultset en est un, on libere la memoire - if (is_object($resultset)) mysqli_free_result($resultset); + if (is_object($resultset)) $resultset->free_result(); } /** @@ -436,10 +426,10 @@ class DoliDBMysqli extends DoliDB 1451 => 'DB_ERROR_CHILD_EXISTS' ); - if (isset($errorcode_map[mysqli_errno($this->db)])) { - return $errorcode_map[mysqli_errno($this->db)]; + if (isset($errorcode_map[$this->db->errno])) { + return $errorcode_map[$this->db->errno]; } - $errno=mysqli_errno($this->db); + $errno=$this->db->errno; return ($errno?'DB_ERROR_'.$errno:'0'); } } @@ -456,7 +446,7 @@ class DoliDBMysqli extends DoliDB return 'Not connected. Check setup parameters in conf/conf.php file and your mysql client and server versions'; } else { - return mysqli_error($this->db); + return $this->db->error; } } @@ -469,7 +459,7 @@ class DoliDBMysqli extends DoliDB */ function last_insert_id($tab,$fieldid='rowid') { - return mysqli_insert_id($this->db); + return $this->db->insert_id; } /** From bf4fe911973acf4a3372423d8c90bd3f7a6fbfe8 Mon Sep 17 00:00:00 2001 From: jfefe Date: Thu, 17 Sep 2015 20:48:57 +0200 Subject: [PATCH 111/205] FIX #3548 : API not working after removing Composer --- htdocs/api/restler.php | 8 ++++++++ htdocs/public/api/index.php | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 htdocs/api/restler.php diff --git a/htdocs/api/restler.php b/htdocs/api/restler.php new file mode 100644 index 00000000000..ae891386b31 --- /dev/null +++ b/htdocs/api/restler.php @@ -0,0 +1,8 @@ + Date: Thu, 17 Sep 2015 23:23:18 +0200 Subject: [PATCH 112/205] Update categorie.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit voir https://github.com/Dolibarr/dolibarr/pull/3540/files (je n'avais pas vu dans quelle branche j'étais) --- htdocs/categories/categorie.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/categories/categorie.php b/htdocs/categories/categorie.php index 0746475ecec..9e780223d0e 100644 --- a/htdocs/categories/categorie.php +++ b/htdocs/categories/categorie.php @@ -410,7 +410,7 @@ else if ($id || $ref) // Ref print '
    '; print ''; // Login From f01b9c09a3eb7ec9602e73cc707c41a6ac0835e1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 18 Sep 2015 10:22:30 +0200 Subject: [PATCH 113/205] Removed duplicate code. Use inheritance instead. --- .../commande/doc/pdf_einstein.modules.php | 19 +- .../commande/doc/pdf_proforma.modules.php | 1183 +---------------- 2 files changed, 17 insertions(+), 1185 deletions(-) diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index cc1e6aeedca..96bd7b49b92 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -28,7 +28,7 @@ * \brief Fichier de la classe permettant de generer les commandes au modele Einstein */ -require_once DOL_DOCUMENT_ROOT .'/core/modules/commande/modules_commande.php'; +require_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -593,7 +593,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show payments table * - * @param TCPDF $pdf Object PDF + * @param TCPDF $pdf Object PDF * @param Object $object Object order * @param int $posy Position y in PDF * @param Translate $outputlangs Object langs for output @@ -608,7 +608,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show miscellaneous information (payment mode, payment term, ...) * - * @param TCPDF $pdf Object PDF + * @param TCPDF $pdf Object PDF * @param Object $object Object to show * @param int $posy Y * @param Translate $outputlangs Langs object @@ -793,7 +793,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show total to pay * - * @param TCPDF $pdf Object PDF + * @param TCPDF $pdf Object PDF * @param Facture $object Object invoice * @param int $deja_regle Montant deja regle * @param int $posy Position depart @@ -1050,7 +1050,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show table for lines * - * @param TCPDF $pdf Object PDF + * @param TCPDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y (not used) @@ -1161,13 +1161,14 @@ class pdf_einstein extends ModelePDFCommandes /** * Show top header of page. * - * @param TCPDF $pdf Object PDF + * @param TCPDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output + * @param string $titlekey Translation key to show as title of document * @return void */ - function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey="Order") { global $conf,$langs,$hookmanager; @@ -1220,7 +1221,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->SetFont('','B', $default_font_size + 3); $pdf->SetXY($posx,$posy); $pdf->SetTextColor(0,0,60); - $title=$outputlangs->transnoentities("Order"); + $title=$outputlangs->transnoentities($titlekey); $pdf->MultiCell(100, 3, $title, '', 'R'); $pdf->SetFont('','B',$default_font_size); @@ -1339,7 +1340,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show footer of page. Need this->emetteur object * - * @param TCPDF $pdf PDF + * @param TCPDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php index 603f151fbfd..4fc8f9ea67a 100644 --- a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php @@ -4,6 +4,7 @@ * Copyright (C) 2008 Raphael Bertrand * Copyright (C) 2010-2013 Juanjo Menent * Copyright (C) 2012 Christophe Battarel + * Copyright (C) 2012 Cedric Salvador * Copyright (C) 2015 Marcos García * * This program is free software; you can redistribute it and/or modify @@ -27,7 +28,7 @@ * \brief Fichier de la classe permettant de generer les commandes au modele Proforma */ -require_once DOL_DOCUMENT_ROOT .'/core/modules/commande/modules_commande.php'; +require_once DOL_DOCUMENT_ROOT.'/core/modules/commande/doc/pdf_einstein.modules.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -37,26 +38,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; /** * Classe permettant de generer les commandes au modele Proforma */ -class pdf_proforma extends ModelePDFCommandes +class pdf_proforma extends pdf_einstein { - var $db; - var $name; - var $description; - var $type; - - var $phpmin = array(4,3,0); // Minimum version of PHP required by module - var $version = 'dolibarr'; - - var $page_largeur; - var $page_hauteur; - var $format; - var $marge_gauche; - var $marge_droite; - var $marge_haute; - var $marge_basse; - - var $emetteur; // Objet societe qui emet - /** * Constructor @@ -66,994 +49,19 @@ class pdf_proforma extends ModelePDFCommandes function __construct($db) { global $conf,$langs,$mysoc; + + parent::__construct($db); - $langs->load("main"); - $langs->load("bills"); - - $this->db = $db; $this->name = "proforma"; $this->description = $langs->trans('PDFProformaDescription'); - - // Dimension page pour format A4 - $this->type = 'pdf'; - $formatarray=pdf_getFormat(); - $this->page_largeur = $formatarray['width']; - $this->page_hauteur = $formatarray['height']; - $this->format = array($this->page_largeur,$this->page_hauteur); - $this->marge_gauche=isset($conf->global->MAIN_PDF_MARGIN_LEFT)?$conf->global->MAIN_PDF_MARGIN_LEFT:10; - $this->marge_droite=isset($conf->global->MAIN_PDF_MARGIN_RIGHT)?$conf->global->MAIN_PDF_MARGIN_RIGHT:10; - $this->marge_haute =isset($conf->global->MAIN_PDF_MARGIN_TOP)?$conf->global->MAIN_PDF_MARGIN_TOP:10; - $this->marge_basse =isset($conf->global->MAIN_PDF_MARGIN_BOTTOM)?$conf->global->MAIN_PDF_MARGIN_BOTTOM:10; - - $this->option_logo = 1; // Affiche logo - $this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION - $this->option_modereg = 1; // Affiche mode reglement - $this->option_condreg = 1; // Affiche conditions reglement - $this->option_codeproduitservice = 1; // Affiche code produit-service - $this->option_multilang = 1; // Dispo en plusieurs langues - $this->option_escompte = 0; // Affiche si il y a eu escompte - $this->option_credit_note = 0; // Support credit notes - $this->option_freetext = 1; // Support add of a personalised text - $this->option_draft_watermark = 1; // Support add of a watermark on drafts - - $this->franchise=!$mysoc->tva_assuj; - - // Get source company - $this->emetteur=$mysoc; - if (empty($this->emetteur->country_code)) $this->emetteur->country_code=substr($langs->defaultlang,-2); // By default, if was not defined - - // Define position of columns - $this->posxdesc=$this->marge_gauche+1; - $this->posxtva=112; - $this->posxup=126; - $this->posxqty=145; - $this->posxdiscount=162; - $this->postotalht=174; - if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) $this->posxtva=$this->posxup; - $this->posxpicture=$this->posxtva - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?20:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH); // width of images - if ($this->page_largeur < 210) // To work with US executive format - { - $this->posxpicture-=20; - $this->posxtva-=20; - $this->posxup-=20; - $this->posxqty-=20; - $this->posxdiscount-=20; - $this->postotalht-=20; - } - - $this->tva=array(); - $this->localtax1=array(); - $this->localtax2=array(); - $this->atleastoneratenotnull=0; - $this->atleastonediscount=0; - } - - /** - * Function to build pdf onto disk - * - * @param Object $object Object to generate - * @param Translate $outputlangs Lang output object - * @param string $srctemplatepath Full path of source filename for generator using a template file - * @param int $hidedetails Do not show line details - * @param int $hidedesc Do not show desc - * @param int $hideref Do not show ref - * @return int 1=OK, 0=KO - */ - function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0) - { - global $user,$langs,$conf,$mysoc,$db,$hookmanager; - - if (! is_object($outputlangs)) $outputlangs=$langs; - // For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO - if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1'; - - $outputlangs->load("main"); - $outputlangs->load("dict"); - $outputlangs->load("companies"); - $outputlangs->load("bills"); - $outputlangs->load("products"); - $outputlangs->load("orders"); - - if ($conf->commande->dir_output) - { - $object->fetch_thirdparty(); - - $deja_regle = ""; - - // Definition of $dir and $file - if ($object->specimen) - { - $dir = $conf->commande->dir_output; - $file = $dir . "/SPECIMEN.pdf"; - } - else - { - $objectref = dol_sanitizeFileName($object->ref); - $dir = $conf->commande->dir_output . "/" . $objectref; - $file = $dir . "/" . $objectref . ".pdf"; - } - - if (! file_exists($dir)) - { - if (dol_mkdir($dir) < 0) - { - $this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir); - return 0; - } - } - - if (file_exists($dir)) - { - // Add pdfgeneration hook - if (! is_object($hookmanager)) - { - include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; - $hookmanager=new HookManager($this->db); - } - $hookmanager->initHooks(array('pdfgeneration')); - $parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs); - global $action; - $reshook=$hookmanager->executeHooks('beforePDFCreation',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks - - $nblignes = count($object->lines); - - // Create pdf instance - $pdf=pdf_getInstance($this->format); - $default_font_size = pdf_getPDFFontSize($outputlangs); // Must be after pdf_getInstance - $heightforinfotot = 50; // Height reserved to output the info and total part - $heightforfreetext= (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT)?$conf->global->MAIN_PDF_FREETEXT_HEIGHT:5); // Height reserved to output the free text on last page - $heightforfooter = $this->marge_basse + 8; // Height reserved to output the footer (value include bottom margin) - $pdf->SetAutoPageBreak(1,0); - - if (class_exists('TCPDF')) - { - $pdf->setPrintHeader(false); - $pdf->setPrintFooter(false); - } - $pdf->SetFont(pdf_getPDFFont($outputlangs)); - // Set path to the background PDF File - if (empty($conf->global->MAIN_DISABLE_FPDI) && ! empty($conf->global->MAIN_ADD_PDF_BACKGROUND)) - { - $pagecount = $pdf->setSourceFile($conf->mycompany->dir_output.'/'.$conf->global->MAIN_ADD_PDF_BACKGROUND); - $tplidx = $pdf->importPage(1); - } - - $pdf->Open(); - $pagenb=0; - $pdf->SetDrawColor(128,128,128); - - $pdf->SetTitle($outputlangs->convToOutputCharset($object->ref)); - $pdf->SetSubject($outputlangs->transnoentities("Order")); - $pdf->SetCreator("Dolibarr ".DOL_VERSION); - $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); - $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Order")); - if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false); - - $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right - - // Positionne $this->atleastonediscount si on a au moins une remise - for ($i = 0 ; $i < $nblignes ; $i++) - { - if ($object->lines[$i]->remise_percent) - { - $this->atleastonediscount++; - } - } - if (empty($this->atleastonediscount)) - { - $this->posxpicture+=($this->postotalht - $this->posxdiscount); - $this->posxtva+=($this->postotalht - $this->posxdiscount); - $this->posxup+=($this->postotalht - $this->posxdiscount); - $this->posxqty+=($this->postotalht - $this->posxdiscount); - $this->posxdiscount+=($this->postotalht - $this->posxdiscount); - //$this->postotalht; - } - - // New page - $pdf->AddPage(); - if (! empty($tplidx)) $pdf->useTemplate($tplidx); - $pagenb++; - $this->_pagehead($pdf, $object, 1, $outputlangs); - $pdf->SetFont('','', $default_font_size - 1); - $pdf->MultiCell(0, 3, ''); // Set interline to 3 - $pdf->SetTextColor(0,0,0); - - - $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)?42:10); - $tab_height = 130; - $tab_height_newpage = 150; - - // Affiche notes - $notetoshow=empty($object->note_public)?'':$object->note_public; - if (! empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE)) - { - // Get first sale rep - if (is_object($object->thirdparty)) - { - $salereparray=$object->thirdparty->getSalesRepresentatives($user); - $salerepobj=new User($this->db); - $salerepobj->fetch($salereparray[0]['id']); - if (! empty($salerepobj->signature)) $notetoshow=dol_concatdesc($notetoshow, $salerepobj->signature); - } - } - if ($notetoshow) - { - $tab_top = 88; - - $pdf->SetFont('','', $default_font_size - 1); - $pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1); - $nexY = $pdf->GetY(); - $height_note=$nexY-$tab_top; - - // Rect prend une longueur en 3eme param - $pdf->SetDrawColor(192,192,192); - $pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note+1); - - $tab_height = $tab_height - $height_note; - $tab_top = $nexY+6; - } - else - { - $height_note=0; - } - - $iniY = $tab_top + 7; - $curY = $tab_top + 7; - $nexY = $tab_top + 7; - - // Loop on each lines - for ($i = 0 ; $i < $nblignes ; $i++) - { - $curY = $nexY; - $pdf->SetFont('','', $default_font_size - 1); // Into loop to work with multipage - $pdf->SetTextColor(0,0,0); - - $pdf->setTopMargin($tab_top_newpage); - $pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforinfotot); // The only function to edit the bottom margin of current page to set it. - $pageposbefore=$pdf->getPage(); - - // Description of product line - $curX = $this->posxdesc-1; - - $showpricebeforepagebreak=1; - - $pdf->startTransaction(); - pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,3,$curX,$curY,$hideref,$hidedesc); - $pageposafter=$pdf->getPage(); - if ($pageposafter > $pageposbefore) // There is a pagebreak - { - $pdf->rollbackTransaction(true); - $pageposafter=$pageposbefore; - //print $pageposafter.'-'.$pageposbefore;exit; - $pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it. - pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY,$hideref,$hidedesc); - $posyafter=$pdf->GetY(); - if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))) // There is no space left for total+free text - { - if ($i == ($nblignes-1)) // No more lines, and no space left to show total, so we create a new page - { - $pdf->AddPage('','',true); - if (! empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); - $pdf->setPage($pageposafter+1); - } - } - else - { - // We found a page break - $showpricebeforepagebreak=0; - } - } - else // No pagebreak - { - $pdf->commitTransaction(); - } - - $nexY = $pdf->GetY(); - $pageposafter=$pdf->getPage(); - $pdf->setPage($pageposbefore); - $pdf->setTopMargin($this->marge_haute); - $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - - // We suppose that a too long description is moved completely on next page - if ($pageposafter > $pageposbefore && empty($showpricebeforepagebreak)) { - $pdf->setPage($pageposafter); $curY = $tab_top_newpage; - } - - $pdf->SetFont('','', $default_font_size - 1); // On repositionne la police par defaut - - // VAT Rate - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) - { - $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY($this->posxtva, $curY); - $pdf->MultiCell($this->posxup-$this->posxtva-0.8, 3, $vat_rate, 0, 'R'); - } - - // Unit price before discount - $up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY($this->posxup, $curY); - $pdf->MultiCell($this->posxqty-$this->posxup-0.8, 3, $up_excl_tax, 0, 'R', 0); - - // Quantity - $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY($this->posxqty, $curY); - $pdf->MultiCell($this->posxdiscount-$this->posxqty-0.8, 3, $qty, 0, 'R'); // Enough for 6 chars - - // Discount on line - if ($object->lines[$i]->remise_percent) - { - $pdf->SetXY($this->posxdiscount-2, $curY); - $remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails); - $pdf->MultiCell($this->postotalht-$this->posxdiscount+2, 3, $remise_percent, 0, 'R'); - } - - // Total HT line - $total_excl_tax = pdf_getlinetotalexcltax($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY($this->postotalht, $curY); - $pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalht, 3, $total_excl_tax, 0, 'R', 0); - - // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva - $tvaligne=$object->lines[$i]->total_tva; - - $localtax1ligne=$object->lines[$i]->total_localtax1; - $localtax2ligne=$object->lines[$i]->total_localtax2; - $localtax1_rate=$object->lines[$i]->localtax1_tx; - $localtax2_rate=$object->lines[$i]->localtax2_tx; - $localtax1_type=$object->lines[$i]->localtax1_type; - $localtax2_type=$object->lines[$i]->localtax2_type; - - if ($object->remise_percent) $tvaligne-=($tvaligne*$object->remise_percent)/100; - if ($object->remise_percent) $localtax1ligne-=($localtax1ligne*$object->remise_percent)/100; - if ($object->remise_percent) $localtax2ligne-=($localtax2ligne*$object->remise_percent)/100; - - $vatrate=(string) $object->lines[$i]->tva_tx; - - // Retrieve type from database for backward compatibility with old records - if ((! isset($localtax1_type) || $localtax1_type=='' || ! isset($localtax2_type) || $localtax2_type=='') // if tax type not defined - && (! empty($localtax1_rate) || ! empty($localtax2_rate))) // and there is local tax - { - $localtaxtmp_array=getLocalTaxesFromRate($vatrate,0, $object->thirdparty,$mysoc); - $localtax1_type = $localtaxtmp_array[0]; - $localtax2_type = $localtaxtmp_array[2]; - } - - // retrieve global local tax - if ($localtax1_type && $localtax1ligne != 0) - $this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne; - if ($localtax2_type && $localtax2ligne != 0) - $this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne; - - if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*'; - if (! isset($this->tva[$vatrate])) $this->tva[$vatrate]=''; - $this->tva[$vatrate] += $tvaligne; - - // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) - { - $pdf->setPage($pageposafter); - $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); - //$pdf->SetDrawColor(190,190,200); - $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); - $pdf->SetLineStyle(array('dash'=>0)); - } - - $nexY+=2; // Passe espace entre les lignes - - // Detect if some page were added automatically and output _tableau for past pages - while ($pagenb < $pageposafter) - { - $pdf->setPage($pagenb); - if ($pagenb == 1) - { - $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1); - } - else - { - $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1); - } - $this->_pagefoot($pdf,$object,$outputlangs,1); - $pagenb++; - $pdf->setPage($pagenb); - $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); - } - if (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak) - { - if ($pagenb == 1) - { - $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1); - } - else - { - $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1); - } - $this->_pagefoot($pdf,$object,$outputlangs,1); - // New page - $pdf->AddPage(); - if (! empty($tplidx)) $pdf->useTemplate($tplidx); - $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); - } - } - - // Show square - if ($pagenb == 1) - { - $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 0, 0); - $bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; - } - else - { - $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0); - $bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; - } - - // Affiche zone infos - $posy=$this->_tableau_info($pdf, $object, $bottomlasttab, $outputlangs); - - // Affiche zone totaux - $posy=$this->_tableau_tot($pdf, $object, $deja_regle, $bottomlasttab, $outputlangs); - - // Affiche zone versements - if ($deja_regle) - { - $posy=$this->_tableau_versements($pdf, $object, $posy, $outputlangs); - } - - // Pied de page - $this->_pagefoot($pdf,$object,$outputlangs); - if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPages(); - - $pdf->Close(); - - $pdf->Output($file,'F'); - - // Add pdfgeneration hook - if (! is_object($hookmanager)) - { - include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; - $hookmanager=new HookManager($this->db); - } - $hookmanager->initHooks(array('pdfgeneration')); - $parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs); - global $action; - $reshook=$hookmanager->executeHooks('afterPDFCreation',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - - if (! empty($conf->global->MAIN_UMASK)) - @chmod($file, octdec($conf->global->MAIN_UMASK)); - - return 1; // Pas d'erreur - } - else - { - $this->error=$langs->trans("ErrorCanNotCreateDir",$dir); - return 0; - } - } - else - { - $this->error=$langs->trans("ErrorConstantNotDefined","COMMANDE_OUTPUTDIR"); - return 0; - } - $this->error=$langs->trans("ErrorUnknown"); - return 0; // Erreur par defaut - } - - /** - * Show payments table - * - * @param PDF $pdf Object PDF - * @param Object $object Object order - * @param int $posy Position y in PDF - * @param Translate $outputlangs Object langs for output - * @return int <0 if KO, >0 if OK - */ - function _tableau_versements(&$pdf, $object, $posy, $outputlangs) - { - } - /** - * Show miscellaneous information (payment mode, payment term, ...) - * - * @param PDF $pdf Object PDF - * @param Object $object Object to show - * @param int $posy Y - * @param Translate $outputlangs Langs object - * @return void - */ - function _tableau_info(&$pdf, $object, $posy, $outputlangs) - { - global $conf; - $default_font_size = pdf_getPDFFontSize($outputlangs); - - $pdf->SetFont('','', $default_font_size - 1); - - // If France, show VAT mention if not applicable - if ($this->emetteur->country_code == 'FR' && $this->franchise == 1) - { - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("VATIsNotUsedForInvoice"), 0, 'L', 0); - - $posy=$pdf->GetY()+4; - } - - $posxval=52; - - // Show payments conditions - if ($object->cond_reglement_code || $object->cond_reglement) - { - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->SetXY($this->marge_gauche, $posy); - $titre = $outputlangs->transnoentities("PaymentConditions").':'; - $pdf->MultiCell(80, 4, $titre, 0, 'L'); - - $pdf->SetFont('','', $default_font_size - 2); - $pdf->SetXY($posxval, $posy); - $lib_condition_paiement=$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code)!=('PaymentCondition'.$object->cond_reglement_code)?$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code):$outputlangs->convToOutputCharset($object->cond_reglement_doc); - $lib_condition_paiement=str_replace('\n',"\n",$lib_condition_paiement); - $pdf->MultiCell(80, 4, $lib_condition_paiement,0,'L'); - - $posy=$pdf->GetY()+3; - } - - // Check a payment mode is defined - /* Not used with orders - if (empty($object->mode_reglement_code) - && ! $conf->global->FACTURE_CHQ_NUMBER - && ! $conf->global->FACTURE_RIB_NUMBER) - { - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetTextColor(200,0,0); - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->MultiCell(80, 3, $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0); - $pdf->SetTextColor(0,0,0); - - $posy=$pdf->GetY()+1; - } - */ - - // Show payment mode - if ($object->mode_reglement_code - && $object->mode_reglement_code != 'CHQ' - && $object->mode_reglement_code != 'VIR') - { - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->SetXY($this->marge_gauche, $posy); - $titre = $outputlangs->transnoentities("PaymentMode").':'; - $pdf->MultiCell(80, 5, $titre, 0, 'L'); - - $pdf->SetFont('','', $default_font_size - 2); - $pdf->SetXY($posxval, $posy); - $lib_mode_reg=$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code)!=('PaymentType'.$object->mode_reglement_code)?$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code):$outputlangs->convToOutputCharset($object->mode_reglement); - $pdf->MultiCell(80, 5, $lib_mode_reg,0,'L'); - - $posy=$pdf->GetY()+2; - } - - // Show payment mode CHQ - if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ') - { - // Si mode reglement non force ou si force a CHQ - if (! empty($conf->global->FACTURE_CHQ_NUMBER)) - { - if ($conf->global->FACTURE_CHQ_NUMBER > 0) - { - $account = new Account($this->db); - $account->fetch($conf->global->FACTURE_CHQ_NUMBER); - - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetFont('','B', $default_font_size - 3); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$account->proprio),0,'L',0); - $posy=$pdf->GetY()+1; - - if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS)) - { - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetFont('','', $default_font_size - 3); - $pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($account->owner_address), 0, 'L', 0); - $posy=$pdf->GetY()+2; - } - } - if ($conf->global->FACTURE_CHQ_NUMBER == -1) - { - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetFont('','B', $default_font_size - 3); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$this->emetteur->name),0,'L',0); - $posy=$pdf->GetY()+1; - - if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS)) - { - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetFont('','', $default_font_size - 3); - $pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($this->emetteur->getFullAddress()), 0, 'L', 0); - $posy=$pdf->GetY()+2; - } - } - } - } - - // If payment mode not forced or forced to VIR, show payment with BAN - if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') - { - if (! empty($conf->global->FACTURE_RIB_NUMBER)) - { - $account = new Account($this->db); - $account->fetch($conf->global->FACTURE_RIB_NUMBER); - - $curx=$this->marge_gauche; - $cury=$posy; - - $posy=pdf_bank($pdf,$outputlangs,$curx,$cury,$account,0,$default_font_size); - - $posy+=2; - } - } - - return $posy; - } - - - /** - * Show total to pay - * - * @param PDF $pdf Object PDF - * @param Facture $object Object invoice - * @param int $deja_regle Montant deja regle - * @param int $posy Position depart - * @param Translate $outputlangs Objet langs - * @return int Position pour suite - */ - function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) - { - global $conf,$mysoc; - - $default_font_size = pdf_getPDFFontSize($outputlangs); - - $tab2_top = $posy; - $tab2_hl = 4; - $pdf->SetFont('','', $default_font_size - 1); - - // Tableau total - $col1x = 120; $col2x = 170; - if ($this->page_largeur < 210) // To work with US executive format - { - $col2x-=20; - } - $largcol2 = ($this->page_largeur - $this->marge_droite - $col2x); - - $useborder=0; - $index = 0; - - // Total HT - $pdf->SetFillColor(255,255,255); - $pdf->SetXY($col1x, $tab2_top + 0); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1); - - $pdf->SetXY($col2x, $tab2_top + 0); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ht + (! empty($object->remise)?$object->remise:0), 0, $outputlangs), 0, 'R', 1); - - // Show VAT by rates and total - $pdf->SetFillColor(248,248,248); - - $this->atleastoneratenotnull=0; - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) - { - $tvaisnull=((! empty($this->tva) && count($this->tva) == 1 && isset($this->tva['0.000']) && is_float($this->tva['0.000'])) ? true : false); - if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_ISNULL) && $tvaisnull) - { - // Nothing to do - } - else - { - //Local tax 1 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') - //{ - foreach( $this->localtax1 as $localtax_type => $localtax_rate ) - { - if (in_array((string) $localtax_type, array('1','3','5','7'))) continue; - foreach( $localtax_rate as $tvakey => $tvaval ) - { - if ($tvakey!=0) // On affiche pas taux 0 - { - //$this->atleastoneratenotnull++; - - $index++; - $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); - - $tvacompl=''; - if (preg_match('/\*/',$tvakey)) - { - $tvakey=str_replace('*','',$tvakey); - $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")"; - } - $totalvat = $outputlangs->transcountrynoentities("TotalLT1",$mysoc->country_code).' '; - $totalvat.=vatrate(abs($tvakey),1).$tvacompl; - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1); - - $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1); - } - } - } - //} - //Local tax 2 before VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') - //{ - foreach( $this->localtax2 as $localtax_type => $localtax_rate ) - { - if (in_array((string) $localtax_type, array('1','3','5','7'))) continue; - foreach( $localtax_rate as $tvakey => $tvaval ) - { - if ($tvakey!=0) // On affiche pas taux 0 - { - //$this->atleastoneratenotnull++; - - - - $index++; - $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); - - $tvacompl=''; - if (preg_match('/\*/',$tvakey)) - { - $tvakey=str_replace('*','',$tvakey); - $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")"; - } - $totalvat = $outputlangs->transcountrynoentities("TotalLT2",$mysoc->country_code).' '; - $totalvat.=vatrate(abs($tvakey),1).$tvacompl; - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1); - - $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1); - - } - } - } - //} - // VAT - foreach($this->tva as $tvakey => $tvaval) - { - if ($tvakey > 0) // On affiche pas taux 0 - { - $this->atleastoneratenotnull++; - - $index++; - $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); - - $tvacompl=''; - if (preg_match('/\*/',$tvakey)) - { - $tvakey=str_replace('*','',$tvakey); - $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")"; - } - $totalvat =$outputlangs->transnoentities("TotalVAT").' '; - $totalvat.=vatrate($tvakey,1).$tvacompl; - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1); - - $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1); - } - } - - //Local tax 1 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') - //{ - foreach( $this->localtax1 as $localtax_type => $localtax_rate ) - { - if (in_array((string) $localtax_type, array('2','4','6'))) continue; - - foreach( $localtax_rate as $tvakey => $tvaval ) - { - if ($tvakey != 0) // On affiche pas taux 0 - { - //$this->atleastoneratenotnull++; - - $index++; - $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); - - $tvacompl=''; - if (preg_match('/\*/',$tvakey)) - { - $tvakey=str_replace('*','',$tvakey); - $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")"; - } - $totalvat = $outputlangs->transcountrynoentities("TotalLT1",$mysoc->country_code).' '; - - $totalvat.=vatrate(abs($tvakey),1).$tvacompl; - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1); - $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1); - } - } - } - //} - //Local tax 2 after VAT - //if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') - //{ - foreach( $this->localtax2 as $localtax_type => $localtax_rate ) - { - if (in_array((string) $localtax_type, array('2','4','6'))) continue; - - foreach( $localtax_rate as $tvakey => $tvaval ) - { - if ($tvakey != 0) // On affiche pas taux 0 - { - //$this->atleastoneratenotnull++; - - $index++; - $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); - - $tvacompl=''; - if (preg_match('/\*/',$tvakey)) - { - $tvakey=str_replace('*','',$tvakey); - $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")"; - } - $totalvat = $outputlangs->transcountrynoentities("TotalLT2",$mysoc->country_code).' '; - - $totalvat.=vatrate(abs($tvakey),1).$tvacompl; - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1); - - $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1); - } - } - } - //} - - // Total TTC - $index++; - $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); - $pdf->SetTextColor(0,0,60); - $pdf->SetFillColor(224,224,224); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1); - - $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ttc, 0, $outputlangs), $useborder, 'R', 1); - } - } - - $pdf->SetTextColor(0,0,0); - - $creditnoteamount=0; - $depositsamount=0; - //$creditnoteamount=$object->getSumCreditNotesUsed(); - //$depositsamount=$object->getSumDepositsUsed(); - //print "x".$creditnoteamount."-".$depositsamount;exit; - $resteapayer = price2num($object->total_ttc - $deja_regle - $creditnoteamount - $depositsamount, 'MT'); - if (! empty($object->paye)) $resteapayer=0; - - if ($deja_regle > 0) - { - // Already paid + Deposits - $index++; - - $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("AlreadyPaid"), 0, 'L', 0); - $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($deja_regle, 0, $outputlangs), 0, 'R', 0); - - $index++; - $pdf->SetTextColor(0,0,60); - $pdf->SetFillColor(224,224,224); - $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RemainderToPay"), $useborder, 'L', 1); - - $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($resteapayer, 0, $outputlangs), $useborder, 'R', 1); - - $pdf->SetFont('','', $default_font_size - 1); - $pdf->SetTextColor(0,0,0); - } - - $index++; - return ($tab2_top + ($tab2_hl * $index)); - } - - /** - * Show table for lines - * - * @param PDF $pdf Object PDF - * @param string $tab_top Top position of table - * @param string $tab_height Height of table (rectangle) - * @param int $nexY Y (not used) - * @param Translate $outputlangs Langs object - * @param int $hidetop 1=Hide top bar of array and title, 0=Hide nothing, -1=Hide only title - * @param int $hidebottom Hide bottom bar of array - * @return void - */ - function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop=0, $hidebottom=0) - { - global $conf; - - // Force to disable hidetop and hidebottom - $hidebottom=0; - if ($hidetop) $hidetop=-1; - - $default_font_size = pdf_getPDFFontSize($outputlangs); - - // Amount in (at tab_top - 1) - $pdf->SetTextColor(0,0,0); - $pdf->SetFont('','', $default_font_size - 2); - - if (empty($hidetop)) - { - $titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentitiesnoconv("Currency".$conf->currency)); - $pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 3), $tab_top-4); - $pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre); - - //$conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR='230,230,230'; - if (! empty($conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR)) $pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_droite-$this->marge_gauche, 5, 'F', null, explode(',',$conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR)); - } - - $pdf->SetDrawColor(128,128,128); - $pdf->SetFont('','', $default_font_size - 1); - - // Output Rect - $this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom); // Rect prend une longueur en 3eme param et 4eme param - - if (empty($hidetop)) - { - $pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5); // line prend une position y en 2eme param et 4eme param - - $pdf->SetXY($this->posxdesc-1, $tab_top+1); - $pdf->MultiCell(108,2, $outputlangs->transnoentities("Designation"),'','L'); - } - - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) - { - $pdf->line($this->posxtva-1, $tab_top, $this->posxtva-1, $tab_top + $tab_height); - if (empty($hidetop)) - { - $pdf->SetXY($this->posxtva-3, $tab_top+1); - $pdf->MultiCell($this->posxup-$this->posxtva+3,2, $outputlangs->transnoentities("VAT"),'','C'); - } - } - - $pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $tab_top + $tab_height); - if (empty($hidetop)) - { - $pdf->SetXY($this->posxup-1, $tab_top+1); - $pdf->MultiCell($this->posxqty-$this->posxup-1,2, $outputlangs->transnoentities("PriceUHT"),'','C'); - } - - $pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height); - if (empty($hidetop)) - { - $pdf->SetXY($this->posxqty-1, $tab_top+1); - $pdf->MultiCell($this->posxdiscount-$this->posxqty-1,2, $outputlangs->transnoentities("Qty"),'','C'); - } - - $pdf->line($this->posxdiscount-1, $tab_top, $this->posxdiscount-1, $tab_top + $tab_height); - if (empty($hidetop)) - { - if ($this->atleastonediscount) - { - $pdf->SetXY($this->posxdiscount-1, $tab_top+1); - $pdf->MultiCell($this->postotalht-$this->posxdiscount+1,2, $outputlangs->transnoentities("ReductionShort"),'','C'); - } - } - - if ($this->atleastonediscount) - { - $pdf->line($this->postotalht, $tab_top, $this->postotalht, $tab_top + $tab_height); - } - if (empty($hidetop)) - { - $pdf->SetXY($this->postotalht-1, $tab_top+1); - $pdf->MultiCell(30,2, $outputlangs->transnoentities("TotalHT"),'','C'); - } - } /** * Show top header of page. * - * @param PDF $pdf Object PDF + * @param TCPDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -1063,184 +71,7 @@ class pdf_proforma extends ModelePDFCommandes { global $conf,$langs,$hookmanager; - $outputlangs->load("main"); - $outputlangs->load("bills"); - $outputlangs->load("propal"); - $outputlangs->load("companies"); - $outputlangs->load("orders"); - $default_font_size = pdf_getPDFFontSize($outputlangs); - - pdf_pagehead($pdf,$outputlangs,$this->page_hauteur); - - // Show Draft Watermark - if($object->statut==0 && (! empty($conf->global->COMMANDE_DRAFT_WATERMARK)) ) - { - pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->COMMANDE_DRAFT_WATERMARK); - } - - $pdf->SetTextColor(0,0,60); - $pdf->SetFont('','B', $default_font_size + 3); - - $posy=$this->marge_haute; - $posx=$this->page_largeur-$this->marge_droite-100; - - $pdf->SetXY($this->marge_gauche,$posy); - - // Logo - $logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo; - if ($this->emetteur->logo) - { - if (is_readable($logo)) - { - $height=pdf_getHeightForLogo($logo); - $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height); // width=0 (auto) - } - else - { - $pdf->SetTextColor(200,0,0); - $pdf->SetFont('','B', $default_font_size -2); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L'); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L'); - } - } - else - { - $text=$this->emetteur->name; - $pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L'); - } - - $pdf->SetFont('','B', $default_font_size + 3); - $pdf->SetXY($posx,$posy); - $pdf->SetTextColor(0,0,60); - $title=$outputlangs->transnoentities("InvoiceProForma"); - $pdf->MultiCell(100, 3, $title, '', 'R'); - - $pdf->SetFont('','B',$default_font_size); - - $posy+=5; - $pdf->SetXY($posx,$posy); - $pdf->SetTextColor(0,0,60); - $pdf->MultiCell(100, 4, $outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref), '', 'R'); - - $posy+=1; - $pdf->SetFont('','', $default_font_size - 1); - - if ($object->ref_client) - { - $posy+=5; - $pdf->SetXY($posx,$posy); - $pdf->SetTextColor(0,0,60); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefCustomer")." : " . $outputlangs->convToOutputCharset($object->ref_client), '', 'R'); - } - - $posy+=4; - $pdf->SetXY($posx,$posy); - $pdf->SetTextColor(0,0,60); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("Date")." : " . dol_print_date($object->date,"%d %b %Y",false,$outputlangs,true), '', 'R'); - - $posy+=2; - - // Show list of linked objects - $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size); - - if ($showaddress) - { - // Sender properties - $carac_emetteur = pdf_build_address($outputlangs, $this->emetteur, $object->client); - - // Show sender - $posy=42; - $posx=$this->marge_gauche; - if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80; - $hautcadre=40; - - // Show sender frame - $pdf->SetTextColor(0,0,0); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->SetXY($posx,$posy-5); - $pdf->MultiCell(66,5, $outputlangs->transnoentities("BillFrom").":", 0, 'L'); - $pdf->SetXY($posx,$posy); - $pdf->SetFillColor(230,230,230); - $pdf->MultiCell(82, $hautcadre, "", 0, 'R', 1); - $pdf->SetTextColor(0,0,60); - - // Show sender name - $pdf->SetXY($posx+2,$posy+3); - $pdf->SetFont('','B', $default_font_size); - $pdf->MultiCell(80, 4, $outputlangs->convToOutputCharset($this->emetteur->name), 0, 'L'); - $posy=$pdf->getY(); - - // Show sender information - $pdf->SetXY($posx+2,$posy); - $pdf->SetFont('','', $default_font_size - 1); - $pdf->MultiCell(80, 4, $carac_emetteur, 0, 'L'); - - - - // If CUSTOMER contact defined on order, we use it - $usecontact=false; - $arrayidcontact=$object->getIdContact('external','CUSTOMER'); - if (count($arrayidcontact) > 0) - { - $usecontact=true; - $result=$object->fetch_contact($arrayidcontact[0]); - } - - //Recipient name - // On peut utiliser le nom de la societe du contact - if ($usecontact && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) { - $thirdparty = $object->contact; - } else { - $thirdparty = $object->client; - } - - $carac_client_name= pdfBuildThirdpartyName($thirdparty, $outputlangs); - - $carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->client,($usecontact?$object->contact:''),$usecontact,'target'); - - // Show recipient - $widthrecbox=100; - if ($this->page_largeur < 210) $widthrecbox=84; // To work with US executive format - $posy=42; - $posx=$this->page_largeur-$this->marge_droite-$widthrecbox; - if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche; - - // Show recipient frame - $pdf->SetTextColor(0,0,0); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->SetXY($posx+2,$posy-5); - $pdf->MultiCell($widthrecbox, 5, $outputlangs->transnoentities("BillTo").":",0,'L'); - $pdf->Rect($posx, $posy, $widthrecbox, $hautcadre); - - // Show recipient name - $pdf->SetXY($posx+2,$posy+3); - $pdf->SetFont('','B', $default_font_size); - $pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L'); - - $posy = $pdf->getY(); - - // Show recipient information - $pdf->SetFont('','', $default_font_size - 1); - $pdf->SetXY($posx+2,$posy); - $pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L'); - } - - $pdf->SetTextColor(0,0,0); - } - - /** - * Show footer of page. Need this->emetteur object - * - * @param PDF $pdf PDF - * @param Object $object Object to show - * @param Translate $outputlangs Object lang for output - * @param int $hidefreetext 1=Hide free text - * @return int Return height of bottom margin including footer text - */ - function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0) - { - $showdetails=0; - return pdf_pagefoot($pdf,$outputlangs,'COMMANDE_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext); + parent::_pagehead($pdf, $object, $showaddress, $outputlangs, "InvoiceProForma"); } } From 9d7a77f2e5cef3c22bd314750691ecaef7194ed9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 18 Sep 2015 12:03:35 +0200 Subject: [PATCH 114/205] Doc comment --- htdocs/core/class/doleditor.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index 05686e5abb7..60d24558d86 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -52,7 +52,7 @@ class DolEditor * @param string $content Content of WYSIWIG field * @param int $width Width in pixel of edit area (auto by default) * @param int $height Height in pixel of edit area (200px by default) - * @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes[_encoded]', 'dolibarr_details[_encoded]', 'dolibarr_mailings[_encoded]', ') + * @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes[_encoded]', 'dolibarr_details[_encoded]'=the less featured, 'dolibarr_mailings[_encoded]', ') * @param string $toolbarlocation Where bar is stored : * 'In' each window has its own toolbar * 'Out:name' share toolbar into the div called 'name' From a4ab5f55529ce0e4e586044b22a1ece31f0e45d7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 18 Sep 2015 12:10:47 +0200 Subject: [PATCH 115/205] Restore manual install of ckeditor. It seems upgrade with phpcomposer make some plugins not working. --- htdocs/admin/commande.php | 11 +- htdocs/core/lib/pdf.lib.php | 75 +- htdocs/includes/ckeditor/ckeditor/README.md | 81 +- .../ckeditor/ckeditor/_source/CHANGES.md | 442 +++ .../ckeditor/ckeditor/_source/LICENSE.md | 1274 +++++++ .../ckeditor/ckeditor/_source/README.md | 39 + .../ckeditor/ckeditor/_source/build-config.js | 165 + .../ckeditor/ckeditor/_source/ckeditor.js | 42 + .../ckeditor/ckeditor/_source/config.js | 17 + .../ckeditor/ckeditor/_source/contents.css | 123 + .../ckeditor/_source/core/_bootstrap.js | 74 + .../ckeditor/_source/core/ckeditor.js | 204 + .../ckeditor/_source/core/ckeditor_base.js | 315 ++ .../ckeditor/_source/core/ckeditor_basic.js | 94 + .../ckeditor/ckeditor/_source/core/command.js | 271 ++ .../_source/core/commanddefinition.js | 139 + .../ckeditor/ckeditor/_source/core/config.js | 383 ++ .../ckeditor/_source/core/creators/inline.js | 153 + .../_source/core/creators/themedui.js | 457 +++ .../ckeditor/_source/core/dataprocessor.js | 70 + .../ckeditor/ckeditor/_source/core/dom.js | 13 + .../ckeditor/_source/core/dom/comment.js | 53 + .../ckeditor/_source/core/dom/document.js | 316 ++ .../_source/core/dom/documentfragment.js | 45 + .../ckeditor/_source/core/dom/domobject.js | 262 ++ .../ckeditor/_source/core/dom/element.js | 2007 ++++++++++ .../ckeditor/_source/core/dom/elementpath.js | 251 ++ .../ckeditor/_source/core/dom/event.js | 208 ++ .../ckeditor/_source/core/dom/iterator.js | 500 +++ .../ckeditor/_source/core/dom/node.js | 748 ++++ .../ckeditor/_source/core/dom/nodelist.js | 43 + .../ckeditor/_source/core/dom/range.js | 2391 ++++++++++++ .../ckeditor/_source/core/dom/rangelist.js | 201 + .../ckeditor/_source/core/dom/text.js | 139 + .../ckeditor/_source/core/dom/walker.js | 616 ++++ .../ckeditor/_source/core/dom/window.js | 95 + .../ckeditor/ckeditor/_source/core/dtd.js | 328 ++ .../ckeditor/_source/core/editable.js | 1968 ++++++++++ .../ckeditor/ckeditor/_source/core/editor.js | 1775 +++++++++ .../ckeditor/_source/core/editor_basic.js | 36 + .../ckeditor/ckeditor/_source/core/env.js | 359 ++ .../ckeditor/ckeditor/_source/core/event.js | 387 ++ .../ckeditor/_source/core/eventInfo.js | 115 + .../ckeditor/ckeditor/_source/core/filter.js | 2072 +++++++++++ .../ckeditor/_source/core/focusmanager.js | 271 ++ .../_source/core/htmldataprocessor.js | 989 +++++ .../ckeditor/_source/core/htmlparser.js | 207 ++ .../_source/core/htmlparser/basicwriter.js | 152 + .../ckeditor/_source/core/htmlparser/cdata.js | 48 + .../_source/core/htmlparser/comment.js | 80 + .../_source/core/htmlparser/element.js | 519 +++ .../_source/core/htmlparser/filter.js | 407 ++ .../_source/core/htmlparser/fragment.js | 631 ++++ .../ckeditor/_source/core/htmlparser/node.js | 150 + .../ckeditor/_source/core/htmlparser/text.js | 70 + .../ckeditor/_source/core/keystrokehandler.js | 153 + .../ckeditor/ckeditor/_source/core/lang.js | 100 + .../ckeditor/ckeditor/_source/core/loader.js | 247 ++ .../ckeditor/_source/core/plugindefinition.js | 96 + .../ckeditor/ckeditor/_source/core/plugins.js | 119 + .../ckeditor/_source/core/resourcemanager.js | 227 ++ .../ckeditor/_source/core/scriptloader.js | 202 + .../ckeditor/_source/core/selection.js | 2224 +++++++++++ .../ckeditor/ckeditor/_source/core/skin.js | 335 ++ .../ckeditor/ckeditor/_source/core/style.js | 1714 +++++++++ .../ckeditor/_source/core/template.js | 69 + .../ckeditor/ckeditor/_source/core/tools.js | 1123 ++++++ .../ckeditor/ckeditor/_source/core/ui.js | 168 + .../{ => _source}/lang/_translationstatus.txt | 0 .../ckeditor/ckeditor/_source/lang/af.js | 98 + .../ckeditor/ckeditor/_source/lang/ar.js | 98 + .../ckeditor/ckeditor/_source/lang/bg.js | 98 + .../ckeditor/ckeditor/_source/lang/bn.js | 98 + .../ckeditor/ckeditor/_source/lang/bs.js | 98 + .../ckeditor/ckeditor/_source/lang/ca.js | 98 + .../ckeditor/ckeditor/_source/lang/cs.js | 98 + .../ckeditor/ckeditor/_source/lang/cy.js | 98 + .../ckeditor/ckeditor/_source/lang/da.js | 98 + .../ckeditor/ckeditor/_source/lang/de.js | 98 + .../ckeditor/ckeditor/_source/lang/el.js | 98 + .../ckeditor/ckeditor/_source/lang/en-au.js | 98 + .../ckeditor/ckeditor/_source/lang/en-ca.js | 98 + .../ckeditor/ckeditor/_source/lang/en-gb.js | 98 + .../ckeditor/ckeditor/_source/lang/en.js | 98 + .../ckeditor/ckeditor/_source/lang/eo.js | 98 + .../ckeditor/ckeditor/_source/lang/es.js | 98 + .../ckeditor/ckeditor/_source/lang/et.js | 98 + .../ckeditor/ckeditor/_source/lang/eu.js | 98 + .../ckeditor/ckeditor/_source/lang/fa.js | 98 + .../ckeditor/ckeditor/_source/lang/fi.js | 98 + .../ckeditor/ckeditor/_source/lang/fo.js | 98 + .../ckeditor/ckeditor/_source/lang/fr-ca.js | 98 + .../ckeditor/ckeditor/_source/lang/fr.js | 98 + .../ckeditor/ckeditor/_source/lang/gl.js | 98 + .../ckeditor/ckeditor/_source/lang/gu.js | 98 + .../ckeditor/ckeditor/_source/lang/he.js | 98 + .../ckeditor/ckeditor/_source/lang/hi.js | 98 + .../ckeditor/ckeditor/_source/lang/hr.js | 98 + .../ckeditor/ckeditor/_source/lang/hu.js | 98 + .../ckeditor/ckeditor/_source/lang/id.js | 97 + .../ckeditor/ckeditor/_source/lang/is.js | 98 + .../ckeditor/ckeditor/_source/lang/it.js | 98 + .../ckeditor/ckeditor/_source/lang/ja.js | 98 + .../ckeditor/ckeditor/_source/lang/ka.js | 98 + .../ckeditor/ckeditor/_source/lang/km.js | 98 + .../ckeditor/ckeditor/_source/lang/ko.js | 98 + .../ckeditor/ckeditor/_source/lang/ku.js | 97 + .../ckeditor/ckeditor/_source/lang/lt.js | 98 + .../ckeditor/ckeditor/_source/lang/lv.js | 98 + .../ckeditor/ckeditor/_source/lang/mk.js | 97 + .../ckeditor/ckeditor/_source/lang/mn.js | 98 + .../ckeditor/ckeditor/_source/lang/ms.js | 98 + .../ckeditor/ckeditor/_source/lang/nb.js | 98 + .../ckeditor/ckeditor/_source/lang/nl.js | 98 + .../ckeditor/ckeditor/_source/lang/no.js | 98 + .../ckeditor/ckeditor/_source/lang/pl.js | 98 + .../ckeditor/ckeditor/_source/lang/pt-br.js | 97 + .../ckeditor/ckeditor/_source/lang/pt.js | 98 + .../ckeditor/ckeditor/_source/lang/ro.js | 98 + .../ckeditor/ckeditor/_source/lang/ru.js | 98 + .../ckeditor/ckeditor/_source/lang/si.js | 97 + .../ckeditor/ckeditor/_source/lang/sk.js | 98 + .../ckeditor/ckeditor/_source/lang/sl.js | 98 + .../ckeditor/ckeditor/_source/lang/sq.js | 97 + .../ckeditor/ckeditor/_source/lang/sr-latn.js | 98 + .../ckeditor/ckeditor/_source/lang/sr.js | 98 + .../ckeditor/ckeditor/_source/lang/sv.js | 97 + .../ckeditor/ckeditor/_source/lang/th.js | 98 + .../ckeditor/ckeditor/_source/lang/tr.js | 97 + .../ckeditor/ckeditor/_source/lang/ug.js | 97 + .../ckeditor/ckeditor/_source/lang/uk.js | 98 + .../ckeditor/ckeditor/_source/lang/vi.js | 98 + .../ckeditor/ckeditor/_source/lang/zh-cn.js | 98 + .../ckeditor/ckeditor/_source/lang/zh.js | 98 + .../plugins/a11yhelp/dialogs/a11yhelp.js | 217 ++ .../dialogs/lang/_translationstatus.txt | 25 + .../plugins/a11yhelp/dialogs/lang/ar.js | 147 + .../plugins/a11yhelp/dialogs/lang/bg.js | 147 + .../plugins/a11yhelp/dialogs/lang/ca.js | 147 + .../plugins/a11yhelp/dialogs/lang/cs.js | 147 + .../plugins/a11yhelp/dialogs/lang/cy.js | 147 + .../plugins/a11yhelp/dialogs/lang/da.js | 147 + .../plugins/a11yhelp/dialogs/lang/de.js | 147 + .../plugins/a11yhelp/dialogs/lang/el.js | 147 + .../plugins/a11yhelp/dialogs/lang/en-gb.js | 147 + .../plugins/a11yhelp/dialogs/lang/en.js | 168 + .../plugins/a11yhelp/dialogs/lang/eo.js | 147 + .../plugins/a11yhelp/dialogs/lang/es.js | 147 + .../plugins/a11yhelp/dialogs/lang/et.js | 147 + .../plugins/a11yhelp/dialogs/lang/fa.js | 147 + .../plugins/a11yhelp/dialogs/lang/fi.js | 147 + .../plugins/a11yhelp/dialogs/lang/fr-ca.js | 147 + .../plugins/a11yhelp/dialogs/lang/fr.js | 147 + .../plugins/a11yhelp/dialogs/lang/gl.js | 147 + .../plugins/a11yhelp/dialogs/lang/gu.js | 147 + .../plugins/a11yhelp/dialogs/lang/he.js | 147 + .../plugins/a11yhelp/dialogs/lang/hi.js | 147 + .../plugins/a11yhelp/dialogs/lang/hr.js | 147 + .../plugins/a11yhelp/dialogs/lang/hu.js | 147 + .../plugins/a11yhelp/dialogs/lang/id.js | 147 + .../plugins/a11yhelp/dialogs/lang/it.js | 147 + .../plugins/a11yhelp/dialogs/lang/ja.js | 147 + .../plugins/a11yhelp/dialogs/lang/km.js | 147 + .../plugins/a11yhelp/dialogs/lang/ko.js | 147 + .../plugins/a11yhelp/dialogs/lang/ku.js | 147 + .../plugins/a11yhelp/dialogs/lang/lt.js | 147 + .../plugins/a11yhelp/dialogs/lang/lv.js | 147 + .../plugins/a11yhelp/dialogs/lang/mk.js | 147 + .../plugins/a11yhelp/dialogs/lang/mn.js | 147 + .../plugins/a11yhelp/dialogs/lang/nb.js | 147 + .../plugins/a11yhelp/dialogs/lang/nl.js | 147 + .../plugins/a11yhelp/dialogs/lang/no.js | 147 + .../plugins/a11yhelp/dialogs/lang/pl.js | 147 + .../plugins/a11yhelp/dialogs/lang/pt-br.js | 147 + .../plugins/a11yhelp/dialogs/lang/pt.js | 147 + .../plugins/a11yhelp/dialogs/lang/ro.js | 147 + .../plugins/a11yhelp/dialogs/lang/ru.js | 147 + .../plugins/a11yhelp/dialogs/lang/si.js | 147 + .../plugins/a11yhelp/dialogs/lang/sk.js | 147 + .../plugins/a11yhelp/dialogs/lang/sl.js | 147 + .../plugins/a11yhelp/dialogs/lang/sq.js | 147 + .../plugins/a11yhelp/dialogs/lang/sr-latn.js | 147 + .../plugins/a11yhelp/dialogs/lang/sr.js | 147 + .../plugins/a11yhelp/dialogs/lang/sv.js | 147 + .../plugins/a11yhelp/dialogs/lang/th.js | 147 + .../plugins/a11yhelp/dialogs/lang/tr.js | 147 + .../plugins/a11yhelp/dialogs/lang/ug.js | 147 + .../plugins/a11yhelp/dialogs/lang/uk.js | 147 + .../plugins/a11yhelp/dialogs/lang/vi.js | 147 + .../plugins/a11yhelp/dialogs/lang/zh-cn.js | 147 + .../plugins/a11yhelp/dialogs/lang/zh.js | 147 + .../_source/plugins/a11yhelp/plugin.js | 48 + .../_source/plugins/about/dialogs/about.js | 75 + .../about/dialogs/hidpi/logo_ckeditor.png | Bin 0 -> 13339 bytes .../plugins/about/dialogs/logo_ckeditor.png | Bin 0 -> 6757 bytes .../_source/plugins/about/icons/about.png | Bin 0 -> 843 bytes .../plugins/about/icons/hidpi/about.png | Bin 0 -> 1992 bytes .../ckeditor/_source/plugins/about/lang/af.js | 12 + .../ckeditor/_source/plugins/about/lang/ar.js | 12 + .../ckeditor/_source/plugins/about/lang/bg.js | 12 + .../ckeditor/_source/plugins/about/lang/bn.js | 12 + .../ckeditor/_source/plugins/about/lang/bs.js | 12 + .../ckeditor/_source/plugins/about/lang/ca.js | 12 + .../ckeditor/_source/plugins/about/lang/cs.js | 12 + .../ckeditor/_source/plugins/about/lang/cy.js | 12 + .../ckeditor/_source/plugins/about/lang/da.js | 12 + .../ckeditor/_source/plugins/about/lang/de.js | 12 + .../ckeditor/_source/plugins/about/lang/el.js | 12 + .../_source/plugins/about/lang/en-au.js | 12 + .../_source/plugins/about/lang/en-ca.js | 12 + .../_source/plugins/about/lang/en-gb.js | 12 + .../ckeditor/_source/plugins/about/lang/en.js | 12 + .../ckeditor/_source/plugins/about/lang/eo.js | 12 + .../ckeditor/_source/plugins/about/lang/es.js | 12 + .../ckeditor/_source/plugins/about/lang/et.js | 12 + .../ckeditor/_source/plugins/about/lang/eu.js | 12 + .../ckeditor/_source/plugins/about/lang/fa.js | 12 + .../ckeditor/_source/plugins/about/lang/fi.js | 12 + .../ckeditor/_source/plugins/about/lang/fo.js | 12 + .../_source/plugins/about/lang/fr-ca.js | 12 + .../ckeditor/_source/plugins/about/lang/fr.js | 12 + .../ckeditor/_source/plugins/about/lang/gl.js | 12 + .../ckeditor/_source/plugins/about/lang/gu.js | 12 + .../ckeditor/_source/plugins/about/lang/he.js | 12 + .../ckeditor/_source/plugins/about/lang/hi.js | 12 + .../ckeditor/_source/plugins/about/lang/hr.js | 12 + .../ckeditor/_source/plugins/about/lang/hu.js | 12 + .../ckeditor/_source/plugins/about/lang/id.js | 12 + .../ckeditor/_source/plugins/about/lang/is.js | 12 + .../ckeditor/_source/plugins/about/lang/it.js | 12 + .../ckeditor/_source/plugins/about/lang/ja.js | 12 + .../ckeditor/_source/plugins/about/lang/ka.js | 12 + .../ckeditor/_source/plugins/about/lang/km.js | 12 + .../ckeditor/_source/plugins/about/lang/ko.js | 12 + .../ckeditor/_source/plugins/about/lang/ku.js | 12 + .../ckeditor/_source/plugins/about/lang/lt.js | 12 + .../ckeditor/_source/plugins/about/lang/lv.js | 12 + .../ckeditor/_source/plugins/about/lang/mk.js | 12 + .../ckeditor/_source/plugins/about/lang/mn.js | 12 + .../ckeditor/_source/plugins/about/lang/ms.js | 12 + .../ckeditor/_source/plugins/about/lang/nb.js | 12 + .../ckeditor/_source/plugins/about/lang/nl.js | 12 + .../ckeditor/_source/plugins/about/lang/no.js | 12 + .../ckeditor/_source/plugins/about/lang/pl.js | 12 + .../_source/plugins/about/lang/pt-br.js | 12 + .../ckeditor/_source/plugins/about/lang/pt.js | 12 + .../ckeditor/_source/plugins/about/lang/ro.js | 12 + .../ckeditor/_source/plugins/about/lang/ru.js | 12 + .../ckeditor/_source/plugins/about/lang/si.js | 12 + .../ckeditor/_source/plugins/about/lang/sk.js | 12 + .../ckeditor/_source/plugins/about/lang/sl.js | 12 + .../ckeditor/_source/plugins/about/lang/sq.js | 12 + .../_source/plugins/about/lang/sr-latn.js | 12 + .../ckeditor/_source/plugins/about/lang/sr.js | 12 + .../ckeditor/_source/plugins/about/lang/sv.js | 12 + .../ckeditor/_source/plugins/about/lang/th.js | 12 + .../ckeditor/_source/plugins/about/lang/tr.js | 12 + .../ckeditor/_source/plugins/about/lang/ug.js | 12 + .../ckeditor/_source/plugins/about/lang/uk.js | 12 + .../ckeditor/_source/plugins/about/lang/vi.js | 12 + .../_source/plugins/about/lang/zh-cn.js | 12 + .../ckeditor/_source/plugins/about/lang/zh.js | 12 + .../ckeditor/_source/plugins/about/plugin.js | 25 + .../plugins/basicstyles/icons/bold.png | Bin 0 -> 813 bytes .../plugins/basicstyles/icons/hidpi/bold.png | Bin 0 -> 1865 bytes .../basicstyles/icons/hidpi/italic.png | Bin 0 -> 1452 bytes .../basicstyles/icons/hidpi/strike.png | Bin 0 -> 2171 bytes .../basicstyles/icons/hidpi/subscript.png | Bin 0 -> 1965 bytes .../basicstyles/icons/hidpi/superscript.png | Bin 0 -> 2021 bytes .../basicstyles/icons/hidpi/underline.png | Bin 0 -> 1577 bytes .../plugins/basicstyles/icons/italic.png | Bin 0 -> 708 bytes .../plugins/basicstyles/icons/strike.png | Bin 0 -> 879 bytes .../plugins/basicstyles/icons/subscript.png | Bin 0 -> 806 bytes .../plugins/basicstyles/icons/superscript.png | Bin 0 -> 859 bytes .../plugins/basicstyles/icons/underline.png | Bin 0 -> 747 bytes .../_source/plugins/basicstyles/lang/af.js | 12 + .../_source/plugins/basicstyles/lang/ar.js | 12 + .../_source/plugins/basicstyles/lang/bg.js | 12 + .../_source/plugins/basicstyles/lang/bn.js | 12 + .../_source/plugins/basicstyles/lang/bs.js | 12 + .../_source/plugins/basicstyles/lang/ca.js | 12 + .../_source/plugins/basicstyles/lang/cs.js | 12 + .../_source/plugins/basicstyles/lang/cy.js | 12 + .../_source/plugins/basicstyles/lang/da.js | 12 + .../_source/plugins/basicstyles/lang/de.js | 12 + .../_source/plugins/basicstyles/lang/el.js | 12 + .../_source/plugins/basicstyles/lang/en-au.js | 12 + .../_source/plugins/basicstyles/lang/en-ca.js | 12 + .../_source/plugins/basicstyles/lang/en-gb.js | 12 + .../_source/plugins/basicstyles/lang/en.js | 12 + .../_source/plugins/basicstyles/lang/eo.js | 12 + .../_source/plugins/basicstyles/lang/es.js | 12 + .../_source/plugins/basicstyles/lang/et.js | 12 + .../_source/plugins/basicstyles/lang/eu.js | 12 + .../_source/plugins/basicstyles/lang/fa.js | 12 + .../_source/plugins/basicstyles/lang/fi.js | 12 + .../_source/plugins/basicstyles/lang/fo.js | 12 + .../_source/plugins/basicstyles/lang/fr-ca.js | 12 + .../_source/plugins/basicstyles/lang/fr.js | 12 + .../_source/plugins/basicstyles/lang/gl.js | 12 + .../_source/plugins/basicstyles/lang/gu.js | 12 + .../_source/plugins/basicstyles/lang/he.js | 12 + .../_source/plugins/basicstyles/lang/hi.js | 12 + .../_source/plugins/basicstyles/lang/hr.js | 12 + .../_source/plugins/basicstyles/lang/hu.js | 12 + .../_source/plugins/basicstyles/lang/id.js | 12 + .../_source/plugins/basicstyles/lang/is.js | 12 + .../_source/plugins/basicstyles/lang/it.js | 12 + .../_source/plugins/basicstyles/lang/ja.js | 12 + .../_source/plugins/basicstyles/lang/ka.js | 12 + .../_source/plugins/basicstyles/lang/km.js | 12 + .../_source/plugins/basicstyles/lang/ko.js | 12 + .../_source/plugins/basicstyles/lang/ku.js | 12 + .../_source/plugins/basicstyles/lang/lt.js | 12 + .../_source/plugins/basicstyles/lang/lv.js | 12 + .../_source/plugins/basicstyles/lang/mk.js | 12 + .../_source/plugins/basicstyles/lang/mn.js | 12 + .../_source/plugins/basicstyles/lang/ms.js | 12 + .../_source/plugins/basicstyles/lang/nb.js | 12 + .../_source/plugins/basicstyles/lang/nl.js | 12 + .../_source/plugins/basicstyles/lang/no.js | 12 + .../_source/plugins/basicstyles/lang/pl.js | 12 + .../_source/plugins/basicstyles/lang/pt-br.js | 12 + .../_source/plugins/basicstyles/lang/pt.js | 12 + .../_source/plugins/basicstyles/lang/ro.js | 12 + .../_source/plugins/basicstyles/lang/ru.js | 12 + .../_source/plugins/basicstyles/lang/si.js | 12 + .../_source/plugins/basicstyles/lang/sk.js | 12 + .../_source/plugins/basicstyles/lang/sl.js | 12 + .../_source/plugins/basicstyles/lang/sq.js | 12 + .../plugins/basicstyles/lang/sr-latn.js | 12 + .../_source/plugins/basicstyles/lang/sr.js | 12 + .../_source/plugins/basicstyles/lang/sv.js | 12 + .../_source/plugins/basicstyles/lang/th.js | 12 + .../_source/plugins/basicstyles/lang/tr.js | 12 + .../_source/plugins/basicstyles/lang/ug.js | 12 + .../_source/plugins/basicstyles/lang/uk.js | 12 + .../_source/plugins/basicstyles/lang/vi.js | 12 + .../_source/plugins/basicstyles/lang/zh-cn.js | 12 + .../_source/plugins/basicstyles/lang/zh.js | 12 + .../_source/plugins/basicstyles/plugin.js | 189 + .../plugins/bidi/icons/bidiltr.png | Bin .../plugins/bidi/icons/bidirtl.png | Bin .../plugins/bidi/icons/hidpi/bidiltr.png | Bin .../plugins/bidi/icons/hidpi/bidirtl.png | Bin .../ckeditor/_source/plugins/bidi/lang/af.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ar.js | 8 + .../ckeditor/_source/plugins/bidi/lang/bg.js | 8 + .../ckeditor/_source/plugins/bidi/lang/bn.js | 8 + .../ckeditor/_source/plugins/bidi/lang/bs.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ca.js | 8 + .../ckeditor/_source/plugins/bidi/lang/cs.js | 8 + .../ckeditor/_source/plugins/bidi/lang/cy.js | 8 + .../ckeditor/_source/plugins/bidi/lang/da.js | 8 + .../ckeditor/_source/plugins/bidi/lang/de.js | 8 + .../ckeditor/_source/plugins/bidi/lang/el.js | 8 + .../_source/plugins/bidi/lang/en-au.js | 8 + .../_source/plugins/bidi/lang/en-ca.js | 8 + .../_source/plugins/bidi/lang/en-gb.js | 8 + .../ckeditor/_source/plugins/bidi/lang/en.js | 8 + .../ckeditor/_source/plugins/bidi/lang/eo.js | 8 + .../ckeditor/_source/plugins/bidi/lang/es.js | 8 + .../ckeditor/_source/plugins/bidi/lang/et.js | 8 + .../ckeditor/_source/plugins/bidi/lang/eu.js | 8 + .../ckeditor/_source/plugins/bidi/lang/fa.js | 8 + .../ckeditor/_source/plugins/bidi/lang/fi.js | 8 + .../ckeditor/_source/plugins/bidi/lang/fo.js | 8 + .../_source/plugins/bidi/lang/fr-ca.js | 8 + .../ckeditor/_source/plugins/bidi/lang/fr.js | 8 + .../ckeditor/_source/plugins/bidi/lang/gl.js | 8 + .../ckeditor/_source/plugins/bidi/lang/gu.js | 8 + .../ckeditor/_source/plugins/bidi/lang/he.js | 8 + .../ckeditor/_source/plugins/bidi/lang/hi.js | 8 + .../ckeditor/_source/plugins/bidi/lang/hr.js | 8 + .../ckeditor/_source/plugins/bidi/lang/hu.js | 8 + .../ckeditor/_source/plugins/bidi/lang/id.js | 8 + .../ckeditor/_source/plugins/bidi/lang/is.js | 8 + .../ckeditor/_source/plugins/bidi/lang/it.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ja.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ka.js | 8 + .../ckeditor/_source/plugins/bidi/lang/km.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ko.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ku.js | 8 + .../ckeditor/_source/plugins/bidi/lang/lt.js | 8 + .../ckeditor/_source/plugins/bidi/lang/lv.js | 8 + .../ckeditor/_source/plugins/bidi/lang/mk.js | 8 + .../ckeditor/_source/plugins/bidi/lang/mn.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ms.js | 8 + .../ckeditor/_source/plugins/bidi/lang/nb.js | 8 + .../ckeditor/_source/plugins/bidi/lang/nl.js | 8 + .../ckeditor/_source/plugins/bidi/lang/no.js | 8 + .../ckeditor/_source/plugins/bidi/lang/pl.js | 8 + .../_source/plugins/bidi/lang/pt-br.js | 8 + .../ckeditor/_source/plugins/bidi/lang/pt.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ro.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ru.js | 8 + .../ckeditor/_source/plugins/bidi/lang/si.js | 8 + .../ckeditor/_source/plugins/bidi/lang/sk.js | 8 + .../ckeditor/_source/plugins/bidi/lang/sl.js | 8 + .../ckeditor/_source/plugins/bidi/lang/sq.js | 8 + .../_source/plugins/bidi/lang/sr-latn.js | 8 + .../ckeditor/_source/plugins/bidi/lang/sr.js | 8 + .../ckeditor/_source/plugins/bidi/lang/sv.js | 8 + .../ckeditor/_source/plugins/bidi/lang/th.js | 8 + .../ckeditor/_source/plugins/bidi/lang/tr.js | 8 + .../ckeditor/_source/plugins/bidi/lang/ug.js | 8 + .../ckeditor/_source/plugins/bidi/lang/uk.js | 8 + .../ckeditor/_source/plugins/bidi/lang/vi.js | 8 + .../_source/plugins/bidi/lang/zh-cn.js | 8 + .../ckeditor/_source/plugins/bidi/lang/zh.js | 8 + .../ckeditor/_source/plugins/bidi/plugin.js | 305 ++ .../plugins/blockquote/icons/blockquote.png | Bin 0 -> 925 bytes .../blockquote/icons/hidpi/blockquote.png | Bin 0 -> 2233 bytes .../_source/plugins/blockquote/lang/af.js | 7 + .../_source/plugins/blockquote/lang/ar.js | 7 + .../_source/plugins/blockquote/lang/bg.js | 7 + .../_source/plugins/blockquote/lang/bn.js | 7 + .../_source/plugins/blockquote/lang/bs.js | 7 + .../_source/plugins/blockquote/lang/ca.js | 7 + .../_source/plugins/blockquote/lang/cs.js | 7 + .../_source/plugins/blockquote/lang/cy.js | 7 + .../_source/plugins/blockquote/lang/da.js | 7 + .../_source/plugins/blockquote/lang/de.js | 7 + .../_source/plugins/blockquote/lang/el.js | 7 + .../_source/plugins/blockquote/lang/en-au.js | 7 + .../_source/plugins/blockquote/lang/en-ca.js | 7 + .../_source/plugins/blockquote/lang/en-gb.js | 7 + .../_source/plugins/blockquote/lang/en.js | 7 + .../_source/plugins/blockquote/lang/eo.js | 7 + .../_source/plugins/blockquote/lang/es.js | 7 + .../_source/plugins/blockquote/lang/et.js | 7 + .../_source/plugins/blockquote/lang/eu.js | 7 + .../_source/plugins/blockquote/lang/fa.js | 7 + .../_source/plugins/blockquote/lang/fi.js | 7 + .../_source/plugins/blockquote/lang/fo.js | 7 + .../_source/plugins/blockquote/lang/fr-ca.js | 7 + .../_source/plugins/blockquote/lang/fr.js | 7 + .../_source/plugins/blockquote/lang/gl.js | 7 + .../_source/plugins/blockquote/lang/gu.js | 7 + .../_source/plugins/blockquote/lang/he.js | 7 + .../_source/plugins/blockquote/lang/hi.js | 7 + .../_source/plugins/blockquote/lang/hr.js | 7 + .../_source/plugins/blockquote/lang/hu.js | 7 + .../_source/plugins/blockquote/lang/id.js | 7 + .../_source/plugins/blockquote/lang/is.js | 7 + .../_source/plugins/blockquote/lang/it.js | 7 + .../_source/plugins/blockquote/lang/ja.js | 7 + .../_source/plugins/blockquote/lang/ka.js | 7 + .../_source/plugins/blockquote/lang/km.js | 7 + .../_source/plugins/blockquote/lang/ko.js | 7 + .../_source/plugins/blockquote/lang/ku.js | 7 + .../_source/plugins/blockquote/lang/lt.js | 7 + .../_source/plugins/blockquote/lang/lv.js | 7 + .../_source/plugins/blockquote/lang/mk.js | 7 + .../_source/plugins/blockquote/lang/mn.js | 7 + .../_source/plugins/blockquote/lang/ms.js | 7 + .../_source/plugins/blockquote/lang/nb.js | 7 + .../_source/plugins/blockquote/lang/nl.js | 7 + .../_source/plugins/blockquote/lang/no.js | 7 + .../_source/plugins/blockquote/lang/pl.js | 7 + .../_source/plugins/blockquote/lang/pt-br.js | 7 + .../_source/plugins/blockquote/lang/pt.js | 7 + .../_source/plugins/blockquote/lang/ro.js | 7 + .../_source/plugins/blockquote/lang/ru.js | 7 + .../_source/plugins/blockquote/lang/si.js | 7 + .../_source/plugins/blockquote/lang/sk.js | 7 + .../_source/plugins/blockquote/lang/sl.js | 7 + .../_source/plugins/blockquote/lang/sq.js | 7 + .../plugins/blockquote/lang/sr-latn.js | 7 + .../_source/plugins/blockquote/lang/sr.js | 7 + .../_source/plugins/blockquote/lang/sv.js | 7 + .../_source/plugins/blockquote/lang/th.js | 7 + .../_source/plugins/blockquote/lang/tr.js | 7 + .../_source/plugins/blockquote/lang/ug.js | 7 + .../_source/plugins/blockquote/lang/uk.js | 7 + .../_source/plugins/blockquote/lang/vi.js | 7 + .../_source/plugins/blockquote/lang/zh-cn.js | 7 + .../_source/plugins/blockquote/lang/zh.js | 7 + .../_source/plugins/blockquote/plugin.js | 248 ++ .../_source/plugins/button/lang/ca.js | 8 + .../_source/plugins/button/lang/cs.js | 8 + .../_source/plugins/button/lang/el.js | 8 + .../_source/plugins/button/lang/en-gb.js | 8 + .../_source/plugins/button/lang/en.js | 8 + .../_source/plugins/button/lang/fa.js | 8 + .../_source/plugins/button/lang/fr.js | 8 + .../_source/plugins/button/lang/gl.js | 8 + .../_source/plugins/button/lang/hu.js | 8 + .../_source/plugins/button/lang/ja.js | 8 + .../_source/plugins/button/lang/km.js | 8 + .../_source/plugins/button/lang/nl.js | 8 + .../_source/plugins/button/lang/pl.js | 8 + .../_source/plugins/button/lang/pt-br.js | 8 + .../_source/plugins/button/lang/sl.js | 8 + .../_source/plugins/button/lang/sv.js | 8 + .../_source/plugins/button/lang/uk.js | 8 + .../_source/plugins/button/lang/zh-cn.js | 8 + .../ckeditor/_source/plugins/button/plugin.js | 379 ++ .../plugins/clipboard/dev/clipboard.html | 194 + .../plugins/clipboard/dialogs/paste.js | 228 ++ .../plugins/clipboard/icons/copy-rtl.png | Bin 0 -> 684 bytes .../_source/plugins/clipboard/icons/copy.png | Bin 0 -> 684 bytes .../plugins/clipboard/icons/cut-rtl.png | Bin 0 -> 1031 bytes .../_source/plugins/clipboard/icons/cut.png | Bin 0 -> 1031 bytes .../clipboard/icons/hidpi/copy-rtl.png | Bin 0 -> 1558 bytes .../plugins/clipboard/icons/hidpi/copy.png | Bin 0 -> 1558 bytes .../plugins/clipboard/icons/hidpi/cut-rtl.png | Bin 0 -> 2692 bytes .../plugins/clipboard/icons/hidpi/cut.png | Bin 0 -> 2692 bytes .../clipboard/icons/hidpi/paste-rtl.png | Bin 0 -> 1959 bytes .../plugins/clipboard/icons/hidpi/paste.png | Bin 0 -> 1959 bytes .../plugins/clipboard/icons/paste-rtl.png | Bin 0 -> 724 bytes .../_source/plugins/clipboard/icons/paste.png | Bin 0 -> 724 bytes .../_source/plugins/clipboard/lang/af.js | 15 + .../_source/plugins/clipboard/lang/ar.js | 15 + .../_source/plugins/clipboard/lang/bg.js | 15 + .../_source/plugins/clipboard/lang/bn.js | 15 + .../_source/plugins/clipboard/lang/bs.js | 15 + .../_source/plugins/clipboard/lang/ca.js | 15 + .../_source/plugins/clipboard/lang/cs.js | 15 + .../_source/plugins/clipboard/lang/cy.js | 15 + .../_source/plugins/clipboard/lang/da.js | 15 + .../_source/plugins/clipboard/lang/de.js | 15 + .../_source/plugins/clipboard/lang/el.js | 15 + .../_source/plugins/clipboard/lang/en-au.js | 15 + .../_source/plugins/clipboard/lang/en-ca.js | 15 + .../_source/plugins/clipboard/lang/en-gb.js | 15 + .../_source/plugins/clipboard/lang/en.js | 15 + .../_source/plugins/clipboard/lang/eo.js | 15 + .../_source/plugins/clipboard/lang/es.js | 15 + .../_source/plugins/clipboard/lang/et.js | 15 + .../_source/plugins/clipboard/lang/eu.js | 15 + .../_source/plugins/clipboard/lang/fa.js | 15 + .../_source/plugins/clipboard/lang/fi.js | 15 + .../_source/plugins/clipboard/lang/fo.js | 15 + .../_source/plugins/clipboard/lang/fr-ca.js | 15 + .../_source/plugins/clipboard/lang/fr.js | 15 + .../_source/plugins/clipboard/lang/gl.js | 15 + .../_source/plugins/clipboard/lang/gu.js | 15 + .../_source/plugins/clipboard/lang/he.js | 15 + .../_source/plugins/clipboard/lang/hi.js | 15 + .../_source/plugins/clipboard/lang/hr.js | 15 + .../_source/plugins/clipboard/lang/hu.js | 15 + .../_source/plugins/clipboard/lang/id.js | 15 + .../_source/plugins/clipboard/lang/is.js | 15 + .../_source/plugins/clipboard/lang/it.js | 15 + .../_source/plugins/clipboard/lang/ja.js | 15 + .../_source/plugins/clipboard/lang/ka.js | 15 + .../_source/plugins/clipboard/lang/km.js | 15 + .../_source/plugins/clipboard/lang/ko.js | 15 + .../_source/plugins/clipboard/lang/ku.js | 15 + .../_source/plugins/clipboard/lang/lt.js | 15 + .../_source/plugins/clipboard/lang/lv.js | 15 + .../_source/plugins/clipboard/lang/mk.js | 15 + .../_source/plugins/clipboard/lang/mn.js | 15 + .../_source/plugins/clipboard/lang/ms.js | 15 + .../_source/plugins/clipboard/lang/nb.js | 15 + .../_source/plugins/clipboard/lang/nl.js | 15 + .../_source/plugins/clipboard/lang/no.js | 15 + .../_source/plugins/clipboard/lang/pl.js | 15 + .../_source/plugins/clipboard/lang/pt-br.js | 15 + .../_source/plugins/clipboard/lang/pt.js | 15 + .../_source/plugins/clipboard/lang/ro.js | 15 + .../_source/plugins/clipboard/lang/ru.js | 15 + .../_source/plugins/clipboard/lang/si.js | 15 + .../_source/plugins/clipboard/lang/sk.js | 15 + .../_source/plugins/clipboard/lang/sl.js | 15 + .../_source/plugins/clipboard/lang/sq.js | 15 + .../_source/plugins/clipboard/lang/sr-latn.js | 15 + .../_source/plugins/clipboard/lang/sr.js | 15 + .../_source/plugins/clipboard/lang/sv.js | 15 + .../_source/plugins/clipboard/lang/th.js | 15 + .../_source/plugins/clipboard/lang/tr.js | 15 + .../_source/plugins/clipboard/lang/ug.js | 15 + .../_source/plugins/clipboard/lang/uk.js | 15 + .../_source/plugins/clipboard/lang/vi.js | 15 + .../_source/plugins/clipboard/lang/zh-cn.js | 15 + .../_source/plugins/clipboard/lang/zh.js | 15 + .../_source/plugins/clipboard/plugin.js | 1229 +++++++ .../plugins/colorbutton/icons/bgcolor.png | Bin .../colorbutton/icons/hidpi/bgcolor.png | Bin .../colorbutton/icons/hidpi/textcolor.png | Bin .../plugins/colorbutton/icons/textcolor.png | Bin .../_source/plugins/colorbutton/lang/af.js | 53 + .../_source/plugins/colorbutton/lang/ar.js | 53 + .../_source/plugins/colorbutton/lang/bg.js | 53 + .../_source/plugins/colorbutton/lang/bn.js | 53 + .../_source/plugins/colorbutton/lang/bs.js | 53 + .../_source/plugins/colorbutton/lang/ca.js | 53 + .../_source/plugins/colorbutton/lang/cs.js | 53 + .../_source/plugins/colorbutton/lang/cy.js | 53 + .../_source/plugins/colorbutton/lang/da.js | 53 + .../_source/plugins/colorbutton/lang/de.js | 53 + .../_source/plugins/colorbutton/lang/el.js | 53 + .../_source/plugins/colorbutton/lang/en-au.js | 53 + .../_source/plugins/colorbutton/lang/en-ca.js | 53 + .../_source/plugins/colorbutton/lang/en-gb.js | 53 + .../_source/plugins/colorbutton/lang/en.js | 53 + .../_source/plugins/colorbutton/lang/eo.js | 53 + .../_source/plugins/colorbutton/lang/es.js | 53 + .../_source/plugins/colorbutton/lang/et.js | 53 + .../_source/plugins/colorbutton/lang/eu.js | 53 + .../_source/plugins/colorbutton/lang/fa.js | 53 + .../_source/plugins/colorbutton/lang/fi.js | 53 + .../_source/plugins/colorbutton/lang/fo.js | 53 + .../_source/plugins/colorbutton/lang/fr-ca.js | 53 + .../_source/plugins/colorbutton/lang/fr.js | 53 + .../_source/plugins/colorbutton/lang/gl.js | 53 + .../_source/plugins/colorbutton/lang/gu.js | 53 + .../_source/plugins/colorbutton/lang/he.js | 53 + .../_source/plugins/colorbutton/lang/hi.js | 53 + .../_source/plugins/colorbutton/lang/hr.js | 53 + .../_source/plugins/colorbutton/lang/hu.js | 53 + .../_source/plugins/colorbutton/lang/id.js | 53 + .../_source/plugins/colorbutton/lang/is.js | 53 + .../_source/plugins/colorbutton/lang/it.js | 53 + .../_source/plugins/colorbutton/lang/ja.js | 53 + .../_source/plugins/colorbutton/lang/ka.js | 53 + .../_source/plugins/colorbutton/lang/km.js | 53 + .../_source/plugins/colorbutton/lang/ko.js | 53 + .../_source/plugins/colorbutton/lang/ku.js | 53 + .../_source/plugins/colorbutton/lang/lt.js | 53 + .../_source/plugins/colorbutton/lang/lv.js | 53 + .../_source/plugins/colorbutton/lang/mk.js | 53 + .../_source/plugins/colorbutton/lang/mn.js | 53 + .../_source/plugins/colorbutton/lang/ms.js | 53 + .../_source/plugins/colorbutton/lang/nb.js | 53 + .../_source/plugins/colorbutton/lang/nl.js | 53 + .../_source/plugins/colorbutton/lang/no.js | 53 + .../_source/plugins/colorbutton/lang/pl.js | 53 + .../_source/plugins/colorbutton/lang/pt-br.js | 53 + .../_source/plugins/colorbutton/lang/pt.js | 53 + .../_source/plugins/colorbutton/lang/ro.js | 53 + .../_source/plugins/colorbutton/lang/ru.js | 53 + .../_source/plugins/colorbutton/lang/si.js | 53 + .../_source/plugins/colorbutton/lang/sk.js | 53 + .../_source/plugins/colorbutton/lang/sl.js | 53 + .../_source/plugins/colorbutton/lang/sq.js | 53 + .../plugins/colorbutton/lang/sr-latn.js | 53 + .../_source/plugins/colorbutton/lang/sr.js | 53 + .../_source/plugins/colorbutton/lang/sv.js | 53 + .../_source/plugins/colorbutton/lang/th.js | 53 + .../_source/plugins/colorbutton/lang/tr.js | 53 + .../_source/plugins/colorbutton/lang/ug.js | 53 + .../_source/plugins/colorbutton/lang/uk.js | 53 + .../_source/plugins/colorbutton/lang/vi.js | 53 + .../_source/plugins/colorbutton/lang/zh-cn.js | 53 + .../_source/plugins/colorbutton/lang/zh.js | 53 + .../_source/plugins/colorbutton/plugin.js | 286 ++ .../colordialog/dialogs/colordialog.js | 338 ++ .../_source/plugins/colordialog/lang/af.js | 11 + .../_source/plugins/colordialog/lang/ar.js | 11 + .../_source/plugins/colordialog/lang/bg.js | 11 + .../_source/plugins/colordialog/lang/bn.js | 11 + .../_source/plugins/colordialog/lang/bs.js | 11 + .../_source/plugins/colordialog/lang/ca.js | 11 + .../_source/plugins/colordialog/lang/cs.js | 11 + .../_source/plugins/colordialog/lang/cy.js | 11 + .../_source/plugins/colordialog/lang/da.js | 11 + .../_source/plugins/colordialog/lang/de.js | 11 + .../_source/plugins/colordialog/lang/el.js | 11 + .../_source/plugins/colordialog/lang/en-au.js | 11 + .../_source/plugins/colordialog/lang/en-ca.js | 11 + .../_source/plugins/colordialog/lang/en-gb.js | 11 + .../_source/plugins/colordialog/lang/en.js | 11 + .../_source/plugins/colordialog/lang/eo.js | 11 + .../_source/plugins/colordialog/lang/es.js | 11 + .../_source/plugins/colordialog/lang/et.js | 11 + .../_source/plugins/colordialog/lang/eu.js | 11 + .../_source/plugins/colordialog/lang/fa.js | 11 + .../_source/plugins/colordialog/lang/fi.js | 11 + .../_source/plugins/colordialog/lang/fo.js | 11 + .../_source/plugins/colordialog/lang/fr-ca.js | 11 + .../_source/plugins/colordialog/lang/fr.js | 11 + .../_source/plugins/colordialog/lang/gl.js | 11 + .../_source/plugins/colordialog/lang/gu.js | 11 + .../_source/plugins/colordialog/lang/he.js | 11 + .../_source/plugins/colordialog/lang/hi.js | 11 + .../_source/plugins/colordialog/lang/hr.js | 11 + .../_source/plugins/colordialog/lang/hu.js | 11 + .../_source/plugins/colordialog/lang/is.js | 11 + .../_source/plugins/colordialog/lang/it.js | 11 + .../_source/plugins/colordialog/lang/ja.js | 11 + .../_source/plugins/colordialog/lang/ka.js | 11 + .../_source/plugins/colordialog/lang/km.js | 11 + .../_source/plugins/colordialog/lang/ko.js | 11 + .../_source/plugins/colordialog/lang/ku.js | 11 + .../_source/plugins/colordialog/lang/lt.js | 11 + .../_source/plugins/colordialog/lang/lv.js | 11 + .../_source/plugins/colordialog/lang/mk.js | 11 + .../_source/plugins/colordialog/lang/mn.js | 11 + .../_source/plugins/colordialog/lang/ms.js | 11 + .../_source/plugins/colordialog/lang/nb.js | 11 + .../_source/plugins/colordialog/lang/nl.js | 11 + .../_source/plugins/colordialog/lang/no.js | 11 + .../_source/plugins/colordialog/lang/pl.js | 11 + .../_source/plugins/colordialog/lang/pt-br.js | 11 + .../_source/plugins/colordialog/lang/pt.js | 11 + .../_source/plugins/colordialog/lang/ro.js | 11 + .../_source/plugins/colordialog/lang/ru.js | 11 + .../_source/plugins/colordialog/lang/si.js | 11 + .../_source/plugins/colordialog/lang/sk.js | 11 + .../_source/plugins/colordialog/lang/sl.js | 11 + .../_source/plugins/colordialog/lang/sq.js | 11 + .../plugins/colordialog/lang/sr-latn.js | 11 + .../_source/plugins/colordialog/lang/sr.js | 11 + .../_source/plugins/colordialog/lang/sv.js | 11 + .../_source/plugins/colordialog/lang/th.js | 11 + .../_source/plugins/colordialog/lang/tr.js | 11 + .../_source/plugins/colordialog/lang/ug.js | 11 + .../_source/plugins/colordialog/lang/uk.js | 11 + .../_source/plugins/colordialog/lang/vi.js | 11 + .../_source/plugins/colordialog/lang/zh-cn.js | 11 + .../_source/plugins/colordialog/lang/zh.js | 11 + .../_source/plugins/colordialog/plugin.js | 69 + .../_source/plugins/contextmenu/lang/af.js | 7 + .../_source/plugins/contextmenu/lang/ar.js | 7 + .../_source/plugins/contextmenu/lang/bg.js | 7 + .../_source/plugins/contextmenu/lang/bn.js | 7 + .../_source/plugins/contextmenu/lang/bs.js | 7 + .../_source/plugins/contextmenu/lang/ca.js | 7 + .../_source/plugins/contextmenu/lang/cs.js | 7 + .../_source/plugins/contextmenu/lang/cy.js | 7 + .../_source/plugins/contextmenu/lang/da.js | 7 + .../_source/plugins/contextmenu/lang/de.js | 7 + .../_source/plugins/contextmenu/lang/el.js | 7 + .../_source/plugins/contextmenu/lang/en-au.js | 7 + .../_source/plugins/contextmenu/lang/en-ca.js | 7 + .../_source/plugins/contextmenu/lang/en-gb.js | 7 + .../_source/plugins/contextmenu/lang/en.js | 7 + .../_source/plugins/contextmenu/lang/eo.js | 7 + .../_source/plugins/contextmenu/lang/es.js | 7 + .../_source/plugins/contextmenu/lang/et.js | 7 + .../_source/plugins/contextmenu/lang/eu.js | 7 + .../_source/plugins/contextmenu/lang/fa.js | 7 + .../_source/plugins/contextmenu/lang/fi.js | 7 + .../_source/plugins/contextmenu/lang/fo.js | 7 + .../_source/plugins/contextmenu/lang/fr-ca.js | 7 + .../_source/plugins/contextmenu/lang/fr.js | 7 + .../_source/plugins/contextmenu/lang/gl.js | 7 + .../_source/plugins/contextmenu/lang/gu.js | 7 + .../_source/plugins/contextmenu/lang/he.js | 7 + .../_source/plugins/contextmenu/lang/hi.js | 7 + .../_source/plugins/contextmenu/lang/hr.js | 7 + .../_source/plugins/contextmenu/lang/hu.js | 7 + .../_source/plugins/contextmenu/lang/id.js | 7 + .../_source/plugins/contextmenu/lang/is.js | 7 + .../_source/plugins/contextmenu/lang/it.js | 7 + .../_source/plugins/contextmenu/lang/ja.js | 7 + .../_source/plugins/contextmenu/lang/ka.js | 7 + .../_source/plugins/contextmenu/lang/km.js | 7 + .../_source/plugins/contextmenu/lang/ko.js | 7 + .../_source/plugins/contextmenu/lang/ku.js | 7 + .../_source/plugins/contextmenu/lang/lt.js | 7 + .../_source/plugins/contextmenu/lang/lv.js | 7 + .../_source/plugins/contextmenu/lang/mk.js | 7 + .../_source/plugins/contextmenu/lang/mn.js | 7 + .../_source/plugins/contextmenu/lang/ms.js | 7 + .../_source/plugins/contextmenu/lang/nb.js | 7 + .../_source/plugins/contextmenu/lang/nl.js | 7 + .../_source/plugins/contextmenu/lang/no.js | 7 + .../_source/plugins/contextmenu/lang/pl.js | 7 + .../_source/plugins/contextmenu/lang/pt-br.js | 7 + .../_source/plugins/contextmenu/lang/pt.js | 7 + .../_source/plugins/contextmenu/lang/ro.js | 7 + .../_source/plugins/contextmenu/lang/ru.js | 7 + .../_source/plugins/contextmenu/lang/si.js | 7 + .../_source/plugins/contextmenu/lang/sk.js | 7 + .../_source/plugins/contextmenu/lang/sl.js | 7 + .../_source/plugins/contextmenu/lang/sq.js | 7 + .../plugins/contextmenu/lang/sr-latn.js | 7 + .../_source/plugins/contextmenu/lang/sr.js | 7 + .../_source/plugins/contextmenu/lang/sv.js | 7 + .../_source/plugins/contextmenu/lang/th.js | 7 + .../_source/plugins/contextmenu/lang/tr.js | 7 + .../_source/plugins/contextmenu/lang/ug.js | 7 + .../_source/plugins/contextmenu/lang/uk.js | 7 + .../_source/plugins/contextmenu/lang/vi.js | 7 + .../_source/plugins/contextmenu/lang/zh-cn.js | 7 + .../_source/plugins/contextmenu/lang/zh.js | 7 + .../_source/plugins/contextmenu/plugin.js | 143 + .../plugins/dialog/dialogDefinition.js | 1006 +++++ .../ckeditor/_source/plugins/dialog/plugin.js | 3267 +++++++++++++++++ .../dialog/samples}/assets/my_dialog.js | 5 +- .../plugins/dialog/samples}/dialog.html | 0 .../_source/plugins/dialogadvtab/plugin.js | 200 + .../_source/plugins/dialogui/plugin.js | 1409 +++++++ .../_source/plugins/div/dialogs/div.js | 462 +++ .../plugins/div/icons/creatediv.png | Bin .../plugins/div/icons/hidpi/creatediv.png | Bin .../ckeditor/_source/plugins/div/lang/af.js | 19 + .../ckeditor/_source/plugins/div/lang/ar.js | 19 + .../ckeditor/_source/plugins/div/lang/bg.js | 19 + .../ckeditor/_source/plugins/div/lang/bn.js | 19 + .../ckeditor/_source/plugins/div/lang/bs.js | 19 + .../ckeditor/_source/plugins/div/lang/ca.js | 19 + .../ckeditor/_source/plugins/div/lang/cs.js | 19 + .../ckeditor/_source/plugins/div/lang/cy.js | 19 + .../ckeditor/_source/plugins/div/lang/da.js | 19 + .../ckeditor/_source/plugins/div/lang/de.js | 19 + .../ckeditor/_source/plugins/div/lang/el.js | 19 + .../_source/plugins/div/lang/en-au.js | 19 + .../_source/plugins/div/lang/en-ca.js | 19 + .../_source/plugins/div/lang/en-gb.js | 19 + .../ckeditor/_source/plugins/div/lang/en.js | 19 + .../ckeditor/_source/plugins/div/lang/eo.js | 19 + .../ckeditor/_source/plugins/div/lang/es.js | 19 + .../ckeditor/_source/plugins/div/lang/et.js | 19 + .../ckeditor/_source/plugins/div/lang/eu.js | 19 + .../ckeditor/_source/plugins/div/lang/fa.js | 19 + .../ckeditor/_source/plugins/div/lang/fi.js | 19 + .../ckeditor/_source/plugins/div/lang/fo.js | 19 + .../_source/plugins/div/lang/fr-ca.js | 19 + .../ckeditor/_source/plugins/div/lang/fr.js | 19 + .../ckeditor/_source/plugins/div/lang/gl.js | 19 + .../ckeditor/_source/plugins/div/lang/gu.js | 19 + .../ckeditor/_source/plugins/div/lang/he.js | 19 + .../ckeditor/_source/plugins/div/lang/hi.js | 19 + .../ckeditor/_source/plugins/div/lang/hr.js | 19 + .../ckeditor/_source/plugins/div/lang/hu.js | 19 + .../ckeditor/_source/plugins/div/lang/id.js | 19 + .../ckeditor/_source/plugins/div/lang/is.js | 19 + .../ckeditor/_source/plugins/div/lang/it.js | 19 + .../ckeditor/_source/plugins/div/lang/ja.js | 19 + .../ckeditor/_source/plugins/div/lang/ka.js | 19 + .../ckeditor/_source/plugins/div/lang/km.js | 19 + .../ckeditor/_source/plugins/div/lang/ko.js | 19 + .../ckeditor/_source/plugins/div/lang/ku.js | 19 + .../ckeditor/_source/plugins/div/lang/lt.js | 19 + .../ckeditor/_source/plugins/div/lang/lv.js | 19 + .../ckeditor/_source/plugins/div/lang/mk.js | 19 + .../ckeditor/_source/plugins/div/lang/mn.js | 19 + .../ckeditor/_source/plugins/div/lang/ms.js | 19 + .../ckeditor/_source/plugins/div/lang/nb.js | 19 + .../ckeditor/_source/plugins/div/lang/nl.js | 19 + .../ckeditor/_source/plugins/div/lang/no.js | 19 + .../ckeditor/_source/plugins/div/lang/pl.js | 19 + .../_source/plugins/div/lang/pt-br.js | 19 + .../ckeditor/_source/plugins/div/lang/pt.js | 19 + .../ckeditor/_source/plugins/div/lang/ro.js | 19 + .../ckeditor/_source/plugins/div/lang/ru.js | 19 + .../ckeditor/_source/plugins/div/lang/si.js | 19 + .../ckeditor/_source/plugins/div/lang/sk.js | 19 + .../ckeditor/_source/plugins/div/lang/sl.js | 19 + .../ckeditor/_source/plugins/div/lang/sq.js | 19 + .../_source/plugins/div/lang/sr-latn.js | 19 + .../ckeditor/_source/plugins/div/lang/sr.js | 19 + .../ckeditor/_source/plugins/div/lang/sv.js | 19 + .../ckeditor/_source/plugins/div/lang/th.js | 19 + .../ckeditor/_source/plugins/div/lang/tr.js | 19 + .../ckeditor/_source/plugins/div/lang/ug.js | 19 + .../ckeditor/_source/plugins/div/lang/uk.js | 19 + .../ckeditor/_source/plugins/div/lang/vi.js | 19 + .../_source/plugins/div/lang/zh-cn.js | 19 + .../ckeditor/_source/plugins/div/lang/zh.js | 19 + .../ckeditor/_source/plugins/div/plugin.js | 129 + .../_source/plugins/elementspath/lang/af.js | 8 + .../_source/plugins/elementspath/lang/ar.js | 8 + .../_source/plugins/elementspath/lang/bg.js | 8 + .../_source/plugins/elementspath/lang/bn.js | 8 + .../_source/plugins/elementspath/lang/bs.js | 8 + .../_source/plugins/elementspath/lang/ca.js | 8 + .../_source/plugins/elementspath/lang/cs.js | 8 + .../_source/plugins/elementspath/lang/cy.js | 8 + .../_source/plugins/elementspath/lang/da.js | 8 + .../_source/plugins/elementspath/lang/de.js | 8 + .../_source/plugins/elementspath/lang/el.js | 8 + .../plugins/elementspath/lang/en-au.js | 8 + .../plugins/elementspath/lang/en-ca.js | 8 + .../plugins/elementspath/lang/en-gb.js | 8 + .../_source/plugins/elementspath/lang/en.js | 8 + .../_source/plugins/elementspath/lang/eo.js | 8 + .../_source/plugins/elementspath/lang/es.js | 8 + .../_source/plugins/elementspath/lang/et.js | 8 + .../_source/plugins/elementspath/lang/eu.js | 8 + .../_source/plugins/elementspath/lang/fa.js | 8 + .../_source/plugins/elementspath/lang/fi.js | 8 + .../_source/plugins/elementspath/lang/fo.js | 8 + .../plugins/elementspath/lang/fr-ca.js | 8 + .../_source/plugins/elementspath/lang/fr.js | 8 + .../_source/plugins/elementspath/lang/gl.js | 8 + .../_source/plugins/elementspath/lang/gu.js | 8 + .../_source/plugins/elementspath/lang/he.js | 8 + .../_source/plugins/elementspath/lang/hi.js | 8 + .../_source/plugins/elementspath/lang/hr.js | 8 + .../_source/plugins/elementspath/lang/hu.js | 8 + .../_source/plugins/elementspath/lang/is.js | 8 + .../_source/plugins/elementspath/lang/it.js | 8 + .../_source/plugins/elementspath/lang/ja.js | 8 + .../_source/plugins/elementspath/lang/ka.js | 8 + .../_source/plugins/elementspath/lang/km.js | 8 + .../_source/plugins/elementspath/lang/ko.js | 8 + .../_source/plugins/elementspath/lang/ku.js | 8 + .../_source/plugins/elementspath/lang/lt.js | 8 + .../_source/plugins/elementspath/lang/lv.js | 8 + .../_source/plugins/elementspath/lang/mk.js | 8 + .../_source/plugins/elementspath/lang/mn.js | 8 + .../_source/plugins/elementspath/lang/ms.js | 8 + .../_source/plugins/elementspath/lang/nb.js | 8 + .../_source/plugins/elementspath/lang/nl.js | 8 + .../_source/plugins/elementspath/lang/no.js | 8 + .../_source/plugins/elementspath/lang/pl.js | 8 + .../plugins/elementspath/lang/pt-br.js | 8 + .../_source/plugins/elementspath/lang/pt.js | 8 + .../_source/plugins/elementspath/lang/ro.js | 8 + .../_source/plugins/elementspath/lang/ru.js | 8 + .../_source/plugins/elementspath/lang/si.js | 8 + .../_source/plugins/elementspath/lang/sk.js | 8 + .../_source/plugins/elementspath/lang/sl.js | 8 + .../_source/plugins/elementspath/lang/sq.js | 8 + .../plugins/elementspath/lang/sr-latn.js | 8 + .../_source/plugins/elementspath/lang/sr.js | 8 + .../_source/plugins/elementspath/lang/sv.js | 8 + .../_source/plugins/elementspath/lang/th.js | 8 + .../_source/plugins/elementspath/lang/tr.js | 8 + .../_source/plugins/elementspath/lang/ug.js | 8 + .../_source/plugins/elementspath/lang/uk.js | 8 + .../_source/plugins/elementspath/lang/vi.js | 8 + .../plugins/elementspath/lang/zh-cn.js | 8 + .../_source/plugins/elementspath/lang/zh.js | 8 + .../_source/plugins/elementspath/plugin.js | 236 ++ .../_source/plugins/enterkey/plugin.js | 529 +++ .../plugins/enterkey/samples}/enterkey.html | 0 .../_source/plugins/entities/plugin.js | 239 ++ .../plugins/fakeobjects/images/spacer.gif | Bin 0 -> 43 bytes .../_source/plugins/fakeobjects/lang/af.js | 11 + .../_source/plugins/fakeobjects/lang/ar.js | 11 + .../_source/plugins/fakeobjects/lang/bg.js | 11 + .../_source/plugins/fakeobjects/lang/bn.js | 11 + .../_source/plugins/fakeobjects/lang/bs.js | 11 + .../_source/plugins/fakeobjects/lang/ca.js | 11 + .../_source/plugins/fakeobjects/lang/cs.js | 11 + .../_source/plugins/fakeobjects/lang/cy.js | 11 + .../_source/plugins/fakeobjects/lang/da.js | 11 + .../_source/plugins/fakeobjects/lang/de.js | 11 + .../_source/plugins/fakeobjects/lang/el.js | 11 + .../_source/plugins/fakeobjects/lang/en-au.js | 11 + .../_source/plugins/fakeobjects/lang/en-ca.js | 11 + .../_source/plugins/fakeobjects/lang/en-gb.js | 11 + .../_source/plugins/fakeobjects/lang/en.js | 11 + .../_source/plugins/fakeobjects/lang/eo.js | 11 + .../_source/plugins/fakeobjects/lang/es.js | 11 + .../_source/plugins/fakeobjects/lang/et.js | 11 + .../_source/plugins/fakeobjects/lang/eu.js | 11 + .../_source/plugins/fakeobjects/lang/fa.js | 11 + .../_source/plugins/fakeobjects/lang/fi.js | 11 + .../_source/plugins/fakeobjects/lang/fo.js | 11 + .../_source/plugins/fakeobjects/lang/fr-ca.js | 11 + .../_source/plugins/fakeobjects/lang/fr.js | 11 + .../_source/plugins/fakeobjects/lang/gl.js | 11 + .../_source/plugins/fakeobjects/lang/gu.js | 11 + .../_source/plugins/fakeobjects/lang/he.js | 11 + .../_source/plugins/fakeobjects/lang/hi.js | 11 + .../_source/plugins/fakeobjects/lang/hr.js | 11 + .../_source/plugins/fakeobjects/lang/hu.js | 11 + .../_source/plugins/fakeobjects/lang/id.js | 11 + .../_source/plugins/fakeobjects/lang/is.js | 11 + .../_source/plugins/fakeobjects/lang/it.js | 11 + .../_source/plugins/fakeobjects/lang/ja.js | 11 + .../_source/plugins/fakeobjects/lang/ka.js | 11 + .../_source/plugins/fakeobjects/lang/km.js | 11 + .../_source/plugins/fakeobjects/lang/ko.js | 11 + .../_source/plugins/fakeobjects/lang/ku.js | 11 + .../_source/plugins/fakeobjects/lang/lt.js | 11 + .../_source/plugins/fakeobjects/lang/lv.js | 11 + .../_source/plugins/fakeobjects/lang/mk.js | 11 + .../_source/plugins/fakeobjects/lang/mn.js | 11 + .../_source/plugins/fakeobjects/lang/ms.js | 11 + .../_source/plugins/fakeobjects/lang/nb.js | 11 + .../_source/plugins/fakeobjects/lang/nl.js | 11 + .../_source/plugins/fakeobjects/lang/no.js | 11 + .../_source/plugins/fakeobjects/lang/pl.js | 11 + .../_source/plugins/fakeobjects/lang/pt-br.js | 11 + .../_source/plugins/fakeobjects/lang/pt.js | 11 + .../_source/plugins/fakeobjects/lang/ro.js | 11 + .../_source/plugins/fakeobjects/lang/ru.js | 11 + .../_source/plugins/fakeobjects/lang/si.js | 11 + .../_source/plugins/fakeobjects/lang/sk.js | 11 + .../_source/plugins/fakeobjects/lang/sl.js | 11 + .../_source/plugins/fakeobjects/lang/sq.js | 11 + .../plugins/fakeobjects/lang/sr-latn.js | 11 + .../_source/plugins/fakeobjects/lang/sr.js | 11 + .../_source/plugins/fakeobjects/lang/sv.js | 11 + .../_source/plugins/fakeobjects/lang/th.js | 11 + .../_source/plugins/fakeobjects/lang/tr.js | 11 + .../_source/plugins/fakeobjects/lang/ug.js | 11 + .../_source/plugins/fakeobjects/lang/uk.js | 11 + .../_source/plugins/fakeobjects/lang/vi.js | 11 + .../_source/plugins/fakeobjects/lang/zh-cn.js | 11 + .../_source/plugins/fakeobjects/lang/zh.js | 11 + .../_source/plugins/fakeobjects/plugin.js | 178 + .../_source/plugins/filebrowser/plugin.js | 501 +++ .../_source/plugins/find/dialogs/find.js | 790 ++++ .../plugins/find/icons/find-rtl.png | Bin .../{ => _source}/plugins/find/icons/find.png | Bin .../plugins/find/icons/hidpi/find-rtl.png | Bin .../plugins/find/icons/hidpi/find.png | Bin .../plugins/find/icons/hidpi/replace.png | Bin .../plugins/find/icons/replace.png | Bin .../ckeditor/_source/plugins/find/lang/af.js | 18 + .../ckeditor/_source/plugins/find/lang/ar.js | 18 + .../ckeditor/_source/plugins/find/lang/bg.js | 18 + .../ckeditor/_source/plugins/find/lang/bn.js | 18 + .../ckeditor/_source/plugins/find/lang/bs.js | 18 + .../ckeditor/_source/plugins/find/lang/ca.js | 18 + .../ckeditor/_source/plugins/find/lang/cs.js | 18 + .../ckeditor/_source/plugins/find/lang/cy.js | 18 + .../ckeditor/_source/plugins/find/lang/da.js | 18 + .../ckeditor/_source/plugins/find/lang/de.js | 18 + .../ckeditor/_source/plugins/find/lang/el.js | 18 + .../_source/plugins/find/lang/en-au.js | 18 + .../_source/plugins/find/lang/en-ca.js | 18 + .../_source/plugins/find/lang/en-gb.js | 18 + .../ckeditor/_source/plugins/find/lang/en.js | 18 + .../ckeditor/_source/plugins/find/lang/eo.js | 18 + .../ckeditor/_source/plugins/find/lang/es.js | 18 + .../ckeditor/_source/plugins/find/lang/et.js | 18 + .../ckeditor/_source/plugins/find/lang/eu.js | 18 + .../ckeditor/_source/plugins/find/lang/fa.js | 18 + .../ckeditor/_source/plugins/find/lang/fi.js | 18 + .../ckeditor/_source/plugins/find/lang/fo.js | 18 + .../_source/plugins/find/lang/fr-ca.js | 18 + .../ckeditor/_source/plugins/find/lang/fr.js | 18 + .../ckeditor/_source/plugins/find/lang/gl.js | 18 + .../ckeditor/_source/plugins/find/lang/gu.js | 18 + .../ckeditor/_source/plugins/find/lang/he.js | 18 + .../ckeditor/_source/plugins/find/lang/hi.js | 18 + .../ckeditor/_source/plugins/find/lang/hr.js | 18 + .../ckeditor/_source/plugins/find/lang/hu.js | 18 + .../ckeditor/_source/plugins/find/lang/id.js | 18 + .../ckeditor/_source/plugins/find/lang/is.js | 18 + .../ckeditor/_source/plugins/find/lang/it.js | 18 + .../ckeditor/_source/plugins/find/lang/ja.js | 18 + .../ckeditor/_source/plugins/find/lang/ka.js | 18 + .../ckeditor/_source/plugins/find/lang/km.js | 18 + .../ckeditor/_source/plugins/find/lang/ko.js | 18 + .../ckeditor/_source/plugins/find/lang/ku.js | 18 + .../ckeditor/_source/plugins/find/lang/lt.js | 18 + .../ckeditor/_source/plugins/find/lang/lv.js | 18 + .../ckeditor/_source/plugins/find/lang/mk.js | 18 + .../ckeditor/_source/plugins/find/lang/mn.js | 18 + .../ckeditor/_source/plugins/find/lang/ms.js | 18 + .../ckeditor/_source/plugins/find/lang/nb.js | 18 + .../ckeditor/_source/plugins/find/lang/nl.js | 18 + .../ckeditor/_source/plugins/find/lang/no.js | 18 + .../ckeditor/_source/plugins/find/lang/pl.js | 18 + .../_source/plugins/find/lang/pt-br.js | 18 + .../ckeditor/_source/plugins/find/lang/pt.js | 18 + .../ckeditor/_source/plugins/find/lang/ro.js | 18 + .../ckeditor/_source/plugins/find/lang/ru.js | 18 + .../ckeditor/_source/plugins/find/lang/si.js | 18 + .../ckeditor/_source/plugins/find/lang/sk.js | 18 + .../ckeditor/_source/plugins/find/lang/sl.js | 18 + .../ckeditor/_source/plugins/find/lang/sq.js | 18 + .../_source/plugins/find/lang/sr-latn.js | 18 + .../ckeditor/_source/plugins/find/lang/sr.js | 18 + .../ckeditor/_source/plugins/find/lang/sv.js | 18 + .../ckeditor/_source/plugins/find/lang/th.js | 18 + .../ckeditor/_source/plugins/find/lang/tr.js | 18 + .../ckeditor/_source/plugins/find/lang/ug.js | 18 + .../ckeditor/_source/plugins/find/lang/uk.js | 18 + .../ckeditor/_source/plugins/find/lang/vi.js | 18 + .../_source/plugins/find/lang/zh-cn.js | 18 + .../ckeditor/_source/plugins/find/lang/zh.js | 18 + .../ckeditor/_source/plugins/find/plugin.js | 51 + .../_source/plugins/flash/dialogs/flash.js | 668 ++++ .../plugins/flash/icons/flash.png | Bin .../plugins/flash/icons/hidpi/flash.png | Bin .../plugins/flash/images/placeholder.png | Bin 0 -> 256 bytes .../ckeditor/_source/plugins/flash/lang/af.js | 43 + .../ckeditor/_source/plugins/flash/lang/ar.js | 43 + .../ckeditor/_source/plugins/flash/lang/bg.js | 43 + .../ckeditor/_source/plugins/flash/lang/bn.js | 43 + .../ckeditor/_source/plugins/flash/lang/bs.js | 43 + .../ckeditor/_source/plugins/flash/lang/ca.js | 43 + .../ckeditor/_source/plugins/flash/lang/cs.js | 43 + .../ckeditor/_source/plugins/flash/lang/cy.js | 43 + .../ckeditor/_source/plugins/flash/lang/da.js | 43 + .../ckeditor/_source/plugins/flash/lang/de.js | 43 + .../ckeditor/_source/plugins/flash/lang/el.js | 43 + .../_source/plugins/flash/lang/en-au.js | 43 + .../_source/plugins/flash/lang/en-ca.js | 43 + .../_source/plugins/flash/lang/en-gb.js | 43 + .../ckeditor/_source/plugins/flash/lang/en.js | 43 + .../ckeditor/_source/plugins/flash/lang/eo.js | 43 + .../ckeditor/_source/plugins/flash/lang/es.js | 43 + .../ckeditor/_source/plugins/flash/lang/et.js | 43 + .../ckeditor/_source/plugins/flash/lang/eu.js | 43 + .../ckeditor/_source/plugins/flash/lang/fa.js | 43 + .../ckeditor/_source/plugins/flash/lang/fi.js | 43 + .../ckeditor/_source/plugins/flash/lang/fo.js | 43 + .../_source/plugins/flash/lang/fr-ca.js | 43 + .../ckeditor/_source/plugins/flash/lang/fr.js | 43 + .../ckeditor/_source/plugins/flash/lang/gl.js | 43 + .../ckeditor/_source/plugins/flash/lang/gu.js | 43 + .../ckeditor/_source/plugins/flash/lang/he.js | 43 + .../ckeditor/_source/plugins/flash/lang/hi.js | 43 + .../ckeditor/_source/plugins/flash/lang/hr.js | 43 + .../ckeditor/_source/plugins/flash/lang/hu.js | 43 + .../ckeditor/_source/plugins/flash/lang/id.js | 43 + .../ckeditor/_source/plugins/flash/lang/is.js | 43 + .../ckeditor/_source/plugins/flash/lang/it.js | 43 + .../ckeditor/_source/plugins/flash/lang/ja.js | 43 + .../ckeditor/_source/plugins/flash/lang/ka.js | 43 + .../ckeditor/_source/plugins/flash/lang/km.js | 43 + .../ckeditor/_source/plugins/flash/lang/ko.js | 43 + .../ckeditor/_source/plugins/flash/lang/ku.js | 43 + .../ckeditor/_source/plugins/flash/lang/lt.js | 43 + .../ckeditor/_source/plugins/flash/lang/lv.js | 43 + .../ckeditor/_source/plugins/flash/lang/mk.js | 43 + .../ckeditor/_source/plugins/flash/lang/mn.js | 43 + .../ckeditor/_source/plugins/flash/lang/ms.js | 43 + .../ckeditor/_source/plugins/flash/lang/nb.js | 43 + .../ckeditor/_source/plugins/flash/lang/nl.js | 43 + .../ckeditor/_source/plugins/flash/lang/no.js | 43 + .../ckeditor/_source/plugins/flash/lang/pl.js | 43 + .../_source/plugins/flash/lang/pt-br.js | 43 + .../ckeditor/_source/plugins/flash/lang/pt.js | 43 + .../ckeditor/_source/plugins/flash/lang/ro.js | 43 + .../ckeditor/_source/plugins/flash/lang/ru.js | 43 + .../ckeditor/_source/plugins/flash/lang/si.js | 43 + .../ckeditor/_source/plugins/flash/lang/sk.js | 43 + .../ckeditor/_source/plugins/flash/lang/sl.js | 43 + .../ckeditor/_source/plugins/flash/lang/sq.js | 43 + .../_source/plugins/flash/lang/sr-latn.js | 43 + .../ckeditor/_source/plugins/flash/lang/sr.js | 43 + .../ckeditor/_source/plugins/flash/lang/sv.js | 43 + .../ckeditor/_source/plugins/flash/lang/th.js | 43 + .../ckeditor/_source/plugins/flash/lang/tr.js | 43 + .../ckeditor/_source/plugins/flash/lang/ug.js | 43 + .../ckeditor/_source/plugins/flash/lang/uk.js | 43 + .../ckeditor/_source/plugins/flash/lang/vi.js | 43 + .../_source/plugins/flash/lang/zh-cn.js | 43 + .../ckeditor/_source/plugins/flash/lang/zh.js | 43 + .../ckeditor/_source/plugins/flash/plugin.js | 149 + .../_source/plugins/floatingspace/plugin.js | 379 ++ .../_source/plugins/floatpanel/plugin.js | 548 +++ .../ckeditor/_source/plugins/font/lang/af.js | 14 + .../ckeditor/_source/plugins/font/lang/ar.js | 14 + .../ckeditor/_source/plugins/font/lang/bg.js | 14 + .../ckeditor/_source/plugins/font/lang/bn.js | 14 + .../ckeditor/_source/plugins/font/lang/bs.js | 14 + .../ckeditor/_source/plugins/font/lang/ca.js | 14 + .../ckeditor/_source/plugins/font/lang/cs.js | 14 + .../ckeditor/_source/plugins/font/lang/cy.js | 14 + .../ckeditor/_source/plugins/font/lang/da.js | 14 + .../ckeditor/_source/plugins/font/lang/de.js | 14 + .../ckeditor/_source/plugins/font/lang/el.js | 14 + .../_source/plugins/font/lang/en-au.js | 14 + .../_source/plugins/font/lang/en-ca.js | 14 + .../_source/plugins/font/lang/en-gb.js | 14 + .../ckeditor/_source/plugins/font/lang/en.js | 14 + .../ckeditor/_source/plugins/font/lang/eo.js | 14 + .../ckeditor/_source/plugins/font/lang/es.js | 14 + .../ckeditor/_source/plugins/font/lang/et.js | 14 + .../ckeditor/_source/plugins/font/lang/eu.js | 14 + .../ckeditor/_source/plugins/font/lang/fa.js | 14 + .../ckeditor/_source/plugins/font/lang/fi.js | 14 + .../ckeditor/_source/plugins/font/lang/fo.js | 14 + .../_source/plugins/font/lang/fr-ca.js | 14 + .../ckeditor/_source/plugins/font/lang/fr.js | 14 + .../ckeditor/_source/plugins/font/lang/gl.js | 14 + .../ckeditor/_source/plugins/font/lang/gu.js | 14 + .../ckeditor/_source/plugins/font/lang/he.js | 14 + .../ckeditor/_source/plugins/font/lang/hi.js | 14 + .../ckeditor/_source/plugins/font/lang/hr.js | 14 + .../ckeditor/_source/plugins/font/lang/hu.js | 14 + .../ckeditor/_source/plugins/font/lang/id.js | 14 + .../ckeditor/_source/plugins/font/lang/is.js | 14 + .../ckeditor/_source/plugins/font/lang/it.js | 14 + .../ckeditor/_source/plugins/font/lang/ja.js | 14 + .../ckeditor/_source/plugins/font/lang/ka.js | 14 + .../ckeditor/_source/plugins/font/lang/km.js | 14 + .../ckeditor/_source/plugins/font/lang/ko.js | 14 + .../ckeditor/_source/plugins/font/lang/ku.js | 14 + .../ckeditor/_source/plugins/font/lang/lt.js | 14 + .../ckeditor/_source/plugins/font/lang/lv.js | 14 + .../ckeditor/_source/plugins/font/lang/mk.js | 14 + .../ckeditor/_source/plugins/font/lang/mn.js | 14 + .../ckeditor/_source/plugins/font/lang/ms.js | 14 + .../ckeditor/_source/plugins/font/lang/nb.js | 14 + .../ckeditor/_source/plugins/font/lang/nl.js | 14 + .../ckeditor/_source/plugins/font/lang/no.js | 14 + .../ckeditor/_source/plugins/font/lang/pl.js | 14 + .../_source/plugins/font/lang/pt-br.js | 14 + .../ckeditor/_source/plugins/font/lang/pt.js | 14 + .../ckeditor/_source/plugins/font/lang/ro.js | 14 + .../ckeditor/_source/plugins/font/lang/ru.js | 14 + .../ckeditor/_source/plugins/font/lang/si.js | 14 + .../ckeditor/_source/plugins/font/lang/sk.js | 14 + .../ckeditor/_source/plugins/font/lang/sl.js | 14 + .../ckeditor/_source/plugins/font/lang/sq.js | 14 + .../_source/plugins/font/lang/sr-latn.js | 14 + .../ckeditor/_source/plugins/font/lang/sr.js | 14 + .../ckeditor/_source/plugins/font/lang/sv.js | 14 + .../ckeditor/_source/plugins/font/lang/th.js | 14 + .../ckeditor/_source/plugins/font/lang/tr.js | 14 + .../ckeditor/_source/plugins/font/lang/ug.js | 14 + .../ckeditor/_source/plugins/font/lang/uk.js | 14 + .../ckeditor/_source/plugins/font/lang/vi.js | 14 + .../_source/plugins/font/lang/zh-cn.js | 14 + .../ckeditor/_source/plugins/font/lang/zh.js | 14 + .../ckeditor/_source/plugins/font/plugin.js | 230 ++ .../_source/plugins/format/lang/af.js | 18 + .../_source/plugins/format/lang/ar.js | 18 + .../_source/plugins/format/lang/bg.js | 18 + .../_source/plugins/format/lang/bn.js | 18 + .../_source/plugins/format/lang/bs.js | 18 + .../_source/plugins/format/lang/ca.js | 18 + .../_source/plugins/format/lang/cs.js | 18 + .../_source/plugins/format/lang/cy.js | 18 + .../_source/plugins/format/lang/da.js | 18 + .../_source/plugins/format/lang/de.js | 18 + .../_source/plugins/format/lang/el.js | 18 + .../_source/plugins/format/lang/en-au.js | 18 + .../_source/plugins/format/lang/en-ca.js | 18 + .../_source/plugins/format/lang/en-gb.js | 18 + .../_source/plugins/format/lang/en.js | 18 + .../_source/plugins/format/lang/eo.js | 18 + .../_source/plugins/format/lang/es.js | 18 + .../_source/plugins/format/lang/et.js | 18 + .../_source/plugins/format/lang/eu.js | 18 + .../_source/plugins/format/lang/fa.js | 18 + .../_source/plugins/format/lang/fi.js | 18 + .../_source/plugins/format/lang/fo.js | 18 + .../_source/plugins/format/lang/fr-ca.js | 18 + .../_source/plugins/format/lang/fr.js | 18 + .../_source/plugins/format/lang/gl.js | 18 + .../_source/plugins/format/lang/gu.js | 18 + .../_source/plugins/format/lang/he.js | 18 + .../_source/plugins/format/lang/hi.js | 18 + .../_source/plugins/format/lang/hr.js | 18 + .../_source/plugins/format/lang/hu.js | 18 + .../_source/plugins/format/lang/id.js | 18 + .../_source/plugins/format/lang/is.js | 18 + .../_source/plugins/format/lang/it.js | 18 + .../_source/plugins/format/lang/ja.js | 18 + .../_source/plugins/format/lang/ka.js | 18 + .../_source/plugins/format/lang/km.js | 18 + .../_source/plugins/format/lang/ko.js | 18 + .../_source/plugins/format/lang/ku.js | 18 + .../_source/plugins/format/lang/lt.js | 18 + .../_source/plugins/format/lang/lv.js | 18 + .../_source/plugins/format/lang/mk.js | 18 + .../_source/plugins/format/lang/mn.js | 18 + .../_source/plugins/format/lang/ms.js | 18 + .../_source/plugins/format/lang/nb.js | 18 + .../_source/plugins/format/lang/nl.js | 18 + .../_source/plugins/format/lang/no.js | 18 + .../_source/plugins/format/lang/pl.js | 18 + .../_source/plugins/format/lang/pt-br.js | 18 + .../_source/plugins/format/lang/pt.js | 18 + .../_source/plugins/format/lang/ro.js | 18 + .../_source/plugins/format/lang/ru.js | 18 + .../_source/plugins/format/lang/si.js | 18 + .../_source/plugins/format/lang/sk.js | 18 + .../_source/plugins/format/lang/sl.js | 18 + .../_source/plugins/format/lang/sq.js | 18 + .../_source/plugins/format/lang/sr-latn.js | 18 + .../_source/plugins/format/lang/sr.js | 18 + .../_source/plugins/format/lang/sv.js | 18 + .../_source/plugins/format/lang/th.js | 18 + .../_source/plugins/format/lang/tr.js | 18 + .../_source/plugins/format/lang/ug.js | 18 + .../_source/plugins/format/lang/uk.js | 18 + .../_source/plugins/format/lang/vi.js | 18 + .../_source/plugins/format/lang/zh-cn.js | 18 + .../_source/plugins/format/lang/zh.js | 18 + .../ckeditor/_source/plugins/format/plugin.js | 244 ++ .../_source/plugins/forms/dialogs/button.js | 100 + .../_source/plugins/forms/dialogs/checkbox.js | 130 + .../_source/plugins/forms/dialogs/form.js | 151 + .../plugins/forms/dialogs/hiddenfield.js | 85 + .../_source/plugins/forms/dialogs/radio.js | 115 + .../_source/plugins/forms/dialogs/select.js | 503 +++ .../_source/plugins/forms/dialogs/textarea.js | 118 + .../plugins/forms/dialogs/textfield.js | 182 + .../plugins/forms/icons/button.png | Bin .../plugins/forms/icons/checkbox.png | Bin .../plugins/forms/icons/form.png | Bin .../plugins/forms/icons/hiddenfield.png | Bin .../plugins/forms/icons/hidpi/button.png | Bin .../plugins/forms/icons/hidpi/checkbox.png | Bin .../plugins/forms/icons/hidpi/form.png | Bin .../plugins/forms/icons/hidpi/hiddenfield.png | Bin .../plugins/forms/icons/hidpi/imagebutton.png | Bin .../plugins/forms/icons/hidpi/radio.png | Bin .../plugins/forms/icons/hidpi/select-rtl.png | Bin .../plugins/forms/icons/hidpi/select.png | Bin .../forms/icons/hidpi/textarea-rtl.png | Bin .../plugins/forms/icons/hidpi/textarea.png | Bin .../forms/icons/hidpi/textfield-rtl.png | Bin .../plugins/forms/icons/hidpi/textfield.png | Bin .../plugins/forms/icons/imagebutton.png | Bin .../plugins/forms/icons/radio.png | Bin .../plugins/forms/icons/select-rtl.png | Bin .../plugins/forms/icons/select.png | Bin .../plugins/forms/icons/textarea-rtl.png | Bin .../plugins/forms/icons/textarea.png | Bin .../plugins/forms/icons/textfield-rtl.png | Bin .../plugins/forms/icons/textfield.png | Bin .../plugins/forms/images/hiddenfield.gif | Bin 0 -> 105 bytes .../ckeditor/_source/plugins/forms/lang/af.js | 68 + .../ckeditor/_source/plugins/forms/lang/ar.js | 68 + .../ckeditor/_source/plugins/forms/lang/bg.js | 68 + .../ckeditor/_source/plugins/forms/lang/bn.js | 68 + .../ckeditor/_source/plugins/forms/lang/bs.js | 68 + .../ckeditor/_source/plugins/forms/lang/ca.js | 68 + .../ckeditor/_source/plugins/forms/lang/cs.js | 68 + .../ckeditor/_source/plugins/forms/lang/cy.js | 68 + .../ckeditor/_source/plugins/forms/lang/da.js | 68 + .../ckeditor/_source/plugins/forms/lang/de.js | 68 + .../ckeditor/_source/plugins/forms/lang/el.js | 68 + .../_source/plugins/forms/lang/en-au.js | 68 + .../_source/plugins/forms/lang/en-ca.js | 68 + .../_source/plugins/forms/lang/en-gb.js | 68 + .../ckeditor/_source/plugins/forms/lang/en.js | 68 + .../ckeditor/_source/plugins/forms/lang/eo.js | 68 + .../ckeditor/_source/plugins/forms/lang/es.js | 68 + .../ckeditor/_source/plugins/forms/lang/et.js | 68 + .../ckeditor/_source/plugins/forms/lang/eu.js | 68 + .../ckeditor/_source/plugins/forms/lang/fa.js | 68 + .../ckeditor/_source/plugins/forms/lang/fi.js | 68 + .../ckeditor/_source/plugins/forms/lang/fo.js | 68 + .../_source/plugins/forms/lang/fr-ca.js | 68 + .../ckeditor/_source/plugins/forms/lang/fr.js | 68 + .../ckeditor/_source/plugins/forms/lang/gl.js | 68 + .../ckeditor/_source/plugins/forms/lang/gu.js | 68 + .../ckeditor/_source/plugins/forms/lang/he.js | 68 + .../ckeditor/_source/plugins/forms/lang/hi.js | 68 + .../ckeditor/_source/plugins/forms/lang/hr.js | 68 + .../ckeditor/_source/plugins/forms/lang/hu.js | 68 + .../ckeditor/_source/plugins/forms/lang/id.js | 68 + .../ckeditor/_source/plugins/forms/lang/is.js | 68 + .../ckeditor/_source/plugins/forms/lang/it.js | 68 + .../ckeditor/_source/plugins/forms/lang/ja.js | 68 + .../ckeditor/_source/plugins/forms/lang/ka.js | 68 + .../ckeditor/_source/plugins/forms/lang/km.js | 68 + .../ckeditor/_source/plugins/forms/lang/ko.js | 68 + .../ckeditor/_source/plugins/forms/lang/ku.js | 68 + .../ckeditor/_source/plugins/forms/lang/lt.js | 68 + .../ckeditor/_source/plugins/forms/lang/lv.js | 68 + .../ckeditor/_source/plugins/forms/lang/mk.js | 68 + .../ckeditor/_source/plugins/forms/lang/mn.js | 68 + .../ckeditor/_source/plugins/forms/lang/ms.js | 68 + .../ckeditor/_source/plugins/forms/lang/nb.js | 68 + .../ckeditor/_source/plugins/forms/lang/nl.js | 68 + .../ckeditor/_source/plugins/forms/lang/no.js | 68 + .../ckeditor/_source/plugins/forms/lang/pl.js | 68 + .../_source/plugins/forms/lang/pt-br.js | 68 + .../ckeditor/_source/plugins/forms/lang/pt.js | 68 + .../ckeditor/_source/plugins/forms/lang/ro.js | 68 + .../ckeditor/_source/plugins/forms/lang/ru.js | 68 + .../ckeditor/_source/plugins/forms/lang/si.js | 68 + .../ckeditor/_source/plugins/forms/lang/sk.js | 68 + .../ckeditor/_source/plugins/forms/lang/sl.js | 68 + .../ckeditor/_source/plugins/forms/lang/sq.js | 68 + .../_source/plugins/forms/lang/sr-latn.js | 68 + .../ckeditor/_source/plugins/forms/lang/sr.js | 68 + .../ckeditor/_source/plugins/forms/lang/sv.js | 68 + .../ckeditor/_source/plugins/forms/lang/th.js | 68 + .../ckeditor/_source/plugins/forms/lang/tr.js | 68 + .../ckeditor/_source/plugins/forms/lang/ug.js | 68 + .../ckeditor/_source/plugins/forms/lang/uk.js | 68 + .../ckeditor/_source/plugins/forms/lang/vi.js | 68 + .../_source/plugins/forms/lang/zh-cn.js | 68 + .../ckeditor/_source/plugins/forms/lang/zh.js | 68 + .../ckeditor/_source/plugins/forms/plugin.js | 299 ++ .../icons/hidpi/horizontalrule.png | Bin 0 -> 939 bytes .../horizontalrule/icons/horizontalrule.png | Bin 0 -> 519 bytes .../_source/plugins/horizontalrule/lang/af.js | 7 + .../_source/plugins/horizontalrule/lang/ar.js | 7 + .../_source/plugins/horizontalrule/lang/bg.js | 7 + .../_source/plugins/horizontalrule/lang/bn.js | 7 + .../_source/plugins/horizontalrule/lang/bs.js | 7 + .../_source/plugins/horizontalrule/lang/ca.js | 7 + .../_source/plugins/horizontalrule/lang/cs.js | 7 + .../_source/plugins/horizontalrule/lang/cy.js | 7 + .../_source/plugins/horizontalrule/lang/da.js | 7 + .../_source/plugins/horizontalrule/lang/de.js | 7 + .../_source/plugins/horizontalrule/lang/el.js | 7 + .../plugins/horizontalrule/lang/en-au.js | 7 + .../plugins/horizontalrule/lang/en-ca.js | 7 + .../plugins/horizontalrule/lang/en-gb.js | 7 + .../_source/plugins/horizontalrule/lang/en.js | 7 + .../_source/plugins/horizontalrule/lang/eo.js | 7 + .../_source/plugins/horizontalrule/lang/es.js | 7 + .../_source/plugins/horizontalrule/lang/et.js | 7 + .../_source/plugins/horizontalrule/lang/eu.js | 7 + .../_source/plugins/horizontalrule/lang/fa.js | 7 + .../_source/plugins/horizontalrule/lang/fi.js | 7 + .../_source/plugins/horizontalrule/lang/fo.js | 7 + .../plugins/horizontalrule/lang/fr-ca.js | 7 + .../_source/plugins/horizontalrule/lang/fr.js | 7 + .../_source/plugins/horizontalrule/lang/gl.js | 7 + .../_source/plugins/horizontalrule/lang/gu.js | 7 + .../_source/plugins/horizontalrule/lang/he.js | 7 + .../_source/plugins/horizontalrule/lang/hi.js | 7 + .../_source/plugins/horizontalrule/lang/hr.js | 7 + .../_source/plugins/horizontalrule/lang/hu.js | 7 + .../_source/plugins/horizontalrule/lang/id.js | 7 + .../_source/plugins/horizontalrule/lang/is.js | 7 + .../_source/plugins/horizontalrule/lang/it.js | 7 + .../_source/plugins/horizontalrule/lang/ja.js | 7 + .../_source/plugins/horizontalrule/lang/ka.js | 7 + .../_source/plugins/horizontalrule/lang/km.js | 7 + .../_source/plugins/horizontalrule/lang/ko.js | 7 + .../_source/plugins/horizontalrule/lang/ku.js | 7 + .../_source/plugins/horizontalrule/lang/lt.js | 7 + .../_source/plugins/horizontalrule/lang/lv.js | 7 + .../_source/plugins/horizontalrule/lang/mk.js | 7 + .../_source/plugins/horizontalrule/lang/mn.js | 7 + .../_source/plugins/horizontalrule/lang/ms.js | 7 + .../_source/plugins/horizontalrule/lang/nb.js | 7 + .../_source/plugins/horizontalrule/lang/nl.js | 7 + .../_source/plugins/horizontalrule/lang/no.js | 7 + .../_source/plugins/horizontalrule/lang/pl.js | 7 + .../plugins/horizontalrule/lang/pt-br.js | 7 + .../_source/plugins/horizontalrule/lang/pt.js | 7 + .../_source/plugins/horizontalrule/lang/ro.js | 7 + .../_source/plugins/horizontalrule/lang/ru.js | 7 + .../_source/plugins/horizontalrule/lang/si.js | 7 + .../_source/plugins/horizontalrule/lang/sk.js | 7 + .../_source/plugins/horizontalrule/lang/sl.js | 7 + .../_source/plugins/horizontalrule/lang/sq.js | 7 + .../plugins/horizontalrule/lang/sr-latn.js | 7 + .../_source/plugins/horizontalrule/lang/sr.js | 7 + .../_source/plugins/horizontalrule/lang/sv.js | 7 + .../_source/plugins/horizontalrule/lang/th.js | 7 + .../_source/plugins/horizontalrule/lang/tr.js | 7 + .../_source/plugins/horizontalrule/lang/ug.js | 7 + .../_source/plugins/horizontalrule/lang/uk.js | 7 + .../_source/plugins/horizontalrule/lang/vi.js | 7 + .../plugins/horizontalrule/lang/zh-cn.js | 7 + .../_source/plugins/horizontalrule/lang/zh.js | 7 + .../_source/plugins/horizontalrule/plugin.js | 41 + .../_source/plugins/htmlwriter/plugin.js | 359 ++ .../assets/outputforflash/outputforflash.fla | Bin .../assets/outputforflash/outputforflash.swf | Bin .../assets/outputforflash/swfobject.js | 5 + .../htmlwriter/samples}/outputforflash.html | 0 .../htmlwriter/samples}/outputhtml.html | 0 .../_source/plugins/iframe/dialogs/iframe.js | 218 ++ .../plugins/iframe/icons/hidpi/iframe.png | Bin .../plugins/iframe/icons/iframe.png | Bin .../plugins/iframe/images/placeholder.png | Bin 0 -> 449 bytes .../_source/plugins/iframe/lang/af.js | 11 + .../_source/plugins/iframe/lang/ar.js | 11 + .../_source/plugins/iframe/lang/bg.js | 11 + .../_source/plugins/iframe/lang/bn.js | 11 + .../_source/plugins/iframe/lang/bs.js | 11 + .../_source/plugins/iframe/lang/ca.js | 11 + .../_source/plugins/iframe/lang/cs.js | 11 + .../_source/plugins/iframe/lang/cy.js | 11 + .../_source/plugins/iframe/lang/da.js | 11 + .../_source/plugins/iframe/lang/de.js | 11 + .../_source/plugins/iframe/lang/el.js | 11 + .../_source/plugins/iframe/lang/en-au.js | 11 + .../_source/plugins/iframe/lang/en-ca.js | 11 + .../_source/plugins/iframe/lang/en-gb.js | 11 + .../_source/plugins/iframe/lang/en.js | 11 + .../_source/plugins/iframe/lang/eo.js | 11 + .../_source/plugins/iframe/lang/es.js | 11 + .../_source/plugins/iframe/lang/et.js | 11 + .../_source/plugins/iframe/lang/eu.js | 11 + .../_source/plugins/iframe/lang/fa.js | 11 + .../_source/plugins/iframe/lang/fi.js | 11 + .../_source/plugins/iframe/lang/fo.js | 11 + .../_source/plugins/iframe/lang/fr-ca.js | 11 + .../_source/plugins/iframe/lang/fr.js | 11 + .../_source/plugins/iframe/lang/gl.js | 11 + .../_source/plugins/iframe/lang/gu.js | 11 + .../_source/plugins/iframe/lang/he.js | 11 + .../_source/plugins/iframe/lang/hi.js | 11 + .../_source/plugins/iframe/lang/hr.js | 11 + .../_source/plugins/iframe/lang/hu.js | 11 + .../_source/plugins/iframe/lang/id.js | 11 + .../_source/plugins/iframe/lang/is.js | 11 + .../_source/plugins/iframe/lang/it.js | 11 + .../_source/plugins/iframe/lang/ja.js | 11 + .../_source/plugins/iframe/lang/ka.js | 11 + .../_source/plugins/iframe/lang/km.js | 11 + .../_source/plugins/iframe/lang/ko.js | 11 + .../_source/plugins/iframe/lang/ku.js | 11 + .../_source/plugins/iframe/lang/lt.js | 11 + .../_source/plugins/iframe/lang/lv.js | 11 + .../_source/plugins/iframe/lang/mk.js | 11 + .../_source/plugins/iframe/lang/mn.js | 11 + .../_source/plugins/iframe/lang/ms.js | 11 + .../_source/plugins/iframe/lang/nb.js | 11 + .../_source/plugins/iframe/lang/nl.js | 11 + .../_source/plugins/iframe/lang/no.js | 11 + .../_source/plugins/iframe/lang/pl.js | 11 + .../_source/plugins/iframe/lang/pt-br.js | 11 + .../_source/plugins/iframe/lang/pt.js | 11 + .../_source/plugins/iframe/lang/ro.js | 11 + .../_source/plugins/iframe/lang/ru.js | 11 + .../_source/plugins/iframe/lang/si.js | 11 + .../_source/plugins/iframe/lang/sk.js | 11 + .../_source/plugins/iframe/lang/sl.js | 11 + .../_source/plugins/iframe/lang/sq.js | 11 + .../_source/plugins/iframe/lang/sr-latn.js | 11 + .../_source/plugins/iframe/lang/sr.js | 11 + .../_source/plugins/iframe/lang/sv.js | 11 + .../_source/plugins/iframe/lang/th.js | 11 + .../_source/plugins/iframe/lang/tr.js | 11 + .../_source/plugins/iframe/lang/ug.js | 11 + .../_source/plugins/iframe/lang/uk.js | 11 + .../_source/plugins/iframe/lang/vi.js | 11 + .../_source/plugins/iframe/lang/zh-cn.js | 11 + .../_source/plugins/iframe/lang/zh.js | 11 + .../ckeditor/_source/plugins/iframe/plugin.js | 83 + .../_source/plugins/image/dialogs/image.js | 1216 ++++++ .../plugins/image}/icons/hidpi/image.png | Bin .../plugins/image}/icons/image.png | Bin .../_source/plugins/image/images/noimage.png | Bin 0 -> 2115 bytes .../ckeditor/_source/plugins/image/lang/af.js | 26 + .../ckeditor/_source/plugins/image/lang/ar.js | 26 + .../ckeditor/_source/plugins/image/lang/bg.js | 26 + .../ckeditor/_source/plugins/image/lang/bn.js | 26 + .../ckeditor/_source/plugins/image/lang/bs.js | 26 + .../ckeditor/_source/plugins/image/lang/ca.js | 26 + .../ckeditor/_source/plugins/image/lang/cs.js | 26 + .../ckeditor/_source/plugins/image/lang/cy.js | 26 + .../ckeditor/_source/plugins/image/lang/da.js | 26 + .../ckeditor/_source/plugins/image/lang/de.js | 26 + .../ckeditor/_source/plugins/image/lang/el.js | 26 + .../_source/plugins/image/lang/en-au.js | 26 + .../_source/plugins/image/lang/en-ca.js | 26 + .../_source/plugins/image/lang/en-gb.js | 26 + .../ckeditor/_source/plugins/image/lang/en.js | 26 + .../ckeditor/_source/plugins/image/lang/eo.js | 26 + .../ckeditor/_source/plugins/image/lang/es.js | 26 + .../ckeditor/_source/plugins/image/lang/et.js | 26 + .../ckeditor/_source/plugins/image/lang/eu.js | 26 + .../ckeditor/_source/plugins/image/lang/fa.js | 26 + .../ckeditor/_source/plugins/image/lang/fi.js | 26 + .../ckeditor/_source/plugins/image/lang/fo.js | 26 + .../_source/plugins/image/lang/fr-ca.js | 26 + .../ckeditor/_source/plugins/image/lang/fr.js | 26 + .../ckeditor/_source/plugins/image/lang/gl.js | 26 + .../ckeditor/_source/plugins/image/lang/gu.js | 26 + .../ckeditor/_source/plugins/image/lang/he.js | 26 + .../ckeditor/_source/plugins/image/lang/hi.js | 26 + .../ckeditor/_source/plugins/image/lang/hr.js | 26 + .../ckeditor/_source/plugins/image/lang/hu.js | 26 + .../ckeditor/_source/plugins/image/lang/id.js | 26 + .../ckeditor/_source/plugins/image/lang/is.js | 26 + .../ckeditor/_source/plugins/image/lang/it.js | 26 + .../ckeditor/_source/plugins/image/lang/ja.js | 26 + .../ckeditor/_source/plugins/image/lang/ka.js | 26 + .../ckeditor/_source/plugins/image/lang/km.js | 26 + .../ckeditor/_source/plugins/image/lang/ko.js | 26 + .../ckeditor/_source/plugins/image/lang/ku.js | 26 + .../ckeditor/_source/plugins/image/lang/lt.js | 26 + .../ckeditor/_source/plugins/image/lang/lv.js | 26 + .../ckeditor/_source/plugins/image/lang/mk.js | 26 + .../ckeditor/_source/plugins/image/lang/mn.js | 26 + .../ckeditor/_source/plugins/image/lang/ms.js | 26 + .../ckeditor/_source/plugins/image/lang/nb.js | 26 + .../ckeditor/_source/plugins/image/lang/nl.js | 26 + .../ckeditor/_source/plugins/image/lang/no.js | 26 + .../ckeditor/_source/plugins/image/lang/pl.js | 26 + .../_source/plugins/image/lang/pt-br.js | 26 + .../ckeditor/_source/plugins/image/lang/pt.js | 26 + .../ckeditor/_source/plugins/image/lang/ro.js | 26 + .../ckeditor/_source/plugins/image/lang/ru.js | 26 + .../ckeditor/_source/plugins/image/lang/si.js | 26 + .../ckeditor/_source/plugins/image/lang/sk.js | 26 + .../ckeditor/_source/plugins/image/lang/sl.js | 26 + .../ckeditor/_source/plugins/image/lang/sq.js | 26 + .../_source/plugins/image/lang/sr-latn.js | 26 + .../ckeditor/_source/plugins/image/lang/sr.js | 26 + .../ckeditor/_source/plugins/image/lang/sv.js | 26 + .../ckeditor/_source/plugins/image/lang/th.js | 26 + .../ckeditor/_source/plugins/image/lang/tr.js | 26 + .../ckeditor/_source/plugins/image/lang/ug.js | 26 + .../ckeditor/_source/plugins/image/lang/uk.js | 26 + .../ckeditor/_source/plugins/image/lang/vi.js | 26 + .../_source/plugins/image/lang/zh-cn.js | 26 + .../ckeditor/_source/plugins/image/lang/zh.js | 26 + .../ckeditor/_source/plugins/image/plugin.js | 170 + .../_source/plugins/indent/dev/indent.html | 289 ++ .../plugins/indent/icons/hidpi/indent-rtl.png | Bin 0 -> 1610 bytes .../plugins/indent/icons/hidpi/indent.png | Bin 0 -> 1573 bytes .../indent/icons/hidpi/outdent-rtl.png | Bin 0 -> 1584 bytes .../plugins/indent/icons/hidpi/outdent.png | Bin 0 -> 1598 bytes .../plugins/indent/icons/indent-rtl.png | Bin 0 -> 726 bytes .../_source/plugins/indent/icons/indent.png | Bin 0 -> 711 bytes .../plugins/indent/icons/outdent-rtl.png | Bin 0 -> 708 bytes .../_source/plugins/indent/icons/outdent.png | Bin 0 -> 699 bytes .../_source/plugins/indent/lang/af.js | 8 + .../_source/plugins/indent/lang/ar.js | 8 + .../_source/plugins/indent/lang/bg.js | 8 + .../_source/plugins/indent/lang/bn.js | 8 + .../_source/plugins/indent/lang/bs.js | 8 + .../_source/plugins/indent/lang/ca.js | 8 + .../_source/plugins/indent/lang/cs.js | 8 + .../_source/plugins/indent/lang/cy.js | 8 + .../_source/plugins/indent/lang/da.js | 8 + .../_source/plugins/indent/lang/de.js | 8 + .../_source/plugins/indent/lang/el.js | 8 + .../_source/plugins/indent/lang/en-au.js | 8 + .../_source/plugins/indent/lang/en-ca.js | 8 + .../_source/plugins/indent/lang/en-gb.js | 8 + .../_source/plugins/indent/lang/en.js | 8 + .../_source/plugins/indent/lang/eo.js | 8 + .../_source/plugins/indent/lang/es.js | 8 + .../_source/plugins/indent/lang/et.js | 8 + .../_source/plugins/indent/lang/eu.js | 8 + .../_source/plugins/indent/lang/fa.js | 8 + .../_source/plugins/indent/lang/fi.js | 8 + .../_source/plugins/indent/lang/fo.js | 8 + .../_source/plugins/indent/lang/fr-ca.js | 8 + .../_source/plugins/indent/lang/fr.js | 8 + .../_source/plugins/indent/lang/gl.js | 8 + .../_source/plugins/indent/lang/gu.js | 8 + .../_source/plugins/indent/lang/he.js | 8 + .../_source/plugins/indent/lang/hi.js | 8 + .../_source/plugins/indent/lang/hr.js | 8 + .../_source/plugins/indent/lang/hu.js | 8 + .../_source/plugins/indent/lang/id.js | 8 + .../_source/plugins/indent/lang/is.js | 8 + .../_source/plugins/indent/lang/it.js | 8 + .../_source/plugins/indent/lang/ja.js | 8 + .../_source/plugins/indent/lang/ka.js | 8 + .../_source/plugins/indent/lang/km.js | 8 + .../_source/plugins/indent/lang/ko.js | 8 + .../_source/plugins/indent/lang/ku.js | 8 + .../_source/plugins/indent/lang/lt.js | 8 + .../_source/plugins/indent/lang/lv.js | 8 + .../_source/plugins/indent/lang/mk.js | 8 + .../_source/plugins/indent/lang/mn.js | 8 + .../_source/plugins/indent/lang/ms.js | 8 + .../_source/plugins/indent/lang/nb.js | 8 + .../_source/plugins/indent/lang/nl.js | 8 + .../_source/plugins/indent/lang/no.js | 8 + .../_source/plugins/indent/lang/pl.js | 8 + .../_source/plugins/indent/lang/pt-br.js | 8 + .../_source/plugins/indent/lang/pt.js | 8 + .../_source/plugins/indent/lang/ro.js | 8 + .../_source/plugins/indent/lang/ru.js | 8 + .../_source/plugins/indent/lang/si.js | 8 + .../_source/plugins/indent/lang/sk.js | 8 + .../_source/plugins/indent/lang/sl.js | 8 + .../_source/plugins/indent/lang/sq.js | 8 + .../_source/plugins/indent/lang/sr-latn.js | 8 + .../_source/plugins/indent/lang/sr.js | 8 + .../_source/plugins/indent/lang/sv.js | 8 + .../_source/plugins/indent/lang/th.js | 8 + .../_source/plugins/indent/lang/tr.js | 8 + .../_source/plugins/indent/lang/ug.js | 8 + .../_source/plugins/indent/lang/uk.js | 8 + .../_source/plugins/indent/lang/vi.js | 8 + .../_source/plugins/indent/lang/zh-cn.js | 8 + .../_source/plugins/indent/lang/zh.js | 8 + .../ckeditor/_source/plugins/indent/plugin.js | 461 +++ .../_source/plugins/indentblock/plugin.js | 309 ++ .../_source/plugins/indentlist/plugin.js | 298 ++ .../justify/icons/hidpi/justifyblock.png | Bin .../justify/icons/hidpi/justifycenter.png | Bin .../justify/icons/hidpi/justifyleft.png | Bin .../justify/icons/hidpi/justifyright.png | Bin .../plugins/justify/icons/justifyblock.png | Bin .../plugins/justify/icons/justifycenter.png | Bin .../plugins/justify/icons/justifyleft.png | Bin .../plugins/justify/icons/justifyright.png | Bin .../_source/plugins/justify/lang/af.js | 10 + .../_source/plugins/justify/lang/ar.js | 10 + .../_source/plugins/justify/lang/bg.js | 10 + .../_source/plugins/justify/lang/bn.js | 10 + .../_source/plugins/justify/lang/bs.js | 10 + .../_source/plugins/justify/lang/ca.js | 10 + .../_source/plugins/justify/lang/cs.js | 10 + .../_source/plugins/justify/lang/cy.js | 10 + .../_source/plugins/justify/lang/da.js | 10 + .../_source/plugins/justify/lang/de.js | 10 + .../_source/plugins/justify/lang/el.js | 10 + .../_source/plugins/justify/lang/en-au.js | 10 + .../_source/plugins/justify/lang/en-ca.js | 10 + .../_source/plugins/justify/lang/en-gb.js | 10 + .../_source/plugins/justify/lang/en.js | 10 + .../_source/plugins/justify/lang/eo.js | 10 + .../_source/plugins/justify/lang/es.js | 10 + .../_source/plugins/justify/lang/et.js | 10 + .../_source/plugins/justify/lang/eu.js | 10 + .../_source/plugins/justify/lang/fa.js | 10 + .../_source/plugins/justify/lang/fi.js | 10 + .../_source/plugins/justify/lang/fo.js | 10 + .../_source/plugins/justify/lang/fr-ca.js | 10 + .../_source/plugins/justify/lang/fr.js | 10 + .../_source/plugins/justify/lang/gl.js | 10 + .../_source/plugins/justify/lang/gu.js | 10 + .../_source/plugins/justify/lang/he.js | 10 + .../_source/plugins/justify/lang/hi.js | 10 + .../_source/plugins/justify/lang/hr.js | 10 + .../_source/plugins/justify/lang/hu.js | 10 + .../_source/plugins/justify/lang/id.js | 10 + .../_source/plugins/justify/lang/is.js | 10 + .../_source/plugins/justify/lang/it.js | 10 + .../_source/plugins/justify/lang/ja.js | 10 + .../_source/plugins/justify/lang/ka.js | 10 + .../_source/plugins/justify/lang/km.js | 10 + .../_source/plugins/justify/lang/ko.js | 10 + .../_source/plugins/justify/lang/ku.js | 10 + .../_source/plugins/justify/lang/lt.js | 10 + .../_source/plugins/justify/lang/lv.js | 10 + .../_source/plugins/justify/lang/mk.js | 10 + .../_source/plugins/justify/lang/mn.js | 10 + .../_source/plugins/justify/lang/ms.js | 10 + .../_source/plugins/justify/lang/nb.js | 10 + .../_source/plugins/justify/lang/nl.js | 10 + .../_source/plugins/justify/lang/no.js | 10 + .../_source/plugins/justify/lang/pl.js | 10 + .../_source/plugins/justify/lang/pt-br.js | 10 + .../_source/plugins/justify/lang/pt.js | 10 + .../_source/plugins/justify/lang/ro.js | 10 + .../_source/plugins/justify/lang/ru.js | 10 + .../_source/plugins/justify/lang/si.js | 10 + .../_source/plugins/justify/lang/sk.js | 10 + .../_source/plugins/justify/lang/sl.js | 10 + .../_source/plugins/justify/lang/sq.js | 10 + .../_source/plugins/justify/lang/sr-latn.js | 10 + .../_source/plugins/justify/lang/sr.js | 10 + .../_source/plugins/justify/lang/sv.js | 10 + .../_source/plugins/justify/lang/th.js | 10 + .../_source/plugins/justify/lang/tr.js | 10 + .../_source/plugins/justify/lang/ug.js | 10 + .../_source/plugins/justify/lang/uk.js | 10 + .../_source/plugins/justify/lang/vi.js | 10 + .../_source/plugins/justify/lang/zh-cn.js | 10 + .../_source/plugins/justify/lang/zh.js | 10 + .../_source/plugins/justify/plugin.js | 241 ++ .../plugins/language/icons/hidpi/language.png | Bin .../plugins/language/icons/language.png | Bin .../_source/plugins/language/lang/ca.js | 9 + .../_source/plugins/language/lang/cs.js | 9 + .../_source/plugins/language/lang/cy.js | 9 + .../_source/plugins/language/lang/el.js | 9 + .../_source/plugins/language/lang/en-gb.js | 9 + .../_source/plugins/language/lang/en.js | 9 + .../_source/plugins/language/lang/es.js | 9 + .../_source/plugins/language/lang/fa.js | 9 + .../_source/plugins/language/lang/fi.js | 9 + .../_source/plugins/language/lang/fr.js | 9 + .../_source/plugins/language/lang/gl.js | 9 + .../_source/plugins/language/lang/hu.js | 9 + .../_source/plugins/language/lang/ja.js | 9 + .../_source/plugins/language/lang/km.js | 9 + .../_source/plugins/language/lang/nb.js | 9 + .../_source/plugins/language/lang/nl.js | 9 + .../_source/plugins/language/lang/no.js | 9 + .../_source/plugins/language/lang/pl.js | 9 + .../_source/plugins/language/lang/pt-br.js | 9 + .../_source/plugins/language/lang/pt.js | 9 + .../_source/plugins/language/lang/ru.js | 9 + .../_source/plugins/language/lang/sl.js | 9 + .../_source/plugins/language/lang/sv.js | 9 + .../_source/plugins/language/lang/uk.js | 9 + .../_source/plugins/language/lang/zh-cn.js | 9 + .../_source/plugins/language/lang/zh.js | 9 + .../_source/plugins/language/plugin.js | 166 + .../_source/plugins/link/dialogs/anchor.js | 120 + .../_source/plugins/link/dialogs/link.js | 1268 +++++++ .../_source/plugins/link/icons/anchor-rtl.png | Bin 0 -> 764 bytes .../_source/plugins/link/icons/anchor.png | Bin 0 -> 757 bytes .../plugins/link/icons/hidpi/anchor-rtl.png | Bin 0 -> 1654 bytes .../plugins/link/icons/hidpi/anchor.png | Bin 0 -> 1633 bytes .../_source/plugins/link/icons/hidpi/link.png | Bin 0 -> 1620 bytes .../plugins/link/icons/hidpi/unlink.png | Bin 0 -> 2209 bytes .../_source/plugins/link/icons/link.png | Bin 0 -> 656 bytes .../_source/plugins/link/icons/unlink.png | Bin 0 -> 812 bytes .../_source/plugins/link/images/anchor.png | Bin 0 -> 763 bytes .../plugins/link/images/hidpi/anchor.png | Bin 0 -> 1597 bytes .../ckeditor/_source/plugins/link/lang/af.js | 65 + .../ckeditor/_source/plugins/link/lang/ar.js | 65 + .../ckeditor/_source/plugins/link/lang/bg.js | 65 + .../ckeditor/_source/plugins/link/lang/bn.js | 65 + .../ckeditor/_source/plugins/link/lang/bs.js | 65 + .../ckeditor/_source/plugins/link/lang/ca.js | 65 + .../ckeditor/_source/plugins/link/lang/cs.js | 65 + .../ckeditor/_source/plugins/link/lang/cy.js | 65 + .../ckeditor/_source/plugins/link/lang/da.js | 65 + .../ckeditor/_source/plugins/link/lang/de.js | 65 + .../ckeditor/_source/plugins/link/lang/el.js | 65 + .../_source/plugins/link/lang/en-au.js | 65 + .../_source/plugins/link/lang/en-ca.js | 65 + .../_source/plugins/link/lang/en-gb.js | 65 + .../ckeditor/_source/plugins/link/lang/en.js | 65 + .../ckeditor/_source/plugins/link/lang/eo.js | 65 + .../ckeditor/_source/plugins/link/lang/es.js | 65 + .../ckeditor/_source/plugins/link/lang/et.js | 65 + .../ckeditor/_source/plugins/link/lang/eu.js | 65 + .../ckeditor/_source/plugins/link/lang/fa.js | 65 + .../ckeditor/_source/plugins/link/lang/fi.js | 65 + .../ckeditor/_source/plugins/link/lang/fo.js | 65 + .../_source/plugins/link/lang/fr-ca.js | 65 + .../ckeditor/_source/plugins/link/lang/fr.js | 65 + .../ckeditor/_source/plugins/link/lang/gl.js | 65 + .../ckeditor/_source/plugins/link/lang/gu.js | 65 + .../ckeditor/_source/plugins/link/lang/he.js | 65 + .../ckeditor/_source/plugins/link/lang/hi.js | 65 + .../ckeditor/_source/plugins/link/lang/hr.js | 65 + .../ckeditor/_source/plugins/link/lang/hu.js | 65 + .../ckeditor/_source/plugins/link/lang/id.js | 65 + .../ckeditor/_source/plugins/link/lang/is.js | 65 + .../ckeditor/_source/plugins/link/lang/it.js | 65 + .../ckeditor/_source/plugins/link/lang/ja.js | 65 + .../ckeditor/_source/plugins/link/lang/ka.js | 65 + .../ckeditor/_source/plugins/link/lang/km.js | 65 + .../ckeditor/_source/plugins/link/lang/ko.js | 65 + .../ckeditor/_source/plugins/link/lang/ku.js | 65 + .../ckeditor/_source/plugins/link/lang/lt.js | 65 + .../ckeditor/_source/plugins/link/lang/lv.js | 65 + .../ckeditor/_source/plugins/link/lang/mk.js | 65 + .../ckeditor/_source/plugins/link/lang/mn.js | 65 + .../ckeditor/_source/plugins/link/lang/ms.js | 65 + .../ckeditor/_source/plugins/link/lang/nb.js | 65 + .../ckeditor/_source/plugins/link/lang/nl.js | 65 + .../ckeditor/_source/plugins/link/lang/no.js | 65 + .../ckeditor/_source/plugins/link/lang/pl.js | 65 + .../_source/plugins/link/lang/pt-br.js | 65 + .../ckeditor/_source/plugins/link/lang/pt.js | 65 + .../ckeditor/_source/plugins/link/lang/ro.js | 65 + .../ckeditor/_source/plugins/link/lang/ru.js | 65 + .../ckeditor/_source/plugins/link/lang/si.js | 65 + .../ckeditor/_source/plugins/link/lang/sk.js | 65 + .../ckeditor/_source/plugins/link/lang/sl.js | 65 + .../ckeditor/_source/plugins/link/lang/sq.js | 65 + .../_source/plugins/link/lang/sr-latn.js | 65 + .../ckeditor/_source/plugins/link/lang/sr.js | 65 + .../ckeditor/_source/plugins/link/lang/sv.js | 65 + .../ckeditor/_source/plugins/link/lang/th.js | 65 + .../ckeditor/_source/plugins/link/lang/tr.js | 65 + .../ckeditor/_source/plugins/link/lang/ug.js | 65 + .../ckeditor/_source/plugins/link/lang/uk.js | 65 + .../ckeditor/_source/plugins/link/lang/vi.js | 65 + .../_source/plugins/link/lang/zh-cn.js | 65 + .../ckeditor/_source/plugins/link/lang/zh.js | 65 + .../ckeditor/_source/plugins/link/plugin.js | 422 +++ .../plugins/list/icons/bulletedlist-rtl.png | Bin 0 -> 647 bytes .../plugins/list/icons/bulletedlist.png | Bin 0 -> 646 bytes .../list/icons/hidpi/bulletedlist-rtl.png | Bin 0 -> 1451 bytes .../plugins/list/icons/hidpi/bulletedlist.png | Bin 0 -> 1441 bytes .../list/icons/hidpi/numberedlist-rtl.png | Bin 0 -> 1248 bytes .../plugins/list/icons/hidpi/numberedlist.png | Bin 0 -> 1218 bytes .../plugins/list/icons/numberedlist-rtl.png | Bin 0 -> 666 bytes .../plugins/list/icons/numberedlist.png | Bin 0 -> 645 bytes .../ckeditor/_source/plugins/list/lang/af.js | 8 + .../ckeditor/_source/plugins/list/lang/ar.js | 8 + .../ckeditor/_source/plugins/list/lang/bg.js | 8 + .../ckeditor/_source/plugins/list/lang/bn.js | 8 + .../ckeditor/_source/plugins/list/lang/bs.js | 8 + .../ckeditor/_source/plugins/list/lang/ca.js | 8 + .../ckeditor/_source/plugins/list/lang/cs.js | 8 + .../ckeditor/_source/plugins/list/lang/cy.js | 8 + .../ckeditor/_source/plugins/list/lang/da.js | 8 + .../ckeditor/_source/plugins/list/lang/de.js | 8 + .../ckeditor/_source/plugins/list/lang/el.js | 8 + .../_source/plugins/list/lang/en-au.js | 8 + .../_source/plugins/list/lang/en-ca.js | 8 + .../_source/plugins/list/lang/en-gb.js | 8 + .../ckeditor/_source/plugins/list/lang/en.js | 8 + .../ckeditor/_source/plugins/list/lang/eo.js | 8 + .../ckeditor/_source/plugins/list/lang/es.js | 8 + .../ckeditor/_source/plugins/list/lang/et.js | 8 + .../ckeditor/_source/plugins/list/lang/eu.js | 8 + .../ckeditor/_source/plugins/list/lang/fa.js | 8 + .../ckeditor/_source/plugins/list/lang/fi.js | 8 + .../ckeditor/_source/plugins/list/lang/fo.js | 8 + .../_source/plugins/list/lang/fr-ca.js | 8 + .../ckeditor/_source/plugins/list/lang/fr.js | 8 + .../ckeditor/_source/plugins/list/lang/gl.js | 8 + .../ckeditor/_source/plugins/list/lang/gu.js | 8 + .../ckeditor/_source/plugins/list/lang/he.js | 8 + .../ckeditor/_source/plugins/list/lang/hi.js | 8 + .../ckeditor/_source/plugins/list/lang/hr.js | 8 + .../ckeditor/_source/plugins/list/lang/hu.js | 8 + .../ckeditor/_source/plugins/list/lang/id.js | 8 + .../ckeditor/_source/plugins/list/lang/is.js | 8 + .../ckeditor/_source/plugins/list/lang/it.js | 8 + .../ckeditor/_source/plugins/list/lang/ja.js | 8 + .../ckeditor/_source/plugins/list/lang/ka.js | 8 + .../ckeditor/_source/plugins/list/lang/km.js | 8 + .../ckeditor/_source/plugins/list/lang/ko.js | 8 + .../ckeditor/_source/plugins/list/lang/ku.js | 8 + .../ckeditor/_source/plugins/list/lang/lt.js | 8 + .../ckeditor/_source/plugins/list/lang/lv.js | 8 + .../ckeditor/_source/plugins/list/lang/mk.js | 8 + .../ckeditor/_source/plugins/list/lang/mn.js | 8 + .../ckeditor/_source/plugins/list/lang/ms.js | 8 + .../ckeditor/_source/plugins/list/lang/nb.js | 8 + .../ckeditor/_source/plugins/list/lang/nl.js | 8 + .../ckeditor/_source/plugins/list/lang/no.js | 8 + .../ckeditor/_source/plugins/list/lang/pl.js | 8 + .../_source/plugins/list/lang/pt-br.js | 8 + .../ckeditor/_source/plugins/list/lang/pt.js | 8 + .../ckeditor/_source/plugins/list/lang/ro.js | 8 + .../ckeditor/_source/plugins/list/lang/ru.js | 8 + .../ckeditor/_source/plugins/list/lang/si.js | 8 + .../ckeditor/_source/plugins/list/lang/sk.js | 8 + .../ckeditor/_source/plugins/list/lang/sl.js | 8 + .../ckeditor/_source/plugins/list/lang/sq.js | 8 + .../_source/plugins/list/lang/sr-latn.js | 8 + .../ckeditor/_source/plugins/list/lang/sr.js | 8 + .../ckeditor/_source/plugins/list/lang/sv.js | 8 + .../ckeditor/_source/plugins/list/lang/th.js | 8 + .../ckeditor/_source/plugins/list/lang/tr.js | 8 + .../ckeditor/_source/plugins/list/lang/ug.js | 8 + .../ckeditor/_source/plugins/list/lang/uk.js | 8 + .../ckeditor/_source/plugins/list/lang/vi.js | 8 + .../_source/plugins/list/lang/zh-cn.js | 8 + .../ckeditor/_source/plugins/list/lang/zh.js | 8 + .../ckeditor/_source/plugins/list/plugin.js | 1032 ++++++ .../_source/plugins/listblock/plugin.js | 240 ++ .../plugins/liststyle/dialogs/liststyle.js | 199 + .../_source/plugins/liststyle/lang/af.js | 25 + .../_source/plugins/liststyle/lang/ar.js | 25 + .../_source/plugins/liststyle/lang/bg.js | 25 + .../_source/plugins/liststyle/lang/bn.js | 25 + .../_source/plugins/liststyle/lang/bs.js | 25 + .../_source/plugins/liststyle/lang/ca.js | 25 + .../_source/plugins/liststyle/lang/cs.js | 25 + .../_source/plugins/liststyle/lang/cy.js | 25 + .../_source/plugins/liststyle/lang/da.js | 25 + .../_source/plugins/liststyle/lang/de.js | 25 + .../_source/plugins/liststyle/lang/el.js | 25 + .../_source/plugins/liststyle/lang/en-au.js | 25 + .../_source/plugins/liststyle/lang/en-ca.js | 25 + .../_source/plugins/liststyle/lang/en-gb.js | 25 + .../_source/plugins/liststyle/lang/en.js | 25 + .../_source/plugins/liststyle/lang/eo.js | 25 + .../_source/plugins/liststyle/lang/es.js | 25 + .../_source/plugins/liststyle/lang/et.js | 25 + .../_source/plugins/liststyle/lang/eu.js | 25 + .../_source/plugins/liststyle/lang/fa.js | 25 + .../_source/plugins/liststyle/lang/fi.js | 25 + .../_source/plugins/liststyle/lang/fo.js | 25 + .../_source/plugins/liststyle/lang/fr-ca.js | 25 + .../_source/plugins/liststyle/lang/fr.js | 25 + .../_source/plugins/liststyle/lang/gl.js | 25 + .../_source/plugins/liststyle/lang/gu.js | 25 + .../_source/plugins/liststyle/lang/he.js | 25 + .../_source/plugins/liststyle/lang/hi.js | 25 + .../_source/plugins/liststyle/lang/hr.js | 25 + .../_source/plugins/liststyle/lang/hu.js | 25 + .../_source/plugins/liststyle/lang/id.js | 25 + .../_source/plugins/liststyle/lang/is.js | 25 + .../_source/plugins/liststyle/lang/it.js | 25 + .../_source/plugins/liststyle/lang/ja.js | 25 + .../_source/plugins/liststyle/lang/ka.js | 25 + .../_source/plugins/liststyle/lang/km.js | 25 + .../_source/plugins/liststyle/lang/ko.js | 25 + .../_source/plugins/liststyle/lang/ku.js | 25 + .../_source/plugins/liststyle/lang/lt.js | 25 + .../_source/plugins/liststyle/lang/lv.js | 25 + .../_source/plugins/liststyle/lang/mk.js | 25 + .../_source/plugins/liststyle/lang/mn.js | 25 + .../_source/plugins/liststyle/lang/ms.js | 25 + .../_source/plugins/liststyle/lang/nb.js | 25 + .../_source/plugins/liststyle/lang/nl.js | 25 + .../_source/plugins/liststyle/lang/no.js | 25 + .../_source/plugins/liststyle/lang/pl.js | 25 + .../_source/plugins/liststyle/lang/pt-br.js | 25 + .../_source/plugins/liststyle/lang/pt.js | 25 + .../_source/plugins/liststyle/lang/ro.js | 25 + .../_source/plugins/liststyle/lang/ru.js | 25 + .../_source/plugins/liststyle/lang/si.js | 25 + .../_source/plugins/liststyle/lang/sk.js | 25 + .../_source/plugins/liststyle/lang/sl.js | 25 + .../_source/plugins/liststyle/lang/sq.js | 25 + .../_source/plugins/liststyle/lang/sr-latn.js | 25 + .../_source/plugins/liststyle/lang/sr.js | 25 + .../_source/plugins/liststyle/lang/sv.js | 25 + .../_source/plugins/liststyle/lang/th.js | 25 + .../_source/plugins/liststyle/lang/tr.js | 25 + .../_source/plugins/liststyle/lang/ug.js | 25 + .../_source/plugins/liststyle/lang/uk.js | 25 + .../_source/plugins/liststyle/lang/vi.js | 25 + .../_source/plugins/liststyle/lang/zh-cn.js | 25 + .../_source/plugins/liststyle/lang/zh.js | 25 + .../_source/plugins/liststyle/plugin.js | 67 + .../plugins/magicline/dev/magicline.html | 594 +++ .../plugins/magicline/images/hidpi/icon.png | Bin 0 -> 260 bytes .../_source/plugins/magicline/images/icon.png | Bin 0 -> 172 bytes .../_source/plugins/magicline/lang/ar.js | 8 + .../_source/plugins/magicline/lang/bg.js | 8 + .../_source/plugins/magicline/lang/ca.js | 8 + .../_source/plugins/magicline/lang/cs.js | 8 + .../_source/plugins/magicline/lang/cy.js | 8 + .../_source/plugins/magicline/lang/de.js | 8 + .../_source/plugins/magicline/lang/el.js | 8 + .../_source/plugins/magicline/lang/en-gb.js | 8 + .../_source/plugins/magicline/lang/en.js | 8 + .../_source/plugins/magicline/lang/eo.js | 8 + .../_source/plugins/magicline/lang/es.js | 8 + .../_source/plugins/magicline/lang/et.js | 8 + .../_source/plugins/magicline/lang/eu.js | 8 + .../_source/plugins/magicline/lang/fa.js | 8 + .../_source/plugins/magicline/lang/fi.js | 8 + .../_source/plugins/magicline/lang/fr-ca.js | 8 + .../_source/plugins/magicline/lang/fr.js | 8 + .../_source/plugins/magicline/lang/gl.js | 8 + .../_source/plugins/magicline/lang/he.js | 8 + .../_source/plugins/magicline/lang/hr.js | 8 + .../_source/plugins/magicline/lang/hu.js | 8 + .../_source/plugins/magicline/lang/id.js | 8 + .../_source/plugins/magicline/lang/it.js | 8 + .../_source/plugins/magicline/lang/ja.js | 8 + .../_source/plugins/magicline/lang/km.js | 8 + .../_source/plugins/magicline/lang/ko.js | 8 + .../_source/plugins/magicline/lang/ku.js | 8 + .../_source/plugins/magicline/lang/lv.js | 8 + .../_source/plugins/magicline/lang/nb.js | 8 + .../_source/plugins/magicline/lang/nl.js | 8 + .../_source/plugins/magicline/lang/no.js | 8 + .../_source/plugins/magicline/lang/pl.js | 8 + .../_source/plugins/magicline/lang/pt-br.js | 8 + .../_source/plugins/magicline/lang/pt.js | 8 + .../_source/plugins/magicline/lang/ru.js | 8 + .../_source/plugins/magicline/lang/si.js | 8 + .../_source/plugins/magicline/lang/sk.js | 8 + .../_source/plugins/magicline/lang/sl.js | 8 + .../_source/plugins/magicline/lang/sq.js | 8 + .../_source/plugins/magicline/lang/sv.js | 8 + .../_source/plugins/magicline/lang/tr.js | 8 + .../_source/plugins/magicline/lang/ug.js | 8 + .../_source/plugins/magicline/lang/uk.js | 8 + .../_source/plugins/magicline/lang/vi.js | 8 + .../_source/plugins/magicline/lang/zh-cn.js | 8 + .../_source/plugins/magicline/lang/zh.js | 8 + .../_source/plugins/magicline/plugin.js | 1838 ++++++++++ .../plugins/magicline/samples}/magicline.html | 0 .../plugins/maximize/icons/hidpi/maximize.png | Bin 0 -> 2462 bytes .../plugins/maximize/icons/maximize.png | Bin 0 -> 921 bytes .../_source/plugins/maximize/lang/af.js | 8 + .../_source/plugins/maximize/lang/ar.js | 8 + .../_source/plugins/maximize/lang/bg.js | 8 + .../_source/plugins/maximize/lang/bn.js | 8 + .../_source/plugins/maximize/lang/bs.js | 8 + .../_source/plugins/maximize/lang/ca.js | 8 + .../_source/plugins/maximize/lang/cs.js | 8 + .../_source/plugins/maximize/lang/cy.js | 8 + .../_source/plugins/maximize/lang/da.js | 8 + .../_source/plugins/maximize/lang/de.js | 8 + .../_source/plugins/maximize/lang/el.js | 8 + .../_source/plugins/maximize/lang/en-au.js | 8 + .../_source/plugins/maximize/lang/en-ca.js | 8 + .../_source/plugins/maximize/lang/en-gb.js | 8 + .../_source/plugins/maximize/lang/en.js | 8 + .../_source/plugins/maximize/lang/eo.js | 8 + .../_source/plugins/maximize/lang/es.js | 8 + .../_source/plugins/maximize/lang/et.js | 8 + .../_source/plugins/maximize/lang/eu.js | 8 + .../_source/plugins/maximize/lang/fa.js | 8 + .../_source/plugins/maximize/lang/fi.js | 8 + .../_source/plugins/maximize/lang/fo.js | 8 + .../_source/plugins/maximize/lang/fr-ca.js | 8 + .../_source/plugins/maximize/lang/fr.js | 8 + .../_source/plugins/maximize/lang/gl.js | 8 + .../_source/plugins/maximize/lang/gu.js | 8 + .../_source/plugins/maximize/lang/he.js | 8 + .../_source/plugins/maximize/lang/hi.js | 8 + .../_source/plugins/maximize/lang/hr.js | 8 + .../_source/plugins/maximize/lang/hu.js | 8 + .../_source/plugins/maximize/lang/id.js | 8 + .../_source/plugins/maximize/lang/is.js | 8 + .../_source/plugins/maximize/lang/it.js | 8 + .../_source/plugins/maximize/lang/ja.js | 8 + .../_source/plugins/maximize/lang/ka.js | 8 + .../_source/plugins/maximize/lang/km.js | 8 + .../_source/plugins/maximize/lang/ko.js | 8 + .../_source/plugins/maximize/lang/ku.js | 8 + .../_source/plugins/maximize/lang/lt.js | 8 + .../_source/plugins/maximize/lang/lv.js | 8 + .../_source/plugins/maximize/lang/mk.js | 8 + .../_source/plugins/maximize/lang/mn.js | 8 + .../_source/plugins/maximize/lang/ms.js | 8 + .../_source/plugins/maximize/lang/nb.js | 8 + .../_source/plugins/maximize/lang/nl.js | 8 + .../_source/plugins/maximize/lang/no.js | 8 + .../_source/plugins/maximize/lang/pl.js | 8 + .../_source/plugins/maximize/lang/pt-br.js | 8 + .../_source/plugins/maximize/lang/pt.js | 8 + .../_source/plugins/maximize/lang/ro.js | 8 + .../_source/plugins/maximize/lang/ru.js | 8 + .../_source/plugins/maximize/lang/si.js | 8 + .../_source/plugins/maximize/lang/sk.js | 8 + .../_source/plugins/maximize/lang/sl.js | 8 + .../_source/plugins/maximize/lang/sq.js | 8 + .../_source/plugins/maximize/lang/sr-latn.js | 8 + .../_source/plugins/maximize/lang/sr.js | 8 + .../_source/plugins/maximize/lang/sv.js | 8 + .../_source/plugins/maximize/lang/th.js | 8 + .../_source/plugins/maximize/lang/tr.js | 8 + .../_source/plugins/maximize/lang/ug.js | 8 + .../_source/plugins/maximize/lang/uk.js | 8 + .../_source/plugins/maximize/lang/vi.js | 8 + .../_source/plugins/maximize/lang/zh-cn.js | 8 + .../_source/plugins/maximize/lang/zh.js | 8 + .../_source/plugins/maximize/plugin.js | 305 ++ .../ckeditor/_source/plugins/menu/plugin.js | 545 +++ .../_source/plugins/menubutton/plugin.js | 102 + .../newpage/icons/hidpi/newpage-rtl.png | Bin .../plugins/newpage/icons/hidpi/newpage.png | Bin .../plugins/newpage/icons/newpage-rtl.png | Bin .../plugins/newpage/icons/newpage.png | Bin .../_source/plugins/newpage/lang/af.js | 7 + .../_source/plugins/newpage/lang/ar.js | 7 + .../_source/plugins/newpage/lang/bg.js | 7 + .../_source/plugins/newpage/lang/bn.js | 7 + .../_source/plugins/newpage/lang/bs.js | 7 + .../_source/plugins/newpage/lang/ca.js | 7 + .../_source/plugins/newpage/lang/cs.js | 7 + .../_source/plugins/newpage/lang/cy.js | 7 + .../_source/plugins/newpage/lang/da.js | 7 + .../_source/plugins/newpage/lang/de.js | 7 + .../_source/plugins/newpage/lang/el.js | 7 + .../_source/plugins/newpage/lang/en-au.js | 7 + .../_source/plugins/newpage/lang/en-ca.js | 7 + .../_source/plugins/newpage/lang/en-gb.js | 7 + .../_source/plugins/newpage/lang/en.js | 7 + .../_source/plugins/newpage/lang/eo.js | 7 + .../_source/plugins/newpage/lang/es.js | 7 + .../_source/plugins/newpage/lang/et.js | 7 + .../_source/plugins/newpage/lang/eu.js | 7 + .../_source/plugins/newpage/lang/fa.js | 7 + .../_source/plugins/newpage/lang/fi.js | 7 + .../_source/plugins/newpage/lang/fo.js | 7 + .../_source/plugins/newpage/lang/fr-ca.js | 7 + .../_source/plugins/newpage/lang/fr.js | 7 + .../_source/plugins/newpage/lang/gl.js | 7 + .../_source/plugins/newpage/lang/gu.js | 7 + .../_source/plugins/newpage/lang/he.js | 7 + .../_source/plugins/newpage/lang/hi.js | 7 + .../_source/plugins/newpage/lang/hr.js | 7 + .../_source/plugins/newpage/lang/hu.js | 7 + .../_source/plugins/newpage/lang/id.js | 7 + .../_source/plugins/newpage/lang/is.js | 7 + .../_source/plugins/newpage/lang/it.js | 7 + .../_source/plugins/newpage/lang/ja.js | 7 + .../_source/plugins/newpage/lang/ka.js | 7 + .../_source/plugins/newpage/lang/km.js | 7 + .../_source/plugins/newpage/lang/ko.js | 7 + .../_source/plugins/newpage/lang/ku.js | 7 + .../_source/plugins/newpage/lang/lt.js | 7 + .../_source/plugins/newpage/lang/lv.js | 7 + .../_source/plugins/newpage/lang/mk.js | 7 + .../_source/plugins/newpage/lang/mn.js | 7 + .../_source/plugins/newpage/lang/ms.js | 7 + .../_source/plugins/newpage/lang/nb.js | 7 + .../_source/plugins/newpage/lang/nl.js | 7 + .../_source/plugins/newpage/lang/no.js | 7 + .../_source/plugins/newpage/lang/pl.js | 7 + .../_source/plugins/newpage/lang/pt-br.js | 7 + .../_source/plugins/newpage/lang/pt.js | 7 + .../_source/plugins/newpage/lang/ro.js | 7 + .../_source/plugins/newpage/lang/ru.js | 7 + .../_source/plugins/newpage/lang/si.js | 7 + .../_source/plugins/newpage/lang/sk.js | 7 + .../_source/plugins/newpage/lang/sl.js | 7 + .../_source/plugins/newpage/lang/sq.js | 7 + .../_source/plugins/newpage/lang/sr-latn.js | 7 + .../_source/plugins/newpage/lang/sr.js | 7 + .../_source/plugins/newpage/lang/sv.js | 7 + .../_source/plugins/newpage/lang/th.js | 7 + .../_source/plugins/newpage/lang/tr.js | 7 + .../_source/plugins/newpage/lang/ug.js | 7 + .../_source/plugins/newpage/lang/uk.js | 7 + .../_source/plugins/newpage/lang/vi.js | 7 + .../_source/plugins/newpage/lang/zh-cn.js | 7 + .../_source/plugins/newpage/lang/zh.js | 7 + .../_source/plugins/newpage/plugin.js | 51 + .../pagebreak/icons/hidpi/pagebreak-rtl.png | Bin .../pagebreak/icons/hidpi/pagebreak.png | Bin .../plugins/pagebreak/icons/pagebreak-rtl.png | Bin .../plugins/pagebreak/icons/pagebreak.png | Bin .../plugins/pagebreak/images/pagebreak.gif | Bin 0 -> 54 bytes .../_source/plugins/pagebreak/lang/af.js | 8 + .../_source/plugins/pagebreak/lang/ar.js | 8 + .../_source/plugins/pagebreak/lang/bg.js | 8 + .../_source/plugins/pagebreak/lang/bn.js | 8 + .../_source/plugins/pagebreak/lang/bs.js | 8 + .../_source/plugins/pagebreak/lang/ca.js | 8 + .../_source/plugins/pagebreak/lang/cs.js | 8 + .../_source/plugins/pagebreak/lang/cy.js | 8 + .../_source/plugins/pagebreak/lang/da.js | 8 + .../_source/plugins/pagebreak/lang/de.js | 8 + .../_source/plugins/pagebreak/lang/el.js | 8 + .../_source/plugins/pagebreak/lang/en-au.js | 8 + .../_source/plugins/pagebreak/lang/en-ca.js | 8 + .../_source/plugins/pagebreak/lang/en-gb.js | 8 + .../_source/plugins/pagebreak/lang/en.js | 8 + .../_source/plugins/pagebreak/lang/eo.js | 8 + .../_source/plugins/pagebreak/lang/es.js | 8 + .../_source/plugins/pagebreak/lang/et.js | 8 + .../_source/plugins/pagebreak/lang/eu.js | 8 + .../_source/plugins/pagebreak/lang/fa.js | 8 + .../_source/plugins/pagebreak/lang/fi.js | 8 + .../_source/plugins/pagebreak/lang/fo.js | 8 + .../_source/plugins/pagebreak/lang/fr-ca.js | 8 + .../_source/plugins/pagebreak/lang/fr.js | 8 + .../_source/plugins/pagebreak/lang/gl.js | 8 + .../_source/plugins/pagebreak/lang/gu.js | 8 + .../_source/plugins/pagebreak/lang/he.js | 8 + .../_source/plugins/pagebreak/lang/hi.js | 8 + .../_source/plugins/pagebreak/lang/hr.js | 8 + .../_source/plugins/pagebreak/lang/hu.js | 8 + .../_source/plugins/pagebreak/lang/id.js | 8 + .../_source/plugins/pagebreak/lang/is.js | 8 + .../_source/plugins/pagebreak/lang/it.js | 8 + .../_source/plugins/pagebreak/lang/ja.js | 8 + .../_source/plugins/pagebreak/lang/ka.js | 8 + .../_source/plugins/pagebreak/lang/km.js | 8 + .../_source/plugins/pagebreak/lang/ko.js | 8 + .../_source/plugins/pagebreak/lang/ku.js | 8 + .../_source/plugins/pagebreak/lang/lt.js | 8 + .../_source/plugins/pagebreak/lang/lv.js | 8 + .../_source/plugins/pagebreak/lang/mk.js | 8 + .../_source/plugins/pagebreak/lang/mn.js | 8 + .../_source/plugins/pagebreak/lang/ms.js | 8 + .../_source/plugins/pagebreak/lang/nb.js | 8 + .../_source/plugins/pagebreak/lang/nl.js | 8 + .../_source/plugins/pagebreak/lang/no.js | 8 + .../_source/plugins/pagebreak/lang/pl.js | 8 + .../_source/plugins/pagebreak/lang/pt-br.js | 8 + .../_source/plugins/pagebreak/lang/pt.js | 8 + .../_source/plugins/pagebreak/lang/ro.js | 8 + .../_source/plugins/pagebreak/lang/ru.js | 8 + .../_source/plugins/pagebreak/lang/si.js | 8 + .../_source/plugins/pagebreak/lang/sk.js | 8 + .../_source/plugins/pagebreak/lang/sl.js | 8 + .../_source/plugins/pagebreak/lang/sq.js | 8 + .../_source/plugins/pagebreak/lang/sr-latn.js | 8 + .../_source/plugins/pagebreak/lang/sr.js | 8 + .../_source/plugins/pagebreak/lang/sv.js | 8 + .../_source/plugins/pagebreak/lang/th.js | 8 + .../_source/plugins/pagebreak/lang/tr.js | 8 + .../_source/plugins/pagebreak/lang/ug.js | 8 + .../_source/plugins/pagebreak/lang/uk.js | 8 + .../_source/plugins/pagebreak/lang/vi.js | 8 + .../_source/plugins/pagebreak/lang/zh-cn.js | 8 + .../_source/plugins/pagebreak/lang/zh.js | 8 + .../_source/plugins/pagebreak/plugin.js | 158 + .../ckeditor/_source/plugins/panel/plugin.js | 402 ++ .../_source/plugins/panelbutton/plugin.js | 138 + .../plugins/pastefromword/filter/default.js | 1210 ++++++ .../icons/hidpi/pastefromword-rtl.png | Bin 0 -> 2090 bytes .../icons/hidpi/pastefromword.png | Bin 0 -> 2105 bytes .../pastefromword/icons/pastefromword-rtl.png | Bin 0 -> 720 bytes .../pastefromword/icons/pastefromword.png | Bin 0 -> 723 bytes .../_source/plugins/pastefromword/lang/af.js | 10 + .../_source/plugins/pastefromword/lang/ar.js | 10 + .../_source/plugins/pastefromword/lang/bg.js | 10 + .../_source/plugins/pastefromword/lang/bn.js | 10 + .../_source/plugins/pastefromword/lang/bs.js | 10 + .../_source/plugins/pastefromword/lang/ca.js | 10 + .../_source/plugins/pastefromword/lang/cs.js | 10 + .../_source/plugins/pastefromword/lang/cy.js | 10 + .../_source/plugins/pastefromword/lang/da.js | 10 + .../_source/plugins/pastefromword/lang/de.js | 10 + .../_source/plugins/pastefromword/lang/el.js | 10 + .../plugins/pastefromword/lang/en-au.js | 10 + .../plugins/pastefromword/lang/en-ca.js | 10 + .../plugins/pastefromword/lang/en-gb.js | 10 + .../_source/plugins/pastefromword/lang/en.js | 10 + .../_source/plugins/pastefromword/lang/eo.js | 10 + .../_source/plugins/pastefromword/lang/es.js | 10 + .../_source/plugins/pastefromword/lang/et.js | 10 + .../_source/plugins/pastefromword/lang/eu.js | 10 + .../_source/plugins/pastefromword/lang/fa.js | 10 + .../_source/plugins/pastefromword/lang/fi.js | 10 + .../_source/plugins/pastefromword/lang/fo.js | 10 + .../plugins/pastefromword/lang/fr-ca.js | 10 + .../_source/plugins/pastefromword/lang/fr.js | 10 + .../_source/plugins/pastefromword/lang/gl.js | 10 + .../_source/plugins/pastefromword/lang/gu.js | 10 + .../_source/plugins/pastefromword/lang/he.js | 10 + .../_source/plugins/pastefromword/lang/hi.js | 10 + .../_source/plugins/pastefromword/lang/hr.js | 10 + .../_source/plugins/pastefromword/lang/hu.js | 10 + .../_source/plugins/pastefromword/lang/id.js | 10 + .../_source/plugins/pastefromword/lang/is.js | 10 + .../_source/plugins/pastefromword/lang/it.js | 10 + .../_source/plugins/pastefromword/lang/ja.js | 10 + .../_source/plugins/pastefromword/lang/ka.js | 10 + .../_source/plugins/pastefromword/lang/km.js | 10 + .../_source/plugins/pastefromword/lang/ko.js | 10 + .../_source/plugins/pastefromword/lang/ku.js | 10 + .../_source/plugins/pastefromword/lang/lt.js | 10 + .../_source/plugins/pastefromword/lang/lv.js | 10 + .../_source/plugins/pastefromword/lang/mk.js | 10 + .../_source/plugins/pastefromword/lang/mn.js | 10 + .../_source/plugins/pastefromword/lang/ms.js | 10 + .../_source/plugins/pastefromword/lang/nb.js | 10 + .../_source/plugins/pastefromword/lang/nl.js | 10 + .../_source/plugins/pastefromword/lang/no.js | 10 + .../_source/plugins/pastefromword/lang/pl.js | 10 + .../plugins/pastefromword/lang/pt-br.js | 10 + .../_source/plugins/pastefromword/lang/pt.js | 10 + .../_source/plugins/pastefromword/lang/ro.js | 10 + .../_source/plugins/pastefromword/lang/ru.js | 10 + .../_source/plugins/pastefromword/lang/si.js | 10 + .../_source/plugins/pastefromword/lang/sk.js | 10 + .../_source/plugins/pastefromword/lang/sl.js | 10 + .../_source/plugins/pastefromword/lang/sq.js | 10 + .../plugins/pastefromword/lang/sr-latn.js | 10 + .../_source/plugins/pastefromword/lang/sr.js | 10 + .../_source/plugins/pastefromword/lang/sv.js | 10 + .../_source/plugins/pastefromword/lang/th.js | 10 + .../_source/plugins/pastefromword/lang/tr.js | 10 + .../_source/plugins/pastefromword/lang/ug.js | 10 + .../_source/plugins/pastefromword/lang/uk.js | 10 + .../_source/plugins/pastefromword/lang/vi.js | 10 + .../plugins/pastefromword/lang/zh-cn.js | 10 + .../_source/plugins/pastefromword/lang/zh.js | 10 + .../_source/plugins/pastefromword/plugin.js | 145 + .../pastetext/icons/hidpi/pastetext-rtl.png | Bin 0 -> 1950 bytes .../pastetext/icons/hidpi/pastetext.png | Bin 0 -> 1963 bytes .../plugins/pastetext/icons/pastetext-rtl.png | Bin 0 -> 752 bytes .../plugins/pastetext/icons/pastetext.png | Bin 0 -> 750 bytes .../_source/plugins/pastetext/lang/af.js | 8 + .../_source/plugins/pastetext/lang/ar.js | 8 + .../_source/plugins/pastetext/lang/bg.js | 8 + .../_source/plugins/pastetext/lang/bn.js | 8 + .../_source/plugins/pastetext/lang/bs.js | 8 + .../_source/plugins/pastetext/lang/ca.js | 8 + .../_source/plugins/pastetext/lang/cs.js | 8 + .../_source/plugins/pastetext/lang/cy.js | 8 + .../_source/plugins/pastetext/lang/da.js | 8 + .../_source/plugins/pastetext/lang/de.js | 8 + .../_source/plugins/pastetext/lang/el.js | 8 + .../_source/plugins/pastetext/lang/en-au.js | 8 + .../_source/plugins/pastetext/lang/en-ca.js | 8 + .../_source/plugins/pastetext/lang/en-gb.js | 8 + .../_source/plugins/pastetext/lang/en.js | 8 + .../_source/plugins/pastetext/lang/eo.js | 8 + .../_source/plugins/pastetext/lang/es.js | 8 + .../_source/plugins/pastetext/lang/et.js | 8 + .../_source/plugins/pastetext/lang/eu.js | 8 + .../_source/plugins/pastetext/lang/fa.js | 8 + .../_source/plugins/pastetext/lang/fi.js | 8 + .../_source/plugins/pastetext/lang/fo.js | 8 + .../_source/plugins/pastetext/lang/fr-ca.js | 8 + .../_source/plugins/pastetext/lang/fr.js | 8 + .../_source/plugins/pastetext/lang/gl.js | 8 + .../_source/plugins/pastetext/lang/gu.js | 8 + .../_source/plugins/pastetext/lang/he.js | 8 + .../_source/plugins/pastetext/lang/hi.js | 8 + .../_source/plugins/pastetext/lang/hr.js | 8 + .../_source/plugins/pastetext/lang/hu.js | 8 + .../_source/plugins/pastetext/lang/id.js | 8 + .../_source/plugins/pastetext/lang/is.js | 8 + .../_source/plugins/pastetext/lang/it.js | 8 + .../_source/plugins/pastetext/lang/ja.js | 8 + .../_source/plugins/pastetext/lang/ka.js | 8 + .../_source/plugins/pastetext/lang/km.js | 8 + .../_source/plugins/pastetext/lang/ko.js | 8 + .../_source/plugins/pastetext/lang/ku.js | 8 + .../_source/plugins/pastetext/lang/lt.js | 8 + .../_source/plugins/pastetext/lang/lv.js | 8 + .../_source/plugins/pastetext/lang/mk.js | 8 + .../_source/plugins/pastetext/lang/mn.js | 8 + .../_source/plugins/pastetext/lang/ms.js | 8 + .../_source/plugins/pastetext/lang/nb.js | 8 + .../_source/plugins/pastetext/lang/nl.js | 8 + .../_source/plugins/pastetext/lang/no.js | 8 + .../_source/plugins/pastetext/lang/pl.js | 8 + .../_source/plugins/pastetext/lang/pt-br.js | 8 + .../_source/plugins/pastetext/lang/pt.js | 8 + .../_source/plugins/pastetext/lang/ro.js | 8 + .../_source/plugins/pastetext/lang/ru.js | 8 + .../_source/plugins/pastetext/lang/si.js | 8 + .../_source/plugins/pastetext/lang/sk.js | 8 + .../_source/plugins/pastetext/lang/sl.js | 8 + .../_source/plugins/pastetext/lang/sq.js | 8 + .../_source/plugins/pastetext/lang/sr-latn.js | 8 + .../_source/plugins/pastetext/lang/sr.js | 8 + .../_source/plugins/pastetext/lang/sv.js | 8 + .../_source/plugins/pastetext/lang/th.js | 8 + .../_source/plugins/pastetext/lang/tr.js | 8 + .../_source/plugins/pastetext/lang/ug.js | 8 + .../_source/plugins/pastetext/lang/uk.js | 8 + .../_source/plugins/pastetext/lang/vi.js | 8 + .../_source/plugins/pastetext/lang/zh-cn.js | 8 + .../_source/plugins/pastetext/lang/zh.js | 8 + .../_source/plugins/pastetext/plugin.js | 76 + .../ckeditor/_source/plugins/popup/plugin.js | 65 + .../preview/icons/hidpi/preview-rtl.png | Bin .../plugins/preview/icons/hidpi/preview.png | Bin .../plugins/preview/icons/preview-rtl.png | Bin .../plugins/preview/icons/preview.png | Bin .../_source/plugins/preview/lang/af.js | 7 + .../_source/plugins/preview/lang/ar.js | 7 + .../_source/plugins/preview/lang/bg.js | 7 + .../_source/plugins/preview/lang/bn.js | 7 + .../_source/plugins/preview/lang/bs.js | 7 + .../_source/plugins/preview/lang/ca.js | 7 + .../_source/plugins/preview/lang/cs.js | 7 + .../_source/plugins/preview/lang/cy.js | 7 + .../_source/plugins/preview/lang/da.js | 7 + .../_source/plugins/preview/lang/de.js | 7 + .../_source/plugins/preview/lang/el.js | 7 + .../_source/plugins/preview/lang/en-au.js | 7 + .../_source/plugins/preview/lang/en-ca.js | 7 + .../_source/plugins/preview/lang/en-gb.js | 7 + .../_source/plugins/preview/lang/en.js | 7 + .../_source/plugins/preview/lang/eo.js | 7 + .../_source/plugins/preview/lang/es.js | 7 + .../_source/plugins/preview/lang/et.js | 7 + .../_source/plugins/preview/lang/eu.js | 7 + .../_source/plugins/preview/lang/fa.js | 7 + .../_source/plugins/preview/lang/fi.js | 7 + .../_source/plugins/preview/lang/fo.js | 7 + .../_source/plugins/preview/lang/fr-ca.js | 7 + .../_source/plugins/preview/lang/fr.js | 7 + .../_source/plugins/preview/lang/gl.js | 7 + .../_source/plugins/preview/lang/gu.js | 7 + .../_source/plugins/preview/lang/he.js | 7 + .../_source/plugins/preview/lang/hi.js | 7 + .../_source/plugins/preview/lang/hr.js | 7 + .../_source/plugins/preview/lang/hu.js | 7 + .../_source/plugins/preview/lang/id.js | 7 + .../_source/plugins/preview/lang/is.js | 7 + .../_source/plugins/preview/lang/it.js | 7 + .../_source/plugins/preview/lang/ja.js | 7 + .../_source/plugins/preview/lang/ka.js | 7 + .../_source/plugins/preview/lang/km.js | 7 + .../_source/plugins/preview/lang/ko.js | 7 + .../_source/plugins/preview/lang/ku.js | 7 + .../_source/plugins/preview/lang/lt.js | 7 + .../_source/plugins/preview/lang/lv.js | 7 + .../_source/plugins/preview/lang/mk.js | 7 + .../_source/plugins/preview/lang/mn.js | 7 + .../_source/plugins/preview/lang/ms.js | 7 + .../_source/plugins/preview/lang/nb.js | 7 + .../_source/plugins/preview/lang/nl.js | 7 + .../_source/plugins/preview/lang/no.js | 7 + .../_source/plugins/preview/lang/pl.js | 7 + .../_source/plugins/preview/lang/pt-br.js | 7 + .../_source/plugins/preview/lang/pt.js | 7 + .../_source/plugins/preview/lang/ro.js | 7 + .../_source/plugins/preview/lang/ru.js | 7 + .../_source/plugins/preview/lang/si.js | 7 + .../_source/plugins/preview/lang/sk.js | 7 + .../_source/plugins/preview/lang/sl.js | 7 + .../_source/plugins/preview/lang/sq.js | 7 + .../_source/plugins/preview/lang/sr-latn.js | 7 + .../_source/plugins/preview/lang/sr.js | 7 + .../_source/plugins/preview/lang/sv.js | 7 + .../_source/plugins/preview/lang/th.js | 7 + .../_source/plugins/preview/lang/tr.js | 7 + .../_source/plugins/preview/lang/ug.js | 7 + .../_source/plugins/preview/lang/uk.js | 7 + .../_source/plugins/preview/lang/vi.js | 7 + .../_source/plugins/preview/lang/zh-cn.js | 7 + .../_source/plugins/preview/lang/zh.js | 7 + .../_source/plugins/preview/plugin.js | 141 + .../_source/plugins/preview/preview.html | 10 + .../plugins/print/icons/hidpi/print.png | Bin .../plugins/print/icons/print.png | Bin .../ckeditor/_source/plugins/print/lang/af.js | 7 + .../ckeditor/_source/plugins/print/lang/ar.js | 7 + .../ckeditor/_source/plugins/print/lang/bg.js | 7 + .../ckeditor/_source/plugins/print/lang/bn.js | 7 + .../ckeditor/_source/plugins/print/lang/bs.js | 7 + .../ckeditor/_source/plugins/print/lang/ca.js | 7 + .../ckeditor/_source/plugins/print/lang/cs.js | 7 + .../ckeditor/_source/plugins/print/lang/cy.js | 7 + .../ckeditor/_source/plugins/print/lang/da.js | 7 + .../ckeditor/_source/plugins/print/lang/de.js | 7 + .../ckeditor/_source/plugins/print/lang/el.js | 7 + .../_source/plugins/print/lang/en-au.js | 7 + .../_source/plugins/print/lang/en-ca.js | 7 + .../_source/plugins/print/lang/en-gb.js | 7 + .../ckeditor/_source/plugins/print/lang/en.js | 7 + .../ckeditor/_source/plugins/print/lang/eo.js | 7 + .../ckeditor/_source/plugins/print/lang/es.js | 7 + .../ckeditor/_source/plugins/print/lang/et.js | 7 + .../ckeditor/_source/plugins/print/lang/eu.js | 7 + .../ckeditor/_source/plugins/print/lang/fa.js | 7 + .../ckeditor/_source/plugins/print/lang/fi.js | 7 + .../ckeditor/_source/plugins/print/lang/fo.js | 7 + .../_source/plugins/print/lang/fr-ca.js | 7 + .../ckeditor/_source/plugins/print/lang/fr.js | 7 + .../ckeditor/_source/plugins/print/lang/gl.js | 7 + .../ckeditor/_source/plugins/print/lang/gu.js | 7 + .../ckeditor/_source/plugins/print/lang/he.js | 7 + .../ckeditor/_source/plugins/print/lang/hi.js | 7 + .../ckeditor/_source/plugins/print/lang/hr.js | 7 + .../ckeditor/_source/plugins/print/lang/hu.js | 7 + .../ckeditor/_source/plugins/print/lang/id.js | 7 + .../ckeditor/_source/plugins/print/lang/is.js | 7 + .../ckeditor/_source/plugins/print/lang/it.js | 7 + .../ckeditor/_source/plugins/print/lang/ja.js | 7 + .../ckeditor/_source/plugins/print/lang/ka.js | 7 + .../ckeditor/_source/plugins/print/lang/km.js | 7 + .../ckeditor/_source/plugins/print/lang/ko.js | 7 + .../ckeditor/_source/plugins/print/lang/ku.js | 7 + .../ckeditor/_source/plugins/print/lang/lt.js | 7 + .../ckeditor/_source/plugins/print/lang/lv.js | 7 + .../ckeditor/_source/plugins/print/lang/mk.js | 7 + .../ckeditor/_source/plugins/print/lang/mn.js | 7 + .../ckeditor/_source/plugins/print/lang/ms.js | 7 + .../ckeditor/_source/plugins/print/lang/nb.js | 7 + .../ckeditor/_source/plugins/print/lang/nl.js | 7 + .../ckeditor/_source/plugins/print/lang/no.js | 7 + .../ckeditor/_source/plugins/print/lang/pl.js | 7 + .../_source/plugins/print/lang/pt-br.js | 7 + .../ckeditor/_source/plugins/print/lang/pt.js | 7 + .../ckeditor/_source/plugins/print/lang/ro.js | 7 + .../ckeditor/_source/plugins/print/lang/ru.js | 7 + .../ckeditor/_source/plugins/print/lang/si.js | 7 + .../ckeditor/_source/plugins/print/lang/sk.js | 7 + .../ckeditor/_source/plugins/print/lang/sl.js | 7 + .../ckeditor/_source/plugins/print/lang/sq.js | 7 + .../_source/plugins/print/lang/sr-latn.js | 7 + .../ckeditor/_source/plugins/print/lang/sr.js | 7 + .../ckeditor/_source/plugins/print/lang/sv.js | 7 + .../ckeditor/_source/plugins/print/lang/th.js | 7 + .../ckeditor/_source/plugins/print/lang/tr.js | 7 + .../ckeditor/_source/plugins/print/lang/ug.js | 7 + .../ckeditor/_source/plugins/print/lang/uk.js | 7 + .../ckeditor/_source/plugins/print/lang/vi.js | 7 + .../_source/plugins/print/lang/zh-cn.js | 7 + .../ckeditor/_source/plugins/print/lang/zh.js | 7 + .../ckeditor/_source/plugins/print/plugin.js | 45 + .../removeformat/icons/hidpi/removeformat.png | Bin 0 -> 2119 bytes .../removeformat/icons/removeformat.png | Bin 0 -> 871 bytes .../_source/plugins/removeformat/lang/af.js | 7 + .../_source/plugins/removeformat/lang/ar.js | 7 + .../_source/plugins/removeformat/lang/bg.js | 7 + .../_source/plugins/removeformat/lang/bn.js | 7 + .../_source/plugins/removeformat/lang/bs.js | 7 + .../_source/plugins/removeformat/lang/ca.js | 7 + .../_source/plugins/removeformat/lang/cs.js | 7 + .../_source/plugins/removeformat/lang/cy.js | 7 + .../_source/plugins/removeformat/lang/da.js | 7 + .../_source/plugins/removeformat/lang/de.js | 7 + .../_source/plugins/removeformat/lang/el.js | 7 + .../plugins/removeformat/lang/en-au.js | 7 + .../plugins/removeformat/lang/en-ca.js | 7 + .../plugins/removeformat/lang/en-gb.js | 7 + .../_source/plugins/removeformat/lang/en.js | 7 + .../_source/plugins/removeformat/lang/eo.js | 7 + .../_source/plugins/removeformat/lang/es.js | 7 + .../_source/plugins/removeformat/lang/et.js | 7 + .../_source/plugins/removeformat/lang/eu.js | 7 + .../_source/plugins/removeformat/lang/fa.js | 7 + .../_source/plugins/removeformat/lang/fi.js | 7 + .../_source/plugins/removeformat/lang/fo.js | 7 + .../plugins/removeformat/lang/fr-ca.js | 7 + .../_source/plugins/removeformat/lang/fr.js | 7 + .../_source/plugins/removeformat/lang/gl.js | 7 + .../_source/plugins/removeformat/lang/gu.js | 7 + .../_source/plugins/removeformat/lang/he.js | 7 + .../_source/plugins/removeformat/lang/hi.js | 7 + .../_source/plugins/removeformat/lang/hr.js | 7 + .../_source/plugins/removeformat/lang/hu.js | 7 + .../_source/plugins/removeformat/lang/id.js | 7 + .../_source/plugins/removeformat/lang/is.js | 7 + .../_source/plugins/removeformat/lang/it.js | 7 + .../_source/plugins/removeformat/lang/ja.js | 7 + .../_source/plugins/removeformat/lang/ka.js | 7 + .../_source/plugins/removeformat/lang/km.js | 7 + .../_source/plugins/removeformat/lang/ko.js | 7 + .../_source/plugins/removeformat/lang/ku.js | 7 + .../_source/plugins/removeformat/lang/lt.js | 7 + .../_source/plugins/removeformat/lang/lv.js | 7 + .../_source/plugins/removeformat/lang/mk.js | 7 + .../_source/plugins/removeformat/lang/mn.js | 7 + .../_source/plugins/removeformat/lang/ms.js | 7 + .../_source/plugins/removeformat/lang/nb.js | 7 + .../_source/plugins/removeformat/lang/nl.js | 7 + .../_source/plugins/removeformat/lang/no.js | 7 + .../_source/plugins/removeformat/lang/pl.js | 7 + .../plugins/removeformat/lang/pt-br.js | 7 + .../_source/plugins/removeformat/lang/pt.js | 7 + .../_source/plugins/removeformat/lang/ro.js | 7 + .../_source/plugins/removeformat/lang/ru.js | 7 + .../_source/plugins/removeformat/lang/si.js | 7 + .../_source/plugins/removeformat/lang/sk.js | 7 + .../_source/plugins/removeformat/lang/sl.js | 7 + .../_source/plugins/removeformat/lang/sq.js | 7 + .../plugins/removeformat/lang/sr-latn.js | 7 + .../_source/plugins/removeformat/lang/sr.js | 7 + .../_source/plugins/removeformat/lang/sv.js | 7 + .../_source/plugins/removeformat/lang/th.js | 7 + .../_source/plugins/removeformat/lang/tr.js | 7 + .../_source/plugins/removeformat/lang/ug.js | 7 + .../_source/plugins/removeformat/lang/uk.js | 7 + .../_source/plugins/removeformat/lang/vi.js | 7 + .../plugins/removeformat/lang/zh-cn.js | 7 + .../_source/plugins/removeformat/lang/zh.js | 7 + .../_source/plugins/removeformat/plugin.js | 174 + .../ckeditor/_source/plugins/resize/plugin.js | 169 + .../_source/plugins/richcombo/plugin.js | 440 +++ .../plugins/save/icons/hidpi/save.png | Bin .../{ => _source}/plugins/save/icons/save.png | Bin .../ckeditor/_source/plugins/save/lang/af.js | 7 + .../ckeditor/_source/plugins/save/lang/ar.js | 7 + .../ckeditor/_source/plugins/save/lang/bg.js | 7 + .../ckeditor/_source/plugins/save/lang/bn.js | 7 + .../ckeditor/_source/plugins/save/lang/bs.js | 7 + .../ckeditor/_source/plugins/save/lang/ca.js | 7 + .../ckeditor/_source/plugins/save/lang/cs.js | 7 + .../ckeditor/_source/plugins/save/lang/cy.js | 7 + .../ckeditor/_source/plugins/save/lang/da.js | 7 + .../ckeditor/_source/plugins/save/lang/de.js | 7 + .../ckeditor/_source/plugins/save/lang/el.js | 7 + .../_source/plugins/save/lang/en-au.js | 7 + .../_source/plugins/save/lang/en-ca.js | 7 + .../_source/plugins/save/lang/en-gb.js | 7 + .../ckeditor/_source/plugins/save/lang/en.js | 7 + .../ckeditor/_source/plugins/save/lang/eo.js | 7 + .../ckeditor/_source/plugins/save/lang/es.js | 7 + .../ckeditor/_source/plugins/save/lang/et.js | 7 + .../ckeditor/_source/plugins/save/lang/eu.js | 7 + .../ckeditor/_source/plugins/save/lang/fa.js | 7 + .../ckeditor/_source/plugins/save/lang/fi.js | 7 + .../ckeditor/_source/plugins/save/lang/fo.js | 7 + .../_source/plugins/save/lang/fr-ca.js | 7 + .../ckeditor/_source/plugins/save/lang/fr.js | 7 + .../ckeditor/_source/plugins/save/lang/gl.js | 7 + .../ckeditor/_source/plugins/save/lang/gu.js | 7 + .../ckeditor/_source/plugins/save/lang/he.js | 7 + .../ckeditor/_source/plugins/save/lang/hi.js | 7 + .../ckeditor/_source/plugins/save/lang/hr.js | 7 + .../ckeditor/_source/plugins/save/lang/hu.js | 7 + .../ckeditor/_source/plugins/save/lang/id.js | 7 + .../ckeditor/_source/plugins/save/lang/is.js | 7 + .../ckeditor/_source/plugins/save/lang/it.js | 7 + .../ckeditor/_source/plugins/save/lang/ja.js | 7 + .../ckeditor/_source/plugins/save/lang/ka.js | 7 + .../ckeditor/_source/plugins/save/lang/km.js | 7 + .../ckeditor/_source/plugins/save/lang/ko.js | 7 + .../ckeditor/_source/plugins/save/lang/ku.js | 7 + .../ckeditor/_source/plugins/save/lang/lt.js | 7 + .../ckeditor/_source/plugins/save/lang/lv.js | 7 + .../ckeditor/_source/plugins/save/lang/mk.js | 7 + .../ckeditor/_source/plugins/save/lang/mn.js | 7 + .../ckeditor/_source/plugins/save/lang/ms.js | 7 + .../ckeditor/_source/plugins/save/lang/nb.js | 7 + .../ckeditor/_source/plugins/save/lang/nl.js | 7 + .../ckeditor/_source/plugins/save/lang/no.js | 7 + .../ckeditor/_source/plugins/save/lang/pl.js | 7 + .../_source/plugins/save/lang/pt-br.js | 7 + .../ckeditor/_source/plugins/save/lang/pt.js | 7 + .../ckeditor/_source/plugins/save/lang/ro.js | 7 + .../ckeditor/_source/plugins/save/lang/ru.js | 7 + .../ckeditor/_source/plugins/save/lang/si.js | 7 + .../ckeditor/_source/plugins/save/lang/sk.js | 7 + .../ckeditor/_source/plugins/save/lang/sl.js | 7 + .../ckeditor/_source/plugins/save/lang/sq.js | 7 + .../_source/plugins/save/lang/sr-latn.js | 7 + .../ckeditor/_source/plugins/save/lang/sr.js | 7 + .../ckeditor/_source/plugins/save/lang/sv.js | 7 + .../ckeditor/_source/plugins/save/lang/th.js | 7 + .../ckeditor/_source/plugins/save/lang/tr.js | 7 + .../ckeditor/_source/plugins/save/lang/ug.js | 7 + .../ckeditor/_source/plugins/save/lang/uk.js | 7 + .../ckeditor/_source/plugins/save/lang/vi.js | 7 + .../_source/plugins/save/lang/zh-cn.js | 7 + .../ckeditor/_source/plugins/save/lang/zh.js | 7 + .../ckeditor/_source/plugins/save/plugin.js | 65 + .../ckeditor/_source/plugins/scayt/LICENSE.md | 28 + .../ckeditor/_source/plugins/scayt/README.md | 25 + .../_source/plugins/scayt/dialogs/options.js | 473 +++ .../_source/plugins/scayt/dialogs/toolbar.css | 71 + .../plugins/scayt/icons/hidpi/scayt.png | Bin 0 -> 2816 bytes .../_source/plugins/scayt/icons/scayt.png | Bin 0 -> 836 bytes .../ckeditor/_source/plugins/scayt/lang/af.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ar.js | 34 + .../ckeditor/_source/plugins/scayt/lang/bg.js | 34 + .../ckeditor/_source/plugins/scayt/lang/bn.js | 34 + .../ckeditor/_source/plugins/scayt/lang/bs.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ca.js | 34 + .../ckeditor/_source/plugins/scayt/lang/cs.js | 34 + .../ckeditor/_source/plugins/scayt/lang/cy.js | 34 + .../ckeditor/_source/plugins/scayt/lang/da.js | 34 + .../ckeditor/_source/plugins/scayt/lang/de.js | 34 + .../ckeditor/_source/plugins/scayt/lang/el.js | 34 + .../_source/plugins/scayt/lang/en-au.js | 34 + .../_source/plugins/scayt/lang/en-ca.js | 34 + .../_source/plugins/scayt/lang/en-gb.js | 34 + .../ckeditor/_source/plugins/scayt/lang/en.js | 34 + .../ckeditor/_source/plugins/scayt/lang/eo.js | 34 + .../ckeditor/_source/plugins/scayt/lang/es.js | 34 + .../ckeditor/_source/plugins/scayt/lang/et.js | 34 + .../ckeditor/_source/plugins/scayt/lang/eu.js | 34 + .../ckeditor/_source/plugins/scayt/lang/fa.js | 34 + .../ckeditor/_source/plugins/scayt/lang/fi.js | 34 + .../ckeditor/_source/plugins/scayt/lang/fo.js | 34 + .../_source/plugins/scayt/lang/fr-ca.js | 34 + .../ckeditor/_source/plugins/scayt/lang/fr.js | 34 + .../ckeditor/_source/plugins/scayt/lang/gl.js | 34 + .../ckeditor/_source/plugins/scayt/lang/gu.js | 34 + .../ckeditor/_source/plugins/scayt/lang/he.js | 34 + .../ckeditor/_source/plugins/scayt/lang/hi.js | 34 + .../ckeditor/_source/plugins/scayt/lang/hr.js | 34 + .../ckeditor/_source/plugins/scayt/lang/hu.js | 34 + .../ckeditor/_source/plugins/scayt/lang/is.js | 34 + .../ckeditor/_source/plugins/scayt/lang/it.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ja.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ka.js | 34 + .../ckeditor/_source/plugins/scayt/lang/km.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ko.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ku.js | 34 + .../ckeditor/_source/plugins/scayt/lang/lt.js | 34 + .../ckeditor/_source/plugins/scayt/lang/lv.js | 34 + .../ckeditor/_source/plugins/scayt/lang/mk.js | 34 + .../ckeditor/_source/plugins/scayt/lang/mn.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ms.js | 34 + .../ckeditor/_source/plugins/scayt/lang/nb.js | 34 + .../ckeditor/_source/plugins/scayt/lang/nl.js | 34 + .../ckeditor/_source/plugins/scayt/lang/no.js | 34 + .../ckeditor/_source/plugins/scayt/lang/pl.js | 34 + .../_source/plugins/scayt/lang/pt-br.js | 34 + .../ckeditor/_source/plugins/scayt/lang/pt.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ro.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ru.js | 34 + .../ckeditor/_source/plugins/scayt/lang/sk.js | 34 + .../ckeditor/_source/plugins/scayt/lang/sl.js | 34 + .../_source/plugins/scayt/lang/sr-latn.js | 34 + .../ckeditor/_source/plugins/scayt/lang/sr.js | 34 + .../ckeditor/_source/plugins/scayt/lang/sv.js | 34 + .../ckeditor/_source/plugins/scayt/lang/th.js | 34 + .../ckeditor/_source/plugins/scayt/lang/tr.js | 34 + .../ckeditor/_source/plugins/scayt/lang/ug.js | 34 + .../ckeditor/_source/plugins/scayt/lang/uk.js | 34 + .../ckeditor/_source/plugins/scayt/lang/vi.js | 34 + .../_source/plugins/scayt/lang/zh-cn.js | 34 + .../ckeditor/_source/plugins/scayt/lang/zh.js | 34 + .../ckeditor/_source/plugins/scayt/plugin.js | 929 +++++ .../selectall/icons/hidpi/selectall.png | Bin .../plugins/selectall/icons/selectall.png | Bin .../_source/plugins/selectall/lang/af.js | 7 + .../_source/plugins/selectall/lang/ar.js | 7 + .../_source/plugins/selectall/lang/bg.js | 7 + .../_source/plugins/selectall/lang/bn.js | 7 + .../_source/plugins/selectall/lang/bs.js | 7 + .../_source/plugins/selectall/lang/ca.js | 7 + .../_source/plugins/selectall/lang/cs.js | 7 + .../_source/plugins/selectall/lang/cy.js | 7 + .../_source/plugins/selectall/lang/da.js | 7 + .../_source/plugins/selectall/lang/de.js | 7 + .../_source/plugins/selectall/lang/el.js | 7 + .../_source/plugins/selectall/lang/en-au.js | 7 + .../_source/plugins/selectall/lang/en-ca.js | 7 + .../_source/plugins/selectall/lang/en-gb.js | 7 + .../_source/plugins/selectall/lang/en.js | 7 + .../_source/plugins/selectall/lang/eo.js | 7 + .../_source/plugins/selectall/lang/es.js | 7 + .../_source/plugins/selectall/lang/et.js | 7 + .../_source/plugins/selectall/lang/eu.js | 7 + .../_source/plugins/selectall/lang/fa.js | 7 + .../_source/plugins/selectall/lang/fi.js | 7 + .../_source/plugins/selectall/lang/fo.js | 7 + .../_source/plugins/selectall/lang/fr-ca.js | 7 + .../_source/plugins/selectall/lang/fr.js | 7 + .../_source/plugins/selectall/lang/gl.js | 7 + .../_source/plugins/selectall/lang/gu.js | 7 + .../_source/plugins/selectall/lang/he.js | 7 + .../_source/plugins/selectall/lang/hi.js | 7 + .../_source/plugins/selectall/lang/hr.js | 7 + .../_source/plugins/selectall/lang/hu.js | 7 + .../_source/plugins/selectall/lang/id.js | 7 + .../_source/plugins/selectall/lang/is.js | 7 + .../_source/plugins/selectall/lang/it.js | 7 + .../_source/plugins/selectall/lang/ja.js | 7 + .../_source/plugins/selectall/lang/ka.js | 7 + .../_source/plugins/selectall/lang/km.js | 7 + .../_source/plugins/selectall/lang/ko.js | 7 + .../_source/plugins/selectall/lang/ku.js | 7 + .../_source/plugins/selectall/lang/lt.js | 7 + .../_source/plugins/selectall/lang/lv.js | 7 + .../_source/plugins/selectall/lang/mk.js | 7 + .../_source/plugins/selectall/lang/mn.js | 7 + .../_source/plugins/selectall/lang/ms.js | 7 + .../_source/plugins/selectall/lang/nb.js | 7 + .../_source/plugins/selectall/lang/nl.js | 7 + .../_source/plugins/selectall/lang/no.js | 7 + .../_source/plugins/selectall/lang/pl.js | 7 + .../_source/plugins/selectall/lang/pt-br.js | 7 + .../_source/plugins/selectall/lang/pt.js | 7 + .../_source/plugins/selectall/lang/ro.js | 7 + .../_source/plugins/selectall/lang/ru.js | 7 + .../_source/plugins/selectall/lang/si.js | 7 + .../_source/plugins/selectall/lang/sk.js | 7 + .../_source/plugins/selectall/lang/sl.js | 7 + .../_source/plugins/selectall/lang/sq.js | 7 + .../_source/plugins/selectall/lang/sr-latn.js | 7 + .../_source/plugins/selectall/lang/sr.js | 7 + .../_source/plugins/selectall/lang/sv.js | 7 + .../_source/plugins/selectall/lang/th.js | 7 + .../_source/plugins/selectall/lang/tr.js | 7 + .../_source/plugins/selectall/lang/ug.js | 7 + .../_source/plugins/selectall/lang/uk.js | 7 + .../_source/plugins/selectall/lang/vi.js | 7 + .../_source/plugins/selectall/lang/zh-cn.js | 7 + .../_source/plugins/selectall/lang/zh.js | 7 + .../_source/plugins/selectall/plugin.js | 58 + .../showblocks/icons/hidpi/showblocks-rtl.png | Bin .../showblocks/icons/hidpi/showblocks.png | Bin .../showblocks/icons/showblocks-rtl.png | Bin .../plugins/showblocks/icons/showblocks.png | Bin .../showblocks/images/block_address.png | Bin 0 -> 171 bytes .../showblocks/images/block_blockquote.png | Bin 0 -> 181 bytes .../plugins/showblocks/images/block_div.png | Bin 0 -> 136 bytes .../plugins/showblocks/images/block_h1.png | Bin 0 -> 127 bytes .../plugins/showblocks/images/block_h2.png | Bin 0 -> 134 bytes .../plugins/showblocks/images/block_h3.png | Bin 0 -> 131 bytes .../plugins/showblocks/images/block_h4.png | Bin 0 -> 133 bytes .../plugins/showblocks/images/block_h5.png | Bin 0 -> 133 bytes .../plugins/showblocks/images/block_h6.png | Bin 0 -> 129 bytes .../plugins/showblocks/images/block_p.png | Bin 0 -> 119 bytes .../plugins/showblocks/images/block_pre.png | Bin 0 -> 136 bytes .../_source/plugins/showblocks/lang/af.js | 7 + .../_source/plugins/showblocks/lang/ar.js | 7 + .../_source/plugins/showblocks/lang/bg.js | 7 + .../_source/plugins/showblocks/lang/bn.js | 7 + .../_source/plugins/showblocks/lang/bs.js | 7 + .../_source/plugins/showblocks/lang/ca.js | 7 + .../_source/plugins/showblocks/lang/cs.js | 7 + .../_source/plugins/showblocks/lang/cy.js | 7 + .../_source/plugins/showblocks/lang/da.js | 7 + .../_source/plugins/showblocks/lang/de.js | 7 + .../_source/plugins/showblocks/lang/el.js | 7 + .../_source/plugins/showblocks/lang/en-au.js | 7 + .../_source/plugins/showblocks/lang/en-ca.js | 7 + .../_source/plugins/showblocks/lang/en-gb.js | 7 + .../_source/plugins/showblocks/lang/en.js | 7 + .../_source/plugins/showblocks/lang/eo.js | 7 + .../_source/plugins/showblocks/lang/es.js | 7 + .../_source/plugins/showblocks/lang/et.js | 7 + .../_source/plugins/showblocks/lang/eu.js | 7 + .../_source/plugins/showblocks/lang/fa.js | 7 + .../_source/plugins/showblocks/lang/fi.js | 7 + .../_source/plugins/showblocks/lang/fo.js | 7 + .../_source/plugins/showblocks/lang/fr-ca.js | 7 + .../_source/plugins/showblocks/lang/fr.js | 7 + .../_source/plugins/showblocks/lang/gl.js | 7 + .../_source/plugins/showblocks/lang/gu.js | 7 + .../_source/plugins/showblocks/lang/he.js | 7 + .../_source/plugins/showblocks/lang/hi.js | 7 + .../_source/plugins/showblocks/lang/hr.js | 7 + .../_source/plugins/showblocks/lang/hu.js | 7 + .../_source/plugins/showblocks/lang/id.js | 7 + .../_source/plugins/showblocks/lang/is.js | 7 + .../_source/plugins/showblocks/lang/it.js | 7 + .../_source/plugins/showblocks/lang/ja.js | 7 + .../_source/plugins/showblocks/lang/ka.js | 7 + .../_source/plugins/showblocks/lang/km.js | 7 + .../_source/plugins/showblocks/lang/ko.js | 7 + .../_source/plugins/showblocks/lang/ku.js | 7 + .../_source/plugins/showblocks/lang/lt.js | 7 + .../_source/plugins/showblocks/lang/lv.js | 7 + .../_source/plugins/showblocks/lang/mk.js | 7 + .../_source/plugins/showblocks/lang/mn.js | 7 + .../_source/plugins/showblocks/lang/ms.js | 7 + .../_source/plugins/showblocks/lang/nb.js | 7 + .../_source/plugins/showblocks/lang/nl.js | 7 + .../_source/plugins/showblocks/lang/no.js | 7 + .../_source/plugins/showblocks/lang/pl.js | 7 + .../_source/plugins/showblocks/lang/pt-br.js | 7 + .../_source/plugins/showblocks/lang/pt.js | 7 + .../_source/plugins/showblocks/lang/ro.js | 7 + .../_source/plugins/showblocks/lang/ru.js | 7 + .../_source/plugins/showblocks/lang/si.js | 7 + .../_source/plugins/showblocks/lang/sk.js | 7 + .../_source/plugins/showblocks/lang/sl.js | 7 + .../_source/plugins/showblocks/lang/sq.js | 7 + .../plugins/showblocks/lang/sr-latn.js | 7 + .../_source/plugins/showblocks/lang/sr.js | 7 + .../_source/plugins/showblocks/lang/sv.js | 7 + .../_source/plugins/showblocks/lang/th.js | 7 + .../_source/plugins/showblocks/lang/tr.js | 7 + .../_source/plugins/showblocks/lang/ug.js | 7 + .../_source/plugins/showblocks/lang/uk.js | 7 + .../_source/plugins/showblocks/lang/vi.js | 7 + .../_source/plugins/showblocks/lang/zh-cn.js | 7 + .../_source/plugins/showblocks/lang/zh.js | 7 + .../_source/plugins/showblocks/plugin.js | 153 + .../_source/plugins/showborders/plugin.js | 174 + .../_source/plugins/smiley/dialogs/smiley.js | 190 + .../plugins/smiley/icons/hidpi/smiley.png | Bin .../plugins/smiley/icons/smiley.png | Bin .../plugins/smiley/images/angel_smile.gif | Bin 0 -> 1250 bytes .../plugins/smiley/images/angel_smile.png | Bin 0 -> 1294 bytes .../plugins/smiley/images/angry_smile.gif | Bin 0 -> 1221 bytes .../plugins/smiley/images/angry_smile.png | Bin 0 -> 1351 bytes .../plugins/smiley/images/broken_heart.gif | Bin 0 -> 1131 bytes .../plugins/smiley/images/broken_heart.png | Bin 0 -> 1213 bytes .../plugins/smiley/images/confused_smile.gif | Bin 0 -> 1210 bytes .../plugins/smiley/images/confused_smile.png | Bin 0 -> 1175 bytes .../plugins/smiley/images/cry_smile.gif | Bin 0 -> 795 bytes .../plugins/smiley/images/cry_smile.png | Bin 0 -> 1315 bytes .../plugins/smiley/images/devil_smile.gif | Bin 0 -> 1239 bytes .../plugins/smiley/images/devil_smile.png | Bin 0 -> 1299 bytes .../smiley/images/embaressed_smile.gif | Bin 0 -> 790 bytes .../smiley/images/embarrassed_smile.gif | Bin 0 -> 790 bytes .../smiley/images/embarrassed_smile.png | Bin 0 -> 1222 bytes .../plugins/smiley/images/envelope.gif | Bin 0 -> 712 bytes .../plugins/smiley/images/envelope.png | Bin 0 -> 1049 bytes .../_source/plugins/smiley/images/heart.gif | Bin 0 -> 1091 bytes .../_source/plugins/smiley/images/heart.png | Bin 0 -> 1073 bytes .../_source/plugins/smiley/images/kiss.gif | Bin 0 -> 1082 bytes .../_source/plugins/smiley/images/kiss.png | Bin 0 -> 1077 bytes .../plugins/smiley/images/lightbulb.gif | Bin 0 -> 1062 bytes .../plugins/smiley/images/lightbulb.png | Bin 0 -> 993 bytes .../plugins/smiley/images/omg_smile.gif | Bin 0 -> 1207 bytes .../plugins/smiley/images/omg_smile.png | Bin 0 -> 1196 bytes .../plugins/smiley/images/regular_smile.gif | Bin 0 -> 1216 bytes .../plugins/smiley/images/regular_smile.png | Bin 0 -> 1158 bytes .../plugins/smiley/images/sad_smile.gif | Bin 0 -> 1199 bytes .../plugins/smiley/images/sad_smile.png | Bin 0 -> 1189 bytes .../plugins/smiley/images/shades_smile.gif | Bin 0 -> 1234 bytes .../plugins/smiley/images/shades_smile.png | Bin 0 -> 1353 bytes .../plugins/smiley/images/teeth_smile.gif | Bin 0 -> 1210 bytes .../plugins/smiley/images/teeth_smile.png | Bin 0 -> 1257 bytes .../plugins/smiley/images/thumbs_down.gif | Bin 0 -> 1117 bytes .../plugins/smiley/images/thumbs_down.png | Bin 0 -> 1059 bytes .../plugins/smiley/images/thumbs_up.gif | Bin 0 -> 1112 bytes .../plugins/smiley/images/thumbs_up.png | Bin 0 -> 1033 bytes .../plugins/smiley/images/tongue_smile.gif | Bin 0 -> 1216 bytes .../plugins/smiley/images/tongue_smile.png | Bin 0 -> 1206 bytes .../plugins/smiley/images/tounge_smile.gif | Bin 0 -> 1216 bytes .../images/whatchutalkingabout_smile.gif | Bin 0 -> 1190 bytes .../images/whatchutalkingabout_smile.png | Bin 0 -> 1113 bytes .../plugins/smiley/images/wink_smile.gif | Bin 0 -> 1214 bytes .../plugins/smiley/images/wink_smile.png | Bin 0 -> 1188 bytes .../_source/plugins/smiley/lang/af.js | 9 + .../_source/plugins/smiley/lang/ar.js | 9 + .../_source/plugins/smiley/lang/bg.js | 9 + .../_source/plugins/smiley/lang/bn.js | 9 + .../_source/plugins/smiley/lang/bs.js | 9 + .../_source/plugins/smiley/lang/ca.js | 9 + .../_source/plugins/smiley/lang/cs.js | 9 + .../_source/plugins/smiley/lang/cy.js | 9 + .../_source/plugins/smiley/lang/da.js | 9 + .../_source/plugins/smiley/lang/de.js | 9 + .../_source/plugins/smiley/lang/el.js | 9 + .../_source/plugins/smiley/lang/en-au.js | 9 + .../_source/plugins/smiley/lang/en-ca.js | 9 + .../_source/plugins/smiley/lang/en-gb.js | 9 + .../_source/plugins/smiley/lang/en.js | 9 + .../_source/plugins/smiley/lang/eo.js | 9 + .../_source/plugins/smiley/lang/es.js | 9 + .../_source/plugins/smiley/lang/et.js | 9 + .../_source/plugins/smiley/lang/eu.js | 9 + .../_source/plugins/smiley/lang/fa.js | 9 + .../_source/plugins/smiley/lang/fi.js | 9 + .../_source/plugins/smiley/lang/fo.js | 9 + .../_source/plugins/smiley/lang/fr-ca.js | 9 + .../_source/plugins/smiley/lang/fr.js | 9 + .../_source/plugins/smiley/lang/gl.js | 9 + .../_source/plugins/smiley/lang/gu.js | 9 + .../_source/plugins/smiley/lang/he.js | 9 + .../_source/plugins/smiley/lang/hi.js | 9 + .../_source/plugins/smiley/lang/hr.js | 9 + .../_source/plugins/smiley/lang/hu.js | 9 + .../_source/plugins/smiley/lang/id.js | 9 + .../_source/plugins/smiley/lang/is.js | 9 + .../_source/plugins/smiley/lang/it.js | 9 + .../_source/plugins/smiley/lang/ja.js | 9 + .../_source/plugins/smiley/lang/ka.js | 9 + .../_source/plugins/smiley/lang/km.js | 9 + .../_source/plugins/smiley/lang/ko.js | 9 + .../_source/plugins/smiley/lang/ku.js | 9 + .../_source/plugins/smiley/lang/lt.js | 9 + .../_source/plugins/smiley/lang/lv.js | 9 + .../_source/plugins/smiley/lang/mk.js | 9 + .../_source/plugins/smiley/lang/mn.js | 9 + .../_source/plugins/smiley/lang/ms.js | 9 + .../_source/plugins/smiley/lang/nb.js | 9 + .../_source/plugins/smiley/lang/nl.js | 9 + .../_source/plugins/smiley/lang/no.js | 9 + .../_source/plugins/smiley/lang/pl.js | 9 + .../_source/plugins/smiley/lang/pt-br.js | 9 + .../_source/plugins/smiley/lang/pt.js | 9 + .../_source/plugins/smiley/lang/ro.js | 9 + .../_source/plugins/smiley/lang/ru.js | 9 + .../_source/plugins/smiley/lang/si.js | 9 + .../_source/plugins/smiley/lang/sk.js | 9 + .../_source/plugins/smiley/lang/sl.js | 9 + .../_source/plugins/smiley/lang/sq.js | 9 + .../_source/plugins/smiley/lang/sr-latn.js | 9 + .../_source/plugins/smiley/lang/sr.js | 9 + .../_source/plugins/smiley/lang/sv.js | 9 + .../_source/plugins/smiley/lang/th.js | 9 + .../_source/plugins/smiley/lang/tr.js | 9 + .../_source/plugins/smiley/lang/ug.js | 9 + .../_source/plugins/smiley/lang/uk.js | 9 + .../_source/plugins/smiley/lang/vi.js | 9 + .../_source/plugins/smiley/lang/zh-cn.js | 9 + .../_source/plugins/smiley/lang/zh.js | 9 + .../ckeditor/_source/plugins/smiley/plugin.js | 95 + .../sourcearea/icons/hidpi/source-rtl.png} | Bin .../sourcearea/icons/hidpi/source.png} | Bin .../plugins/sourcearea/icons/source-rtl.png} | Bin .../plugins/sourcearea/icons/source.png} | Bin .../_source/plugins/sourcearea/lang/af.js | 7 + .../_source/plugins/sourcearea/lang/ar.js | 7 + .../_source/plugins/sourcearea/lang/bg.js | 7 + .../_source/plugins/sourcearea/lang/bn.js | 7 + .../_source/plugins/sourcearea/lang/bs.js | 7 + .../_source/plugins/sourcearea/lang/ca.js | 7 + .../_source/plugins/sourcearea/lang/cs.js | 7 + .../_source/plugins/sourcearea/lang/cy.js | 7 + .../_source/plugins/sourcearea/lang/da.js | 7 + .../_source/plugins/sourcearea/lang/de.js | 7 + .../_source/plugins/sourcearea/lang/el.js | 7 + .../_source/plugins/sourcearea/lang/en-au.js | 7 + .../_source/plugins/sourcearea/lang/en-ca.js | 7 + .../_source/plugins/sourcearea/lang/en-gb.js | 7 + .../_source/plugins/sourcearea/lang/en.js | 7 + .../_source/plugins/sourcearea/lang/eo.js | 7 + .../_source/plugins/sourcearea/lang/es.js | 7 + .../_source/plugins/sourcearea/lang/et.js | 7 + .../_source/plugins/sourcearea/lang/eu.js | 7 + .../_source/plugins/sourcearea/lang/fa.js | 7 + .../_source/plugins/sourcearea/lang/fi.js | 7 + .../_source/plugins/sourcearea/lang/fo.js | 7 + .../_source/plugins/sourcearea/lang/fr-ca.js | 7 + .../_source/plugins/sourcearea/lang/fr.js | 7 + .../_source/plugins/sourcearea/lang/gl.js | 7 + .../_source/plugins/sourcearea/lang/gu.js | 7 + .../_source/plugins/sourcearea/lang/he.js | 7 + .../_source/plugins/sourcearea/lang/hi.js | 7 + .../_source/plugins/sourcearea/lang/hr.js | 7 + .../_source/plugins/sourcearea/lang/hu.js | 7 + .../_source/plugins/sourcearea/lang/id.js | 7 + .../_source/plugins/sourcearea/lang/is.js | 7 + .../_source/plugins/sourcearea/lang/it.js | 7 + .../_source/plugins/sourcearea/lang/ja.js | 7 + .../_source/plugins/sourcearea/lang/ka.js | 7 + .../_source/plugins/sourcearea/lang/km.js | 7 + .../_source/plugins/sourcearea/lang/ko.js | 7 + .../_source/plugins/sourcearea/lang/ku.js | 7 + .../_source/plugins/sourcearea/lang/lt.js | 7 + .../_source/plugins/sourcearea/lang/lv.js | 7 + .../_source/plugins/sourcearea/lang/mk.js | 7 + .../_source/plugins/sourcearea/lang/mn.js | 7 + .../_source/plugins/sourcearea/lang/ms.js | 7 + .../_source/plugins/sourcearea/lang/nb.js | 7 + .../_source/plugins/sourcearea/lang/nl.js | 7 + .../_source/plugins/sourcearea/lang/no.js | 7 + .../_source/plugins/sourcearea/lang/pl.js | 7 + .../_source/plugins/sourcearea/lang/pt-br.js | 7 + .../_source/plugins/sourcearea/lang/pt.js | 7 + .../_source/plugins/sourcearea/lang/ro.js | 7 + .../_source/plugins/sourcearea/lang/ru.js | 7 + .../_source/plugins/sourcearea/lang/si.js | 7 + .../_source/plugins/sourcearea/lang/sk.js | 7 + .../_source/plugins/sourcearea/lang/sl.js | 7 + .../_source/plugins/sourcearea/lang/sq.js | 7 + .../plugins/sourcearea/lang/sr-latn.js | 7 + .../_source/plugins/sourcearea/lang/sr.js | 7 + .../_source/plugins/sourcearea/lang/sv.js | 7 + .../_source/plugins/sourcearea/lang/th.js | 7 + .../_source/plugins/sourcearea/lang/tr.js | 7 + .../_source/plugins/sourcearea/lang/ug.js | 7 + .../_source/plugins/sourcearea/lang/uk.js | 7 + .../_source/plugins/sourcearea/lang/vi.js | 7 + .../_source/plugins/sourcearea/lang/zh-cn.js | 7 + .../_source/plugins/sourcearea/lang/zh.js | 7 + .../_source/plugins/sourcearea/plugin.js | 154 + .../dialogs/lang/_translationstatus.txt | 20 + .../plugins/specialchar/dialogs/lang/ar.js | 125 + .../plugins/specialchar/dialogs/lang/bg.js | 125 + .../plugins/specialchar/dialogs/lang/ca.js | 125 + .../plugins/specialchar/dialogs/lang/cs.js | 125 + .../plugins/specialchar/dialogs/lang/cy.js | 125 + .../plugins/specialchar/dialogs/lang/de.js | 125 + .../plugins/specialchar/dialogs/lang/el.js | 125 + .../plugins/specialchar/dialogs/lang/en-gb.js | 125 + .../plugins/specialchar/dialogs/lang/en.js | 125 + .../plugins/specialchar/dialogs/lang/eo.js | 125 + .../plugins/specialchar/dialogs/lang/es.js | 125 + .../plugins/specialchar/dialogs/lang/et.js | 125 + .../plugins/specialchar/dialogs/lang/fa.js | 125 + .../plugins/specialchar/dialogs/lang/fi.js | 125 + .../plugins/specialchar/dialogs/lang/fr-ca.js | 125 + .../plugins/specialchar/dialogs/lang/fr.js | 125 + .../plugins/specialchar/dialogs/lang/gl.js | 125 + .../plugins/specialchar/dialogs/lang/he.js | 125 + .../plugins/specialchar/dialogs/lang/hr.js | 125 + .../plugins/specialchar/dialogs/lang/hu.js | 125 + .../plugins/specialchar/dialogs/lang/id.js | 125 + .../plugins/specialchar/dialogs/lang/it.js | 125 + .../plugins/specialchar/dialogs/lang/ja.js | 125 + .../plugins/specialchar/dialogs/lang/km.js | 125 + .../plugins/specialchar/dialogs/lang/ku.js | 125 + .../plugins/specialchar/dialogs/lang/lv.js | 125 + .../plugins/specialchar/dialogs/lang/nb.js | 125 + .../plugins/specialchar/dialogs/lang/nl.js | 125 + .../plugins/specialchar/dialogs/lang/no.js | 125 + .../plugins/specialchar/dialogs/lang/pl.js | 125 + .../plugins/specialchar/dialogs/lang/pt-br.js | 125 + .../plugins/specialchar/dialogs/lang/pt.js | 125 + .../plugins/specialchar/dialogs/lang/ru.js | 125 + .../plugins/specialchar/dialogs/lang/si.js | 125 + .../plugins/specialchar/dialogs/lang/sk.js | 125 + .../plugins/specialchar/dialogs/lang/sl.js | 125 + .../plugins/specialchar/dialogs/lang/sq.js | 125 + .../plugins/specialchar/dialogs/lang/sv.js | 125 + .../plugins/specialchar/dialogs/lang/th.js | 125 + .../plugins/specialchar/dialogs/lang/tr.js | 125 + .../plugins/specialchar/dialogs/lang/ug.js | 125 + .../plugins/specialchar/dialogs/lang/uk.js | 125 + .../plugins/specialchar/dialogs/lang/vi.js | 125 + .../plugins/specialchar/dialogs/lang/zh-cn.js | 125 + .../plugins/specialchar/dialogs/lang/zh.js | 125 + .../specialchar/dialogs/specialchar.js | 302 ++ .../specialchar/icons/hidpi/specialchar.png | Bin 0 -> 2615 bytes .../plugins/specialchar/icons/specialchar.png | Bin 0 -> 970 bytes .../specialchar/lang/_translationstatus.txt | 63 + .../_source/plugins/specialchar/lang/af.js | 9 + .../_source/plugins/specialchar/lang/ar.js | 9 + .../_source/plugins/specialchar/lang/bg.js | 9 + .../_source/plugins/specialchar/lang/bn.js | 9 + .../_source/plugins/specialchar/lang/bs.js | 9 + .../_source/plugins/specialchar/lang/ca.js | 9 + .../_source/plugins/specialchar/lang/cs.js | 9 + .../_source/plugins/specialchar/lang/cy.js | 9 + .../_source/plugins/specialchar/lang/da.js | 9 + .../_source/plugins/specialchar/lang/de.js | 9 + .../_source/plugins/specialchar/lang/el.js | 9 + .../_source/plugins/specialchar/lang/en-au.js | 9 + .../_source/plugins/specialchar/lang/en-ca.js | 9 + .../_source/plugins/specialchar/lang/en-gb.js | 9 + .../_source/plugins/specialchar/lang/en.js | 9 + .../_source/plugins/specialchar/lang/eo.js | 9 + .../_source/plugins/specialchar/lang/es.js | 9 + .../_source/plugins/specialchar/lang/et.js | 9 + .../_source/plugins/specialchar/lang/eu.js | 9 + .../_source/plugins/specialchar/lang/fa.js | 9 + .../_source/plugins/specialchar/lang/fi.js | 9 + .../_source/plugins/specialchar/lang/fo.js | 9 + .../_source/plugins/specialchar/lang/fr-ca.js | 9 + .../_source/plugins/specialchar/lang/fr.js | 9 + .../_source/plugins/specialchar/lang/gl.js | 9 + .../_source/plugins/specialchar/lang/gu.js | 9 + .../_source/plugins/specialchar/lang/he.js | 9 + .../_source/plugins/specialchar/lang/hi.js | 9 + .../_source/plugins/specialchar/lang/hr.js | 9 + .../_source/plugins/specialchar/lang/hu.js | 9 + .../_source/plugins/specialchar/lang/id.js | 9 + .../_source/plugins/specialchar/lang/is.js | 9 + .../_source/plugins/specialchar/lang/it.js | 9 + .../_source/plugins/specialchar/lang/ja.js | 9 + .../_source/plugins/specialchar/lang/ka.js | 9 + .../_source/plugins/specialchar/lang/km.js | 9 + .../_source/plugins/specialchar/lang/ko.js | 9 + .../_source/plugins/specialchar/lang/ku.js | 9 + .../_source/plugins/specialchar/lang/lt.js | 9 + .../_source/plugins/specialchar/lang/lv.js | 9 + .../_source/plugins/specialchar/lang/mk.js | 9 + .../_source/plugins/specialchar/lang/mn.js | 9 + .../_source/plugins/specialchar/lang/ms.js | 9 + .../_source/plugins/specialchar/lang/nb.js | 9 + .../_source/plugins/specialchar/lang/nl.js | 9 + .../_source/plugins/specialchar/lang/no.js | 9 + .../_source/plugins/specialchar/lang/pl.js | 9 + .../_source/plugins/specialchar/lang/pt-br.js | 9 + .../_source/plugins/specialchar/lang/pt.js | 9 + .../_source/plugins/specialchar/lang/ro.js | 9 + .../_source/plugins/specialchar/lang/ru.js | 9 + .../_source/plugins/specialchar/lang/si.js | 9 + .../_source/plugins/specialchar/lang/sk.js | 9 + .../_source/plugins/specialchar/lang/sl.js | 9 + .../_source/plugins/specialchar/lang/sq.js | 9 + .../plugins/specialchar/lang/sr-latn.js | 9 + .../_source/plugins/specialchar/lang/sr.js | 9 + .../_source/plugins/specialchar/lang/sv.js | 9 + .../_source/plugins/specialchar/lang/th.js | 9 + .../_source/plugins/specialchar/lang/tr.js | 9 + .../_source/plugins/specialchar/lang/ug.js | 9 + .../_source/plugins/specialchar/lang/uk.js | 9 + .../_source/plugins/specialchar/lang/vi.js | 9 + .../_source/plugins/specialchar/lang/zh-cn.js | 9 + .../_source/plugins/specialchar/lang/zh.js | 9 + .../_source/plugins/specialchar/plugin.js | 72 + .../_source/plugins/stylescombo/lang/af.js | 11 + .../_source/plugins/stylescombo/lang/ar.js | 11 + .../_source/plugins/stylescombo/lang/bg.js | 11 + .../_source/plugins/stylescombo/lang/bn.js | 11 + .../_source/plugins/stylescombo/lang/bs.js | 11 + .../_source/plugins/stylescombo/lang/ca.js | 11 + .../_source/plugins/stylescombo/lang/cs.js | 11 + .../_source/plugins/stylescombo/lang/cy.js | 11 + .../_source/plugins/stylescombo/lang/da.js | 11 + .../_source/plugins/stylescombo/lang/de.js | 11 + .../_source/plugins/stylescombo/lang/el.js | 11 + .../_source/plugins/stylescombo/lang/en-au.js | 11 + .../_source/plugins/stylescombo/lang/en-ca.js | 11 + .../_source/plugins/stylescombo/lang/en-gb.js | 11 + .../_source/plugins/stylescombo/lang/en.js | 11 + .../_source/plugins/stylescombo/lang/eo.js | 11 + .../_source/plugins/stylescombo/lang/es.js | 11 + .../_source/plugins/stylescombo/lang/et.js | 11 + .../_source/plugins/stylescombo/lang/eu.js | 11 + .../_source/plugins/stylescombo/lang/fa.js | 11 + .../_source/plugins/stylescombo/lang/fi.js | 11 + .../_source/plugins/stylescombo/lang/fo.js | 11 + .../_source/plugins/stylescombo/lang/fr-ca.js | 11 + .../_source/plugins/stylescombo/lang/fr.js | 11 + .../_source/plugins/stylescombo/lang/gl.js | 11 + .../_source/plugins/stylescombo/lang/gu.js | 11 + .../_source/plugins/stylescombo/lang/he.js | 11 + .../_source/plugins/stylescombo/lang/hi.js | 11 + .../_source/plugins/stylescombo/lang/hr.js | 11 + .../_source/plugins/stylescombo/lang/hu.js | 11 + .../_source/plugins/stylescombo/lang/id.js | 11 + .../_source/plugins/stylescombo/lang/is.js | 11 + .../_source/plugins/stylescombo/lang/it.js | 11 + .../_source/plugins/stylescombo/lang/ja.js | 11 + .../_source/plugins/stylescombo/lang/ka.js | 11 + .../_source/plugins/stylescombo/lang/km.js | 11 + .../_source/plugins/stylescombo/lang/ko.js | 11 + .../_source/plugins/stylescombo/lang/ku.js | 11 + .../_source/plugins/stylescombo/lang/lt.js | 11 + .../_source/plugins/stylescombo/lang/lv.js | 11 + .../_source/plugins/stylescombo/lang/mk.js | 11 + .../_source/plugins/stylescombo/lang/mn.js | 11 + .../_source/plugins/stylescombo/lang/ms.js | 11 + .../_source/plugins/stylescombo/lang/nb.js | 11 + .../_source/plugins/stylescombo/lang/nl.js | 11 + .../_source/plugins/stylescombo/lang/no.js | 11 + .../_source/plugins/stylescombo/lang/pl.js | 11 + .../_source/plugins/stylescombo/lang/pt-br.js | 11 + .../_source/plugins/stylescombo/lang/pt.js | 11 + .../_source/plugins/stylescombo/lang/ro.js | 11 + .../_source/plugins/stylescombo/lang/ru.js | 11 + .../_source/plugins/stylescombo/lang/si.js | 11 + .../_source/plugins/stylescombo/lang/sk.js | 11 + .../_source/plugins/stylescombo/lang/sl.js | 11 + .../_source/plugins/stylescombo/lang/sq.js | 11 + .../plugins/stylescombo/lang/sr-latn.js | 11 + .../_source/plugins/stylescombo/lang/sr.js | 11 + .../_source/plugins/stylescombo/lang/sv.js | 11 + .../_source/plugins/stylescombo/lang/th.js | 11 + .../_source/plugins/stylescombo/lang/tr.js | 11 + .../_source/plugins/stylescombo/lang/ug.js | 11 + .../_source/plugins/stylescombo/lang/uk.js | 11 + .../_source/plugins/stylescombo/lang/vi.js | 11 + .../_source/plugins/stylescombo/lang/zh-cn.js | 11 + .../_source/plugins/stylescombo/lang/zh.js | 11 + .../_source/plugins/stylescombo/plugin.js | 188 + .../ckeditor/_source/plugins/tab/plugin.js | 301 ++ .../_source/plugins/table/dialogs/table.js | 555 +++ .../plugins/table/icons/hidpi/table.png | Bin 0 -> 1006 bytes .../_source/plugins/table/icons/table.png | Bin 0 -> 535 bytes .../ckeditor/_source/plugins/table/lang/af.js | 74 + .../ckeditor/_source/plugins/table/lang/ar.js | 74 + .../ckeditor/_source/plugins/table/lang/bg.js | 74 + .../ckeditor/_source/plugins/table/lang/bn.js | 74 + .../ckeditor/_source/plugins/table/lang/bs.js | 74 + .../ckeditor/_source/plugins/table/lang/ca.js | 74 + .../ckeditor/_source/plugins/table/lang/cs.js | 74 + .../ckeditor/_source/plugins/table/lang/cy.js | 74 + .../ckeditor/_source/plugins/table/lang/da.js | 74 + .../ckeditor/_source/plugins/table/lang/de.js | 74 + .../ckeditor/_source/plugins/table/lang/el.js | 74 + .../_source/plugins/table/lang/en-au.js | 74 + .../_source/plugins/table/lang/en-ca.js | 74 + .../_source/plugins/table/lang/en-gb.js | 74 + .../ckeditor/_source/plugins/table/lang/en.js | 74 + .../ckeditor/_source/plugins/table/lang/eo.js | 74 + .../ckeditor/_source/plugins/table/lang/es.js | 74 + .../ckeditor/_source/plugins/table/lang/et.js | 74 + .../ckeditor/_source/plugins/table/lang/eu.js | 74 + .../ckeditor/_source/plugins/table/lang/fa.js | 74 + .../ckeditor/_source/plugins/table/lang/fi.js | 74 + .../ckeditor/_source/plugins/table/lang/fo.js | 74 + .../_source/plugins/table/lang/fr-ca.js | 74 + .../ckeditor/_source/plugins/table/lang/fr.js | 74 + .../ckeditor/_source/plugins/table/lang/gl.js | 74 + .../ckeditor/_source/plugins/table/lang/gu.js | 74 + .../ckeditor/_source/plugins/table/lang/he.js | 74 + .../ckeditor/_source/plugins/table/lang/hi.js | 74 + .../ckeditor/_source/plugins/table/lang/hr.js | 74 + .../ckeditor/_source/plugins/table/lang/hu.js | 74 + .../ckeditor/_source/plugins/table/lang/id.js | 74 + .../ckeditor/_source/plugins/table/lang/is.js | 74 + .../ckeditor/_source/plugins/table/lang/it.js | 74 + .../ckeditor/_source/plugins/table/lang/ja.js | 74 + .../ckeditor/_source/plugins/table/lang/ka.js | 74 + .../ckeditor/_source/plugins/table/lang/km.js | 74 + .../ckeditor/_source/plugins/table/lang/ko.js | 74 + .../ckeditor/_source/plugins/table/lang/ku.js | 74 + .../ckeditor/_source/plugins/table/lang/lt.js | 74 + .../ckeditor/_source/plugins/table/lang/lv.js | 74 + .../ckeditor/_source/plugins/table/lang/mk.js | 74 + .../ckeditor/_source/plugins/table/lang/mn.js | 74 + .../ckeditor/_source/plugins/table/lang/ms.js | 74 + .../ckeditor/_source/plugins/table/lang/nb.js | 74 + .../ckeditor/_source/plugins/table/lang/nl.js | 74 + .../ckeditor/_source/plugins/table/lang/no.js | 74 + .../ckeditor/_source/plugins/table/lang/pl.js | 74 + .../_source/plugins/table/lang/pt-br.js | 74 + .../ckeditor/_source/plugins/table/lang/pt.js | 74 + .../ckeditor/_source/plugins/table/lang/ro.js | 74 + .../ckeditor/_source/plugins/table/lang/ru.js | 74 + .../ckeditor/_source/plugins/table/lang/si.js | 74 + .../ckeditor/_source/plugins/table/lang/sk.js | 74 + .../ckeditor/_source/plugins/table/lang/sl.js | 74 + .../ckeditor/_source/plugins/table/lang/sq.js | 74 + .../_source/plugins/table/lang/sr-latn.js | 74 + .../ckeditor/_source/plugins/table/lang/sr.js | 74 + .../ckeditor/_source/plugins/table/lang/sv.js | 74 + .../ckeditor/_source/plugins/table/lang/th.js | 74 + .../ckeditor/_source/plugins/table/lang/tr.js | 74 + .../ckeditor/_source/plugins/table/lang/ug.js | 74 + .../ckeditor/_source/plugins/table/lang/uk.js | 74 + .../ckeditor/_source/plugins/table/lang/vi.js | 74 + .../_source/plugins/table/lang/zh-cn.js | 74 + .../ckeditor/_source/plugins/table/lang/zh.js | 74 + .../ckeditor/_source/plugins/table/plugin.js | 106 + .../plugins/tabletools/dialogs/tableCell.js | 493 +++ .../_source/plugins/tabletools/plugin.js | 1037 ++++++ .../plugins/templates/dialogs/templates.css | 84 + .../plugins/templates/dialogs/templates.js | 203 + .../templates/icons/hidpi/templates-rtl.png | Bin .../templates/icons/hidpi/templates.png | Bin .../plugins/templates/icons/templates-rtl.png | Bin .../plugins/templates/icons/templates.png | Bin .../_source/plugins/templates/lang/af.js | 12 + .../_source/plugins/templates/lang/ar.js | 12 + .../_source/plugins/templates/lang/bg.js | 12 + .../_source/plugins/templates/lang/bn.js | 12 + .../_source/plugins/templates/lang/bs.js | 12 + .../_source/plugins/templates/lang/ca.js | 12 + .../_source/plugins/templates/lang/cs.js | 12 + .../_source/plugins/templates/lang/cy.js | 12 + .../_source/plugins/templates/lang/da.js | 12 + .../_source/plugins/templates/lang/de.js | 12 + .../_source/plugins/templates/lang/el.js | 12 + .../_source/plugins/templates/lang/en-au.js | 12 + .../_source/plugins/templates/lang/en-ca.js | 12 + .../_source/plugins/templates/lang/en-gb.js | 12 + .../_source/plugins/templates/lang/en.js | 12 + .../_source/plugins/templates/lang/eo.js | 12 + .../_source/plugins/templates/lang/es.js | 12 + .../_source/plugins/templates/lang/et.js | 12 + .../_source/plugins/templates/lang/eu.js | 12 + .../_source/plugins/templates/lang/fa.js | 12 + .../_source/plugins/templates/lang/fi.js | 12 + .../_source/plugins/templates/lang/fo.js | 12 + .../_source/plugins/templates/lang/fr-ca.js | 12 + .../_source/plugins/templates/lang/fr.js | 12 + .../_source/plugins/templates/lang/gl.js | 12 + .../_source/plugins/templates/lang/gu.js | 12 + .../_source/plugins/templates/lang/he.js | 12 + .../_source/plugins/templates/lang/hi.js | 12 + .../_source/plugins/templates/lang/hr.js | 12 + .../_source/plugins/templates/lang/hu.js | 12 + .../_source/plugins/templates/lang/id.js | 12 + .../_source/plugins/templates/lang/is.js | 12 + .../_source/plugins/templates/lang/it.js | 12 + .../_source/plugins/templates/lang/ja.js | 12 + .../_source/plugins/templates/lang/ka.js | 12 + .../_source/plugins/templates/lang/km.js | 12 + .../_source/plugins/templates/lang/ko.js | 12 + .../_source/plugins/templates/lang/ku.js | 12 + .../_source/plugins/templates/lang/lt.js | 12 + .../_source/plugins/templates/lang/lv.js | 12 + .../_source/plugins/templates/lang/mk.js | 12 + .../_source/plugins/templates/lang/mn.js | 12 + .../_source/plugins/templates/lang/ms.js | 12 + .../_source/plugins/templates/lang/nb.js | 12 + .../_source/plugins/templates/lang/nl.js | 12 + .../_source/plugins/templates/lang/no.js | 12 + .../_source/plugins/templates/lang/pl.js | 12 + .../_source/plugins/templates/lang/pt-br.js | 12 + .../_source/plugins/templates/lang/pt.js | 12 + .../_source/plugins/templates/lang/ro.js | 12 + .../_source/plugins/templates/lang/ru.js | 12 + .../_source/plugins/templates/lang/si.js | 12 + .../_source/plugins/templates/lang/sk.js | 12 + .../_source/plugins/templates/lang/sl.js | 12 + .../_source/plugins/templates/lang/sq.js | 12 + .../_source/plugins/templates/lang/sr-latn.js | 12 + .../_source/plugins/templates/lang/sr.js | 12 + .../_source/plugins/templates/lang/sv.js | 12 + .../_source/plugins/templates/lang/th.js | 12 + .../_source/plugins/templates/lang/tr.js | 12 + .../_source/plugins/templates/lang/ug.js | 12 + .../_source/plugins/templates/lang/uk.js | 12 + .../_source/plugins/templates/lang/vi.js | 12 + .../_source/plugins/templates/lang/zh-cn.js | 12 + .../_source/plugins/templates/lang/zh.js | 12 + .../_source/plugins/templates/plugin.js | 91 + .../plugins/templates/templates/default.js | 89 + .../templates/templates/images/template1.gif | Bin 0 -> 375 bytes .../templates/templates/images/template2.gif | Bin 0 -> 333 bytes .../templates/templates/images/template3.gif | Bin 0 -> 422 bytes .../_source/plugins/toolbar/lang/af.js | 22 + .../_source/plugins/toolbar/lang/ar.js | 22 + .../_source/plugins/toolbar/lang/bg.js | 22 + .../_source/plugins/toolbar/lang/bn.js | 22 + .../_source/plugins/toolbar/lang/bs.js | 22 + .../_source/plugins/toolbar/lang/ca.js | 22 + .../_source/plugins/toolbar/lang/cs.js | 22 + .../_source/plugins/toolbar/lang/cy.js | 22 + .../_source/plugins/toolbar/lang/da.js | 22 + .../_source/plugins/toolbar/lang/de.js | 22 + .../_source/plugins/toolbar/lang/el.js | 22 + .../_source/plugins/toolbar/lang/en-au.js | 22 + .../_source/plugins/toolbar/lang/en-ca.js | 22 + .../_source/plugins/toolbar/lang/en-gb.js | 22 + .../_source/plugins/toolbar/lang/en.js | 22 + .../_source/plugins/toolbar/lang/eo.js | 22 + .../_source/plugins/toolbar/lang/es.js | 22 + .../_source/plugins/toolbar/lang/et.js | 22 + .../_source/plugins/toolbar/lang/eu.js | 22 + .../_source/plugins/toolbar/lang/fa.js | 22 + .../_source/plugins/toolbar/lang/fi.js | 22 + .../_source/plugins/toolbar/lang/fo.js | 22 + .../_source/plugins/toolbar/lang/fr-ca.js | 22 + .../_source/plugins/toolbar/lang/fr.js | 22 + .../_source/plugins/toolbar/lang/gl.js | 22 + .../_source/plugins/toolbar/lang/gu.js | 22 + .../_source/plugins/toolbar/lang/he.js | 22 + .../_source/plugins/toolbar/lang/hi.js | 22 + .../_source/plugins/toolbar/lang/hr.js | 22 + .../_source/plugins/toolbar/lang/hu.js | 22 + .../_source/plugins/toolbar/lang/id.js | 22 + .../_source/plugins/toolbar/lang/is.js | 22 + .../_source/plugins/toolbar/lang/it.js | 22 + .../_source/plugins/toolbar/lang/ja.js | 22 + .../_source/plugins/toolbar/lang/ka.js | 22 + .../_source/plugins/toolbar/lang/km.js | 22 + .../_source/plugins/toolbar/lang/ko.js | 22 + .../_source/plugins/toolbar/lang/ku.js | 22 + .../_source/plugins/toolbar/lang/lt.js | 22 + .../_source/plugins/toolbar/lang/lv.js | 22 + .../_source/plugins/toolbar/lang/mk.js | 22 + .../_source/plugins/toolbar/lang/mn.js | 22 + .../_source/plugins/toolbar/lang/ms.js | 22 + .../_source/plugins/toolbar/lang/nb.js | 22 + .../_source/plugins/toolbar/lang/nl.js | 22 + .../_source/plugins/toolbar/lang/no.js | 22 + .../_source/plugins/toolbar/lang/pl.js | 22 + .../_source/plugins/toolbar/lang/pt-br.js | 22 + .../_source/plugins/toolbar/lang/pt.js | 22 + .../_source/plugins/toolbar/lang/ro.js | 22 + .../_source/plugins/toolbar/lang/ru.js | 22 + .../_source/plugins/toolbar/lang/si.js | 22 + .../_source/plugins/toolbar/lang/sk.js | 22 + .../_source/plugins/toolbar/lang/sl.js | 22 + .../_source/plugins/toolbar/lang/sq.js | 22 + .../_source/plugins/toolbar/lang/sr-latn.js | 22 + .../_source/plugins/toolbar/lang/sr.js | 22 + .../_source/plugins/toolbar/lang/sv.js | 22 + .../_source/plugins/toolbar/lang/th.js | 22 + .../_source/plugins/toolbar/lang/tr.js | 22 + .../_source/plugins/toolbar/lang/ug.js | 22 + .../_source/plugins/toolbar/lang/uk.js | 22 + .../_source/plugins/toolbar/lang/vi.js | 22 + .../_source/plugins/toolbar/lang/zh-cn.js | 22 + .../_source/plugins/toolbar/lang/zh.js | 22 + .../_source/plugins/toolbar/plugin.js | 781 ++++ .../plugins/toolbar/samples}/toolbar.html | 0 .../plugins/undo/icons/hidpi/redo-rtl.png | Bin 0 -> 1869 bytes .../_source/plugins/undo/icons/hidpi/redo.png | Bin 0 -> 1783 bytes .../plugins/undo/icons/hidpi/undo-rtl.png | Bin 0 -> 1783 bytes .../_source/plugins/undo/icons/hidpi/undo.png | Bin 0 -> 1869 bytes .../_source/plugins/undo/icons/redo-rtl.png | Bin 0 -> 849 bytes .../_source/plugins/undo/icons/redo.png | Bin 0 -> 842 bytes .../_source/plugins/undo/icons/undo-rtl.png | Bin 0 -> 842 bytes .../_source/plugins/undo/icons/undo.png | Bin 0 -> 850 bytes .../ckeditor/_source/plugins/undo/lang/af.js | 8 + .../ckeditor/_source/plugins/undo/lang/ar.js | 8 + .../ckeditor/_source/plugins/undo/lang/bg.js | 8 + .../ckeditor/_source/plugins/undo/lang/bn.js | 8 + .../ckeditor/_source/plugins/undo/lang/bs.js | 8 + .../ckeditor/_source/plugins/undo/lang/ca.js | 8 + .../ckeditor/_source/plugins/undo/lang/cs.js | 8 + .../ckeditor/_source/plugins/undo/lang/cy.js | 8 + .../ckeditor/_source/plugins/undo/lang/da.js | 8 + .../ckeditor/_source/plugins/undo/lang/de.js | 8 + .../ckeditor/_source/plugins/undo/lang/el.js | 8 + .../_source/plugins/undo/lang/en-au.js | 8 + .../_source/plugins/undo/lang/en-ca.js | 8 + .../_source/plugins/undo/lang/en-gb.js | 8 + .../ckeditor/_source/plugins/undo/lang/en.js | 8 + .../ckeditor/_source/plugins/undo/lang/eo.js | 8 + .../ckeditor/_source/plugins/undo/lang/es.js | 8 + .../ckeditor/_source/plugins/undo/lang/et.js | 8 + .../ckeditor/_source/plugins/undo/lang/eu.js | 8 + .../ckeditor/_source/plugins/undo/lang/fa.js | 8 + .../ckeditor/_source/plugins/undo/lang/fi.js | 8 + .../ckeditor/_source/plugins/undo/lang/fo.js | 8 + .../_source/plugins/undo/lang/fr-ca.js | 8 + .../ckeditor/_source/plugins/undo/lang/fr.js | 8 + .../ckeditor/_source/plugins/undo/lang/gl.js | 8 + .../ckeditor/_source/plugins/undo/lang/gu.js | 8 + .../ckeditor/_source/plugins/undo/lang/he.js | 8 + .../ckeditor/_source/plugins/undo/lang/hi.js | 8 + .../ckeditor/_source/plugins/undo/lang/hr.js | 8 + .../ckeditor/_source/plugins/undo/lang/hu.js | 8 + .../ckeditor/_source/plugins/undo/lang/id.js | 8 + .../ckeditor/_source/plugins/undo/lang/is.js | 8 + .../ckeditor/_source/plugins/undo/lang/it.js | 8 + .../ckeditor/_source/plugins/undo/lang/ja.js | 8 + .../ckeditor/_source/plugins/undo/lang/ka.js | 8 + .../ckeditor/_source/plugins/undo/lang/km.js | 8 + .../ckeditor/_source/plugins/undo/lang/ko.js | 8 + .../ckeditor/_source/plugins/undo/lang/ku.js | 8 + .../ckeditor/_source/plugins/undo/lang/lt.js | 8 + .../ckeditor/_source/plugins/undo/lang/lv.js | 8 + .../ckeditor/_source/plugins/undo/lang/mk.js | 8 + .../ckeditor/_source/plugins/undo/lang/mn.js | 8 + .../ckeditor/_source/plugins/undo/lang/ms.js | 8 + .../ckeditor/_source/plugins/undo/lang/nb.js | 8 + .../ckeditor/_source/plugins/undo/lang/nl.js | 8 + .../ckeditor/_source/plugins/undo/lang/no.js | 8 + .../ckeditor/_source/plugins/undo/lang/pl.js | 8 + .../_source/plugins/undo/lang/pt-br.js | 8 + .../ckeditor/_source/plugins/undo/lang/pt.js | 8 + .../ckeditor/_source/plugins/undo/lang/ro.js | 8 + .../ckeditor/_source/plugins/undo/lang/ru.js | 8 + .../ckeditor/_source/plugins/undo/lang/si.js | 8 + .../ckeditor/_source/plugins/undo/lang/sk.js | 8 + .../ckeditor/_source/plugins/undo/lang/sl.js | 8 + .../ckeditor/_source/plugins/undo/lang/sq.js | 8 + .../_source/plugins/undo/lang/sr-latn.js | 8 + .../ckeditor/_source/plugins/undo/lang/sr.js | 8 + .../ckeditor/_source/plugins/undo/lang/sv.js | 8 + .../ckeditor/_source/plugins/undo/lang/th.js | 8 + .../ckeditor/_source/plugins/undo/lang/tr.js | 8 + .../ckeditor/_source/plugins/undo/lang/ug.js | 8 + .../ckeditor/_source/plugins/undo/lang/uk.js | 8 + .../ckeditor/_source/plugins/undo/lang/vi.js | 8 + .../_source/plugins/undo/lang/zh-cn.js | 8 + .../ckeditor/_source/plugins/undo/lang/zh.js | 8 + .../ckeditor/_source/plugins/undo/plugin.js | 738 ++++ .../ckeditor/_source/plugins/wsc/LICENSE.md | 28 + .../ckeditor/_source/plugins/wsc/README.md | 25 + .../_source/plugins/wsc/dialogs/ciframe.html | 66 + .../_source/plugins/wsc/dialogs/tmp.html | 118 + .../plugins/wsc/dialogs/tmpFrameset.html | 52 + .../_source/plugins/wsc/dialogs/wsc.css | 82 + .../_source/plugins/wsc/dialogs/wsc.js | 2135 +++++++++++ .../_source/plugins/wsc/dialogs/wsc_ie.js | 176 + .../plugins/wsc/icons/hidpi/spellchecker.png | Bin 0 -> 2816 bytes .../plugins/wsc/icons/spellchecker.png | Bin 0 -> 836 bytes .../ckeditor/_source/plugins/wsc/lang/af.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ar.js | 24 + .../ckeditor/_source/plugins/wsc/lang/bg.js | 24 + .../ckeditor/_source/plugins/wsc/lang/bn.js | 24 + .../ckeditor/_source/plugins/wsc/lang/bs.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ca.js | 24 + .../ckeditor/_source/plugins/wsc/lang/cs.js | 24 + .../ckeditor/_source/plugins/wsc/lang/cy.js | 24 + .../ckeditor/_source/plugins/wsc/lang/da.js | 24 + .../ckeditor/_source/plugins/wsc/lang/de.js | 24 + .../ckeditor/_source/plugins/wsc/lang/el.js | 24 + .../_source/plugins/wsc/lang/en-au.js | 24 + .../_source/plugins/wsc/lang/en-ca.js | 24 + .../_source/plugins/wsc/lang/en-gb.js | 24 + .../ckeditor/_source/plugins/wsc/lang/en.js | 24 + .../ckeditor/_source/plugins/wsc/lang/eo.js | 24 + .../ckeditor/_source/plugins/wsc/lang/es.js | 24 + .../ckeditor/_source/plugins/wsc/lang/et.js | 24 + .../ckeditor/_source/plugins/wsc/lang/eu.js | 24 + .../ckeditor/_source/plugins/wsc/lang/fa.js | 24 + .../ckeditor/_source/plugins/wsc/lang/fi.js | 24 + .../ckeditor/_source/plugins/wsc/lang/fo.js | 24 + .../_source/plugins/wsc/lang/fr-ca.js | 24 + .../ckeditor/_source/plugins/wsc/lang/fr.js | 24 + .../ckeditor/_source/plugins/wsc/lang/gl.js | 24 + .../ckeditor/_source/plugins/wsc/lang/gu.js | 24 + .../ckeditor/_source/plugins/wsc/lang/he.js | 24 + .../ckeditor/_source/plugins/wsc/lang/hi.js | 24 + .../ckeditor/_source/plugins/wsc/lang/hr.js | 24 + .../ckeditor/_source/plugins/wsc/lang/hu.js | 24 + .../ckeditor/_source/plugins/wsc/lang/is.js | 24 + .../ckeditor/_source/plugins/wsc/lang/it.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ja.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ka.js | 24 + .../ckeditor/_source/plugins/wsc/lang/km.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ko.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ku.js | 24 + .../ckeditor/_source/plugins/wsc/lang/lt.js | 24 + .../ckeditor/_source/plugins/wsc/lang/lv.js | 24 + .../ckeditor/_source/plugins/wsc/lang/mk.js | 24 + .../ckeditor/_source/plugins/wsc/lang/mn.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ms.js | 24 + .../ckeditor/_source/plugins/wsc/lang/nb.js | 24 + .../ckeditor/_source/plugins/wsc/lang/nl.js | 24 + .../ckeditor/_source/plugins/wsc/lang/no.js | 24 + .../ckeditor/_source/plugins/wsc/lang/pl.js | 24 + .../_source/plugins/wsc/lang/pt-br.js | 24 + .../ckeditor/_source/plugins/wsc/lang/pt.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ro.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ru.js | 24 + .../ckeditor/_source/plugins/wsc/lang/sk.js | 24 + .../ckeditor/_source/plugins/wsc/lang/sl.js | 24 + .../_source/plugins/wsc/lang/sr-latn.js | 24 + .../ckeditor/_source/plugins/wsc/lang/sr.js | 24 + .../ckeditor/_source/plugins/wsc/lang/sv.js | 24 + .../ckeditor/_source/plugins/wsc/lang/th.js | 24 + .../ckeditor/_source/plugins/wsc/lang/tr.js | 24 + .../ckeditor/_source/plugins/wsc/lang/ug.js | 24 + .../ckeditor/_source/plugins/wsc/lang/uk.js | 24 + .../ckeditor/_source/plugins/wsc/lang/vi.js | 24 + .../_source/plugins/wsc/lang/zh-cn.js | 24 + .../ckeditor/_source/plugins/wsc/lang/zh.js | 24 + .../ckeditor/_source/plugins/wsc/plugin.js | 65 + .../_source/plugins/wysiwygarea/plugin.js | 653 ++++ .../wysiwygarea/samples}/fullpage.html | 0 .../_source/skins/moonocolor/colorpanel.css | 127 + .../_source/skins/moonocolor/dialog.css | 1072 ++++++ .../_source/skins/moonocolor/dialog_ie.css | 62 + .../_source/skins/moonocolor/dialog_ie7.css | 68 + .../_source/skins/moonocolor/dialog_ie8.css | 24 + .../skins/moonocolor/dialog_iequirks.css | 21 + .../_source/skins/moonocolor/dialog_opera.css | 31 + .../_source/skins/moonocolor/editor.css | 66 + .../_source/skins/moonocolor/editor_gecko.css | 25 + .../_source/skins/moonocolor/editor_ie.css | 71 + .../_source/skins/moonocolor/editor_ie7.css | 213 ++ .../_source/skins/moonocolor/editor_ie8.css | 27 + .../skins/moonocolor/editor_iequirks.css | 79 + .../_source/skins/moonocolor/elementspath.css | 80 + .../_source/skins/moonocolor/icons/about.png | Bin 0 -> 776 bytes .../skins/moonocolor/icons/anchor-rtl.png | Bin 0 -> 751 bytes .../_source/skins/moonocolor/icons/anchor.png | Bin 0 -> 769 bytes .../skins/moonocolor/icons/bgcolor.png | Bin 0 -> 156 bytes .../skins/moonocolor/icons/bidiltr.png | Bin 0 -> 485 bytes .../skins/moonocolor/icons/bidirtl.png | Bin 0 -> 485 bytes .../skins/moonocolor/icons/blockquote.png | Bin 0 -> 462 bytes .../_source/skins/moonocolor/icons/bold.png | Bin 0 -> 405 bytes .../moonocolor/icons/bulletedlist-rtl.png | Bin 0 -> 337 bytes .../skins/moonocolor/icons/bulletedlist.png | Bin 0 -> 335 bytes .../_source/skins/moonocolor/icons/button.png | Bin 0 -> 341 bytes .../skins/moonocolor/icons/checkbox.png | Bin 0 -> 424 bytes .../skins/moonocolor/icons/copy-rtl.png | Bin 0 -> 745 bytes .../_source/skins/moonocolor/icons/copy.png | Bin 0 -> 774 bytes .../skins/moonocolor/icons/creatediv.png | Bin 0 -> 426 bytes .../skins/moonocolor/icons/cut-rtl.png | Bin 0 -> 677 bytes .../_source/skins/moonocolor/icons/cut.png | Bin 0 -> 662 bytes .../skins/moonocolor/icons/find-rtl.png | Bin 0 -> 605 bytes .../_source/skins/moonocolor/icons/find.png | Bin 0 -> 608 bytes .../_source/skins/moonocolor/icons/flash.png | Bin 0 -> 729 bytes .../_source/skins/moonocolor/icons/form.png | Bin 0 -> 560 bytes .../skins/moonocolor/icons/hiddenfield.png | Bin 0 -> 465 bytes .../skins/moonocolor/icons/horizontalrule.png | Bin 0 -> 307 bytes .../_source/skins/moonocolor/icons/iframe.png | Bin 0 -> 827 bytes .../_source/skins/moonocolor/icons/image.png | Bin 0 -> 663 bytes .../skins/moonocolor/icons/imagebutton.png | Bin 0 -> 501 bytes .../skins/moonocolor/icons/indent-rtl.png | Bin 0 -> 341 bytes .../_source/skins/moonocolor/icons/indent.png | Bin 0 -> 341 bytes .../_source/skins/moonocolor/icons/italic.png | Bin 0 -> 297 bytes .../skins/moonocolor/icons/justifyblock.png | Bin 0 -> 236 bytes .../skins/moonocolor/icons/justifycenter.png | Bin 0 -> 251 bytes .../skins/moonocolor/icons/justifyleft.png | Bin 0 -> 240 bytes .../skins/moonocolor/icons/justifyright.png | Bin 0 -> 234 bytes .../_source/skins/moonocolor/icons/link.png | Bin 0 -> 652 bytes .../skins/moonocolor/icons/maximize.png | Bin 0 -> 615 bytes .../skins/moonocolor/icons/newpage-rtl.png | Bin 0 -> 428 bytes .../skins/moonocolor/icons/newpage.png | Bin 0 -> 430 bytes .../moonocolor/icons/numberedlist-rtl.png | Bin 0 -> 363 bytes .../skins/moonocolor/icons/numberedlist.png | Bin 0 -> 366 bytes .../skins/moonocolor/icons/outdent-rtl.png | Bin 0 -> 346 bytes .../skins/moonocolor/icons/outdent.png | Bin 0 -> 338 bytes .../skins/moonocolor/icons/pagebreak-rtl.png | Bin 0 -> 408 bytes .../skins/moonocolor/icons/pagebreak.png | Bin 0 -> 410 bytes .../skins/moonocolor/icons/paste-rtl.png | Bin 0 -> 793 bytes .../_source/skins/moonocolor/icons/paste.png | Bin 0 -> 808 bytes .../moonocolor/icons/pastefromword-rtl.png | Bin 0 -> 822 bytes .../skins/moonocolor/icons/pastefromword.png | Bin 0 -> 822 bytes .../skins/moonocolor/icons/pastetext-rtl.png | Bin 0 -> 848 bytes .../skins/moonocolor/icons/pastetext.png | Bin 0 -> 834 bytes .../skins/moonocolor/icons/preview-rtl.png | Bin 0 -> 623 bytes .../skins/moonocolor/icons/preview.png | Bin 0 -> 638 bytes .../_source/skins/moonocolor/icons/print.png | Bin 0 -> 834 bytes .../_source/skins/moonocolor/icons/radio.png | Bin 0 -> 548 bytes .../skins/moonocolor/icons/redo-rtl.png | Bin 0 -> 628 bytes .../_source/skins/moonocolor/icons/redo.png | Bin 0 -> 632 bytes .../skins/moonocolor/icons/removeformat.png | Bin 0 -> 691 bytes .../skins/moonocolor/icons/replace.png | Bin 0 -> 745 bytes .../_source/skins/moonocolor/icons/save.png | Bin 0 -> 728 bytes .../_source/skins/moonocolor/icons/scayt.png | Bin 0 -> 679 bytes .../skins/moonocolor/icons/select-rtl.png | Bin 0 -> 358 bytes .../_source/skins/moonocolor/icons/select.png | Bin 0 -> 354 bytes .../skins/moonocolor/icons/selectall.png | Bin 0 -> 530 bytes .../skins/moonocolor/icons/showblocks-rtl.png | Bin 0 -> 340 bytes .../skins/moonocolor/icons/showblocks.png | Bin 0 -> 354 bytes .../_source/skins/moonocolor/icons/smiley.png | Bin 0 -> 732 bytes .../skins/moonocolor/icons/source-rtl.png | Bin 0 -> 650 bytes .../_source/skins/moonocolor/icons/source.png | Bin 0 -> 647 bytes .../skins/moonocolor/icons/specialchar.png | Bin 0 -> 565 bytes .../skins/moonocolor/icons/spellchecker.png | Bin 0 -> 679 bytes .../_source/skins/moonocolor/icons/strike.png | Bin 0 -> 389 bytes .../skins/moonocolor/icons/subscript.png | Bin 0 -> 438 bytes .../skins/moonocolor/icons/superscript.png | Bin 0 -> 446 bytes .../_source/skins/moonocolor/icons/table.png | Bin 0 -> 568 bytes .../skins/moonocolor/icons/templates-rtl.png | Bin 0 -> 608 bytes .../skins/moonocolor/icons/templates.png | Bin 0 -> 610 bytes .../skins/moonocolor/icons/textarea-rtl.png | Bin 0 -> 431 bytes .../skins/moonocolor/icons/textarea.png | Bin 0 -> 433 bytes .../skins/moonocolor/icons/textcolor.png | Bin 0 -> 218 bytes .../skins/moonocolor/icons/textfield-rtl.png | Bin 0 -> 323 bytes .../skins/moonocolor/icons/textfield.png | Bin 0 -> 324 bytes .../skins/moonocolor/icons/underline.png | Bin 0 -> 338 bytes .../skins/moonocolor/icons/undo-rtl.png | Bin 0 -> 632 bytes .../_source/skins/moonocolor/icons/undo.png | Bin 0 -> 628 bytes .../_source/skins/moonocolor/icons/unlink.png | Bin 0 -> 662 bytes .../_source/skins/moonocolor/images/arrow.png | Bin 0 -> 261 bytes .../_source/skins/moonocolor/images/close.png | Bin 0 -> 824 bytes .../skins/moonocolor/images/hidpi/close.png | Bin 0 -> 1792 bytes .../moonocolor/images/hidpi/lock-open.png | Bin 0 -> 1503 bytes .../skins/moonocolor/images/hidpi/lock.png | Bin 0 -> 1616 bytes .../skins/moonocolor/images/hidpi/refresh.png | Bin 0 -> 2320 bytes .../skins/moonocolor/images/lock-open.png | Bin 0 -> 736 bytes .../_source/skins/moonocolor/images/lock.png | Bin 0 -> 728 bytes .../skins/moonocolor/images/refresh.png | Bin 0 -> 953 bytes .../_source/skins/moonocolor/mainui.css | 234 ++ .../_source/skins/moonocolor/menu.css | 203 + .../_source/skins/moonocolor/panel.css | 255 ++ .../_source/skins/moonocolor/presets.css | 37 + .../_source/skins/moonocolor/readme.md | 51 + .../_source/skins/moonocolor/reset.css | 119 + .../_source/skins/moonocolor/richcombo.css | 231 ++ .../ckeditor/_source/skins/moonocolor/skin.js | 274 ++ .../_source/skins/moonocolor/toolbar.css | 430 +++ .../ckeditor/ckeditor/_source/styles.js | 112 + htdocs/includes/ckeditor/ckeditor/bower.json | 8 - .../ckeditor/ckeditor/build-config.js | 165 + htdocs/includes/ckeditor/ckeditor/ckeditor.js | 1861 +++++----- .../includes/ckeditor/ckeditor/composer.json | 20 - htdocs/includes/ckeditor/ckeditor/config.js | 34 +- .../includes/ckeditor/ckeditor/contents.css | 2 +- htdocs/includes/ckeditor/ckeditor/lang/af.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ar.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/bg.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/bn.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/bs.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ca.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/cs.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/cy.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/da.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/de.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/el.js | 4 +- .../includes/ckeditor/ckeditor/lang/en-au.js | 4 +- .../includes/ckeditor/ckeditor/lang/en-ca.js | 4 +- .../includes/ckeditor/ckeditor/lang/en-gb.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/en.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/eo.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/es.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/et.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/eu.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/fa.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/fi.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/fo.js | 4 +- .../includes/ckeditor/ckeditor/lang/fr-ca.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/fr.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/gl.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/gu.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/he.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/hi.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/hr.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/hu.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/id.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/is.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/it.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ja.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ka.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/km.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ko.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ku.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/lt.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/lv.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/mk.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/mn.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ms.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/nb.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/nl.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/no.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/pl.js | 4 +- .../includes/ckeditor/ckeditor/lang/pt-br.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/pt.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ro.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ru.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/si.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/sk.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/sl.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/sq.js | 4 +- .../ckeditor/ckeditor/lang/sr-latn.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/sr.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/sv.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/th.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/tr.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/ug.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/uk.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/vi.js | 4 +- .../includes/ckeditor/ckeditor/lang/zh-cn.js | 4 +- htdocs/includes/ckeditor/ckeditor/lang/zh.js | 4 +- .../ckeditor/plugins/adobeair/plugin.js | 9 - .../ckeditor/ckeditor/plugins/ajax/plugin.js | 6 - .../ckeditor/plugins/autogrow/plugin.js | 8 - .../ckeditor/plugins/bbcode/plugin.js | 22 - .../ckeditor/ckeditor/plugins/bidi/lang/af.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ar.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/bg.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/bn.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/bs.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ca.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/cs.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/cy.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/da.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/de.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/el.js | 1 - .../ckeditor/plugins/bidi/lang/en-au.js | 1 - .../ckeditor/plugins/bidi/lang/en-ca.js | 1 - .../ckeditor/plugins/bidi/lang/en-gb.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/en.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/eo.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/es.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/et.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/eu.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/fa.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/fi.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/fo.js | 1 - .../ckeditor/plugins/bidi/lang/fr-ca.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/fr.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/gl.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/gu.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/he.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/hi.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/hr.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/hu.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/id.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/is.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/it.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ja.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ka.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/km.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ko.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ku.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/lt.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/lv.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/mk.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/mn.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ms.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/nb.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/nl.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/no.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/pl.js | 1 - .../ckeditor/plugins/bidi/lang/pt-br.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/pt.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ro.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ru.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/si.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/sk.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/sl.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/sq.js | 1 - .../ckeditor/plugins/bidi/lang/sr-latn.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/sr.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/sv.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/th.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/tr.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/ug.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/uk.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/vi.js | 1 - .../ckeditor/plugins/bidi/lang/zh-cn.js | 1 - .../ckeditor/ckeditor/plugins/bidi/lang/zh.js | 1 - .../ckeditor/ckeditor/plugins/bidi/plugin.js | 13 - .../ckeditor/plugins/colorbutton/lang/af.js | 2 - .../ckeditor/plugins/colorbutton/lang/ar.js | 2 - .../ckeditor/plugins/colorbutton/lang/bg.js | 2 - .../ckeditor/plugins/colorbutton/lang/bn.js | 2 - .../ckeditor/plugins/colorbutton/lang/bs.js | 2 - .../ckeditor/plugins/colorbutton/lang/ca.js | 2 - .../ckeditor/plugins/colorbutton/lang/cs.js | 2 - .../ckeditor/plugins/colorbutton/lang/cy.js | 2 - .../ckeditor/plugins/colorbutton/lang/da.js | 2 - .../ckeditor/plugins/colorbutton/lang/de.js | 2 - .../ckeditor/plugins/colorbutton/lang/el.js | 2 - .../plugins/colorbutton/lang/en-au.js | 2 - .../plugins/colorbutton/lang/en-ca.js | 2 - .../plugins/colorbutton/lang/en-gb.js | 2 - .../ckeditor/plugins/colorbutton/lang/en.js | 2 - .../ckeditor/plugins/colorbutton/lang/eo.js | 2 - .../ckeditor/plugins/colorbutton/lang/es.js | 2 - .../ckeditor/plugins/colorbutton/lang/et.js | 2 - .../ckeditor/plugins/colorbutton/lang/eu.js | 2 - .../ckeditor/plugins/colorbutton/lang/fa.js | 2 - .../ckeditor/plugins/colorbutton/lang/fi.js | 3 - .../ckeditor/plugins/colorbutton/lang/fo.js | 2 - .../plugins/colorbutton/lang/fr-ca.js | 2 - .../ckeditor/plugins/colorbutton/lang/fr.js | 2 - .../ckeditor/plugins/colorbutton/lang/gl.js | 2 - .../ckeditor/plugins/colorbutton/lang/gu.js | 2 - .../ckeditor/plugins/colorbutton/lang/he.js | 2 - .../ckeditor/plugins/colorbutton/lang/hi.js | 2 - .../ckeditor/plugins/colorbutton/lang/hr.js | 2 - .../ckeditor/plugins/colorbutton/lang/hu.js | 2 - .../ckeditor/plugins/colorbutton/lang/id.js | 2 - .../ckeditor/plugins/colorbutton/lang/is.js | 2 - .../ckeditor/plugins/colorbutton/lang/it.js | 2 - .../ckeditor/plugins/colorbutton/lang/ja.js | 2 - .../ckeditor/plugins/colorbutton/lang/ka.js | 2 - .../ckeditor/plugins/colorbutton/lang/km.js | 2 - .../ckeditor/plugins/colorbutton/lang/ko.js | 2 - .../ckeditor/plugins/colorbutton/lang/ku.js | 2 - .../ckeditor/plugins/colorbutton/lang/lt.js | 2 - .../ckeditor/plugins/colorbutton/lang/lv.js | 2 - .../ckeditor/plugins/colorbutton/lang/mk.js | 2 - .../ckeditor/plugins/colorbutton/lang/mn.js | 2 - .../ckeditor/plugins/colorbutton/lang/ms.js | 2 - .../ckeditor/plugins/colorbutton/lang/nb.js | 2 - .../ckeditor/plugins/colorbutton/lang/nl.js | 2 - .../ckeditor/plugins/colorbutton/lang/no.js | 2 - .../ckeditor/plugins/colorbutton/lang/pl.js | 2 - .../plugins/colorbutton/lang/pt-br.js | 2 - .../ckeditor/plugins/colorbutton/lang/pt.js | 2 - .../ckeditor/plugins/colorbutton/lang/ro.js | 2 - .../ckeditor/plugins/colorbutton/lang/ru.js | 2 - .../ckeditor/plugins/colorbutton/lang/si.js | 2 - .../ckeditor/plugins/colorbutton/lang/sk.js | 2 - .../ckeditor/plugins/colorbutton/lang/sl.js | 2 - .../ckeditor/plugins/colorbutton/lang/sq.js | 3 - .../plugins/colorbutton/lang/sr-latn.js | 2 - .../ckeditor/plugins/colorbutton/lang/sr.js | 2 - .../ckeditor/plugins/colorbutton/lang/sv.js | 2 - .../ckeditor/plugins/colorbutton/lang/th.js | 2 - .../ckeditor/plugins/colorbutton/lang/tr.js | 2 - .../ckeditor/plugins/colorbutton/lang/ug.js | 2 - .../ckeditor/plugins/colorbutton/lang/uk.js | 2 - .../ckeditor/plugins/colorbutton/lang/vi.js | 2 - .../plugins/colorbutton/lang/zh-cn.js | 2 - .../ckeditor/plugins/colorbutton/lang/zh.js | 2 - .../ckeditor/plugins/colorbutton/plugin.js | 13 - .../ckeditor/plugins/colordialog/lang/af.js | 1 - .../ckeditor/plugins/colordialog/lang/ar.js | 1 - .../ckeditor/plugins/colordialog/lang/bg.js | 1 - .../ckeditor/plugins/colordialog/lang/bn.js | 1 - .../ckeditor/plugins/colordialog/lang/bs.js | 1 - .../ckeditor/plugins/colordialog/lang/ca.js | 1 - .../ckeditor/plugins/colordialog/lang/cs.js | 1 - .../ckeditor/plugins/colordialog/lang/cy.js | 1 - .../ckeditor/plugins/colordialog/lang/da.js | 1 - .../ckeditor/plugins/colordialog/lang/de.js | 1 - .../ckeditor/plugins/colordialog/lang/el.js | 1 - .../plugins/colordialog/lang/en-au.js | 1 - .../plugins/colordialog/lang/en-ca.js | 1 - .../plugins/colordialog/lang/en-gb.js | 1 - .../ckeditor/plugins/colordialog/lang/en.js | 1 - .../ckeditor/plugins/colordialog/lang/eo.js | 1 - .../ckeditor/plugins/colordialog/lang/es.js | 1 - .../ckeditor/plugins/colordialog/lang/et.js | 1 - .../ckeditor/plugins/colordialog/lang/eu.js | 1 - .../ckeditor/plugins/colordialog/lang/fa.js | 1 - .../ckeditor/plugins/colordialog/lang/fi.js | 1 - .../ckeditor/plugins/colordialog/lang/fo.js | 1 - .../plugins/colordialog/lang/fr-ca.js | 1 - .../ckeditor/plugins/colordialog/lang/fr.js | 1 - .../ckeditor/plugins/colordialog/lang/gl.js | 1 - .../ckeditor/plugins/colordialog/lang/gu.js | 1 - .../ckeditor/plugins/colordialog/lang/he.js | 1 - .../ckeditor/plugins/colordialog/lang/hi.js | 1 - .../ckeditor/plugins/colordialog/lang/hr.js | 1 - .../ckeditor/plugins/colordialog/lang/hu.js | 1 - .../ckeditor/plugins/colordialog/lang/is.js | 1 - .../ckeditor/plugins/colordialog/lang/it.js | 1 - .../ckeditor/plugins/colordialog/lang/ja.js | 1 - .../ckeditor/plugins/colordialog/lang/ka.js | 1 - .../ckeditor/plugins/colordialog/lang/km.js | 1 - .../ckeditor/plugins/colordialog/lang/ko.js | 1 - .../ckeditor/plugins/colordialog/lang/ku.js | 1 - .../ckeditor/plugins/colordialog/lang/lt.js | 1 - .../ckeditor/plugins/colordialog/lang/lv.js | 1 - .../ckeditor/plugins/colordialog/lang/mk.js | 1 - .../ckeditor/plugins/colordialog/lang/mn.js | 1 - .../ckeditor/plugins/colordialog/lang/ms.js | 1 - .../ckeditor/plugins/colordialog/lang/nb.js | 1 - .../ckeditor/plugins/colordialog/lang/nl.js | 1 - .../ckeditor/plugins/colordialog/lang/no.js | 1 - .../ckeditor/plugins/colordialog/lang/pl.js | 1 - .../plugins/colordialog/lang/pt-br.js | 1 - .../ckeditor/plugins/colordialog/lang/pt.js | 1 - .../ckeditor/plugins/colordialog/lang/ro.js | 1 - .../ckeditor/plugins/colordialog/lang/ru.js | 1 - .../ckeditor/plugins/colordialog/lang/si.js | 1 - .../ckeditor/plugins/colordialog/lang/sk.js | 1 - .../ckeditor/plugins/colordialog/lang/sl.js | 1 - .../ckeditor/plugins/colordialog/lang/sq.js | 1 - .../plugins/colordialog/lang/sr-latn.js | 1 - .../ckeditor/plugins/colordialog/lang/sr.js | 1 - .../ckeditor/plugins/colordialog/lang/sv.js | 1 - .../ckeditor/plugins/colordialog/lang/th.js | 1 - .../ckeditor/plugins/colordialog/lang/tr.js | 1 - .../ckeditor/plugins/colordialog/lang/ug.js | 1 - .../ckeditor/plugins/colordialog/lang/uk.js | 1 - .../ckeditor/plugins/colordialog/lang/vi.js | 1 - .../plugins/colordialog/lang/zh-cn.js | 1 - .../ckeditor/plugins/colordialog/lang/zh.js | 1 - .../ckeditor/plugins/colordialog/plugin.js | 7 - .../devtools/lang/_translationstatus.txt | 27 - .../ckeditor/plugins/devtools/lang/ar.js | 5 - .../ckeditor/plugins/devtools/lang/bg.js | 5 - .../ckeditor/plugins/devtools/lang/ca.js | 5 - .../ckeditor/plugins/devtools/lang/cs.js | 5 - .../ckeditor/plugins/devtools/lang/cy.js | 5 - .../ckeditor/plugins/devtools/lang/da.js | 5 - .../ckeditor/plugins/devtools/lang/de.js | 5 - .../ckeditor/plugins/devtools/lang/el.js | 5 - .../ckeditor/plugins/devtools/lang/en-gb.js | 5 - .../ckeditor/plugins/devtools/lang/en.js | 5 - .../ckeditor/plugins/devtools/lang/eo.js | 5 - .../ckeditor/plugins/devtools/lang/es.js | 5 - .../ckeditor/plugins/devtools/lang/et.js | 5 - .../ckeditor/plugins/devtools/lang/eu.js | 5 - .../ckeditor/plugins/devtools/lang/fa.js | 5 - .../ckeditor/plugins/devtools/lang/fi.js | 5 - .../ckeditor/plugins/devtools/lang/fr-ca.js | 5 - .../ckeditor/plugins/devtools/lang/fr.js | 5 - .../ckeditor/plugins/devtools/lang/gl.js | 5 - .../ckeditor/plugins/devtools/lang/gu.js | 5 - .../ckeditor/plugins/devtools/lang/he.js | 5 - .../ckeditor/plugins/devtools/lang/hr.js | 5 - .../ckeditor/plugins/devtools/lang/hu.js | 5 - .../ckeditor/plugins/devtools/lang/id.js | 5 - .../ckeditor/plugins/devtools/lang/it.js | 5 - .../ckeditor/plugins/devtools/lang/ja.js | 5 - .../ckeditor/plugins/devtools/lang/km.js | 5 - .../ckeditor/plugins/devtools/lang/ko.js | 5 - .../ckeditor/plugins/devtools/lang/ku.js | 5 - .../ckeditor/plugins/devtools/lang/lt.js | 5 - .../ckeditor/plugins/devtools/lang/lv.js | 5 - .../ckeditor/plugins/devtools/lang/nb.js | 5 - .../ckeditor/plugins/devtools/lang/nl.js | 5 - .../ckeditor/plugins/devtools/lang/no.js | 5 - .../ckeditor/plugins/devtools/lang/pl.js | 5 - .../ckeditor/plugins/devtools/lang/pt-br.js | 5 - .../ckeditor/plugins/devtools/lang/pt.js | 5 - .../ckeditor/plugins/devtools/lang/ru.js | 5 - .../ckeditor/plugins/devtools/lang/si.js | 5 - .../ckeditor/plugins/devtools/lang/sk.js | 5 - .../ckeditor/plugins/devtools/lang/sl.js | 5 - .../ckeditor/plugins/devtools/lang/sq.js | 5 - .../ckeditor/plugins/devtools/lang/sv.js | 5 - .../ckeditor/plugins/devtools/lang/tr.js | 5 - .../ckeditor/plugins/devtools/lang/ug.js | 5 - .../ckeditor/plugins/devtools/lang/uk.js | 5 - .../ckeditor/plugins/devtools/lang/vi.js | 5 - .../ckeditor/plugins/devtools/lang/zh-cn.js | 5 - .../ckeditor/plugins/devtools/lang/zh.js | 5 - .../ckeditor/plugins/devtools/plugin.js | 9 - .../ckeditor/plugins/dialogadvtab/plugin.js | 9 - .../ckeditor/ckeditor/plugins/div/lang/af.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ar.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/bg.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/bn.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/bs.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ca.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/cs.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/cy.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/da.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/de.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/el.js | 1 - .../ckeditor/plugins/div/lang/en-au.js | 1 - .../ckeditor/plugins/div/lang/en-ca.js | 1 - .../ckeditor/plugins/div/lang/en-gb.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/en.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/eo.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/es.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/et.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/eu.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/fa.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/fi.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/fo.js | 1 - .../ckeditor/plugins/div/lang/fr-ca.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/fr.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/gl.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/gu.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/he.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/hi.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/hr.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/hu.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/id.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/is.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/it.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ja.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ka.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/km.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ko.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ku.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/lt.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/lv.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/mk.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/mn.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ms.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/nb.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/nl.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/no.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/pl.js | 1 - .../ckeditor/plugins/div/lang/pt-br.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/pt.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ro.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ru.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/si.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/sk.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/sl.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/sq.js | 1 - .../ckeditor/plugins/div/lang/sr-latn.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/sr.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/sv.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/th.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/tr.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/ug.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/uk.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/vi.js | 1 - .../ckeditor/plugins/div/lang/zh-cn.js | 1 - .../ckeditor/ckeditor/plugins/div/lang/zh.js | 1 - .../ckeditor/ckeditor/plugins/div/plugin.js | 8 - .../ckeditor/plugins/divarea/plugin.js | 5 - .../plugins/docprops/dialogs/docprops.js | 25 - .../plugins/docprops/icons/docprops-rtl.png | Bin 840 -> 0 bytes .../plugins/docprops/icons/docprops.png | Bin 844 -> 0 bytes .../docprops/icons/hidpi/docprops-rtl.png | Bin 1909 -> 0 bytes .../plugins/docprops/icons/hidpi/docprops.png | Bin 1941 -> 0 bytes .../ckeditor/plugins/docprops/lang/af.js | 3 - .../ckeditor/plugins/docprops/lang/ar.js | 2 - .../ckeditor/plugins/docprops/lang/bg.js | 3 - .../ckeditor/plugins/docprops/lang/bn.js | 3 - .../ckeditor/plugins/docprops/lang/bs.js | 3 - .../ckeditor/plugins/docprops/lang/ca.js | 3 - .../ckeditor/plugins/docprops/lang/cs.js | 3 - .../ckeditor/plugins/docprops/lang/cy.js | 3 - .../ckeditor/plugins/docprops/lang/da.js | 3 - .../ckeditor/plugins/docprops/lang/de.js | 3 - .../ckeditor/plugins/docprops/lang/el.js | 3 - .../ckeditor/plugins/docprops/lang/en-au.js | 3 - .../ckeditor/plugins/docprops/lang/en-ca.js | 3 - .../ckeditor/plugins/docprops/lang/en-gb.js | 3 - .../ckeditor/plugins/docprops/lang/en.js | 3 - .../ckeditor/plugins/docprops/lang/eo.js | 3 - .../ckeditor/plugins/docprops/lang/es.js | 3 - .../ckeditor/plugins/docprops/lang/et.js | 3 - .../ckeditor/plugins/docprops/lang/eu.js | 3 - .../ckeditor/plugins/docprops/lang/fa.js | 2 - .../ckeditor/plugins/docprops/lang/fi.js | 3 - .../ckeditor/plugins/docprops/lang/fo.js | 3 - .../ckeditor/plugins/docprops/lang/fr-ca.js | 3 - .../ckeditor/plugins/docprops/lang/fr.js | 3 - .../ckeditor/plugins/docprops/lang/gl.js | 3 - .../ckeditor/plugins/docprops/lang/gu.js | 3 - .../ckeditor/plugins/docprops/lang/he.js | 2 - .../ckeditor/plugins/docprops/lang/hi.js | 3 - .../ckeditor/plugins/docprops/lang/hr.js | 3 - .../ckeditor/plugins/docprops/lang/hu.js | 3 - .../ckeditor/plugins/docprops/lang/id.js | 3 - .../ckeditor/plugins/docprops/lang/is.js | 3 - .../ckeditor/plugins/docprops/lang/it.js | 3 - .../ckeditor/plugins/docprops/lang/ja.js | 2 - .../ckeditor/plugins/docprops/lang/ka.js | 3 - .../ckeditor/plugins/docprops/lang/km.js | 3 - .../ckeditor/plugins/docprops/lang/ko.js | 2 - .../ckeditor/plugins/docprops/lang/ku.js | 3 - .../ckeditor/plugins/docprops/lang/lt.js | 3 - .../ckeditor/plugins/docprops/lang/lv.js | 3 - .../ckeditor/plugins/docprops/lang/mk.js | 3 - .../ckeditor/plugins/docprops/lang/mn.js | 3 - .../ckeditor/plugins/docprops/lang/ms.js | 3 - .../ckeditor/plugins/docprops/lang/nb.js | 3 - .../ckeditor/plugins/docprops/lang/nl.js | 3 - .../ckeditor/plugins/docprops/lang/no.js | 3 - .../ckeditor/plugins/docprops/lang/pl.js | 3 - .../ckeditor/plugins/docprops/lang/pt-br.js | 3 - .../ckeditor/plugins/docprops/lang/pt.js | 3 - .../ckeditor/plugins/docprops/lang/ro.js | 3 - .../ckeditor/plugins/docprops/lang/ru.js | 3 - .../ckeditor/plugins/docprops/lang/si.js | 2 - .../ckeditor/plugins/docprops/lang/sk.js | 3 - .../ckeditor/plugins/docprops/lang/sl.js | 3 - .../ckeditor/plugins/docprops/lang/sq.js | 3 - .../ckeditor/plugins/docprops/lang/sr-latn.js | 3 - .../ckeditor/plugins/docprops/lang/sr.js | 3 - .../ckeditor/plugins/docprops/lang/sv.js | 2 - .../ckeditor/plugins/docprops/lang/th.js | 3 - .../ckeditor/plugins/docprops/lang/tr.js | 3 - .../ckeditor/plugins/docprops/lang/ug.js | 3 - .../ckeditor/plugins/docprops/lang/uk.js | 3 - .../ckeditor/plugins/docprops/lang/vi.js | 3 - .../ckeditor/plugins/docprops/lang/zh-cn.js | 2 - .../ckeditor/plugins/docprops/lang/zh.js | 2 - .../ckeditor/plugins/docprops/plugin.js | 6 - .../ckeditor/ckeditor/plugins/find/lang/af.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ar.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/bg.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/bn.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/bs.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ca.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/cs.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/cy.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/da.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/de.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/el.js | 1 - .../ckeditor/plugins/find/lang/en-au.js | 1 - .../ckeditor/plugins/find/lang/en-ca.js | 1 - .../ckeditor/plugins/find/lang/en-gb.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/en.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/eo.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/es.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/et.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/eu.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/fa.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/fi.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/fo.js | 1 - .../ckeditor/plugins/find/lang/fr-ca.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/fr.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/gl.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/gu.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/he.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/hi.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/hr.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/hu.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/id.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/is.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/it.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ja.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ka.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/km.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ko.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ku.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/lt.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/lv.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/mk.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/mn.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ms.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/nb.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/nl.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/no.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/pl.js | 1 - .../ckeditor/plugins/find/lang/pt-br.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/pt.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ro.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ru.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/si.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/sk.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/sl.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/sq.js | 1 - .../ckeditor/plugins/find/lang/sr-latn.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/sr.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/sv.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/th.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/tr.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/ug.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/uk.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/vi.js | 1 - .../ckeditor/plugins/find/lang/zh-cn.js | 1 - .../ckeditor/ckeditor/plugins/find/lang/zh.js | 1 - .../ckeditor/ckeditor/plugins/find/plugin.js | 6 - .../ckeditor/plugins/flash/lang/af.js | 2 - .../ckeditor/plugins/flash/lang/ar.js | 2 - .../ckeditor/plugins/flash/lang/bg.js | 3 - .../ckeditor/plugins/flash/lang/bn.js | 2 - .../ckeditor/plugins/flash/lang/bs.js | 2 - .../ckeditor/plugins/flash/lang/ca.js | 3 - .../ckeditor/plugins/flash/lang/cs.js | 3 - .../ckeditor/plugins/flash/lang/cy.js | 2 - .../ckeditor/plugins/flash/lang/da.js | 3 - .../ckeditor/plugins/flash/lang/de.js | 3 - .../ckeditor/plugins/flash/lang/el.js | 3 - .../ckeditor/plugins/flash/lang/en-au.js | 2 - .../ckeditor/plugins/flash/lang/en-ca.js | 2 - .../ckeditor/plugins/flash/lang/en-gb.js | 2 - .../ckeditor/plugins/flash/lang/en.js | 2 - .../ckeditor/plugins/flash/lang/eo.js | 3 - .../ckeditor/plugins/flash/lang/es.js | 2 - .../ckeditor/plugins/flash/lang/et.js | 3 - .../ckeditor/plugins/flash/lang/eu.js | 3 - .../ckeditor/plugins/flash/lang/fa.js | 2 - .../ckeditor/plugins/flash/lang/fi.js | 3 - .../ckeditor/plugins/flash/lang/fo.js | 3 - .../ckeditor/plugins/flash/lang/fr-ca.js | 3 - .../ckeditor/plugins/flash/lang/fr.js | 3 - .../ckeditor/plugins/flash/lang/gl.js | 3 - .../ckeditor/plugins/flash/lang/gu.js | 2 - .../ckeditor/plugins/flash/lang/he.js | 2 - .../ckeditor/plugins/flash/lang/hi.js | 2 - .../ckeditor/plugins/flash/lang/hr.js | 2 - .../ckeditor/plugins/flash/lang/hu.js | 3 - .../ckeditor/plugins/flash/lang/id.js | 2 - .../ckeditor/plugins/flash/lang/is.js | 2 - .../ckeditor/plugins/flash/lang/it.js | 3 - .../ckeditor/plugins/flash/lang/ja.js | 2 - .../ckeditor/plugins/flash/lang/ka.js | 3 - .../ckeditor/plugins/flash/lang/km.js | 2 - .../ckeditor/plugins/flash/lang/ko.js | 2 - .../ckeditor/plugins/flash/lang/ku.js | 3 - .../ckeditor/plugins/flash/lang/lt.js | 3 - .../ckeditor/plugins/flash/lang/lv.js | 3 - .../ckeditor/plugins/flash/lang/mk.js | 2 - .../ckeditor/plugins/flash/lang/mn.js | 2 - .../ckeditor/plugins/flash/lang/ms.js | 2 - .../ckeditor/plugins/flash/lang/nb.js | 2 - .../ckeditor/plugins/flash/lang/nl.js | 3 - .../ckeditor/plugins/flash/lang/no.js | 2 - .../ckeditor/plugins/flash/lang/pl.js | 3 - .../ckeditor/plugins/flash/lang/pt-br.js | 3 - .../ckeditor/plugins/flash/lang/pt.js | 3 - .../ckeditor/plugins/flash/lang/ro.js | 3 - .../ckeditor/plugins/flash/lang/ru.js | 3 - .../ckeditor/plugins/flash/lang/si.js | 2 - .../ckeditor/plugins/flash/lang/sk.js | 3 - .../ckeditor/plugins/flash/lang/sl.js | 3 - .../ckeditor/plugins/flash/lang/sq.js | 3 - .../ckeditor/plugins/flash/lang/sr-latn.js | 2 - .../ckeditor/plugins/flash/lang/sr.js | 2 - .../ckeditor/plugins/flash/lang/sv.js | 3 - .../ckeditor/plugins/flash/lang/th.js | 3 - .../ckeditor/plugins/flash/lang/tr.js | 2 - .../ckeditor/plugins/flash/lang/ug.js | 3 - .../ckeditor/plugins/flash/lang/uk.js | 3 - .../ckeditor/plugins/flash/lang/vi.js | 3 - .../ckeditor/plugins/flash/lang/zh-cn.js | 2 - .../ckeditor/plugins/flash/lang/zh.js | 2 - .../ckeditor/ckeditor/plugins/flash/plugin.js | 9 - .../ckeditor/ckeditor/plugins/font/lang/af.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ar.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/bg.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/bn.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/bs.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ca.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/cs.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/cy.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/da.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/de.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/el.js | 1 - .../ckeditor/plugins/font/lang/en-au.js | 1 - .../ckeditor/plugins/font/lang/en-ca.js | 1 - .../ckeditor/plugins/font/lang/en-gb.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/en.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/eo.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/es.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/et.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/eu.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/fa.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/fi.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/fo.js | 1 - .../ckeditor/plugins/font/lang/fr-ca.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/fr.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/gl.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/gu.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/he.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/hi.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/hr.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/hu.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/id.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/is.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/it.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ja.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ka.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/km.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ko.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ku.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/lt.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/lv.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/mk.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/mn.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ms.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/nb.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/nl.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/no.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/pl.js | 1 - .../ckeditor/plugins/font/lang/pt-br.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/pt.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ro.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ru.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/si.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/sk.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/sl.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/sq.js | 1 - .../ckeditor/plugins/font/lang/sr-latn.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/sr.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/sv.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/th.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/tr.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/ug.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/uk.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/vi.js | 1 - .../ckeditor/plugins/font/lang/zh-cn.js | 1 - .../ckeditor/ckeditor/plugins/font/lang/zh.js | 1 - .../ckeditor/ckeditor/plugins/font/plugin.js | 9 - .../ckeditor/plugins/forms/lang/af.js | 3 - .../ckeditor/plugins/forms/lang/ar.js | 3 - .../ckeditor/plugins/forms/lang/bg.js | 3 - .../ckeditor/plugins/forms/lang/bn.js | 3 - .../ckeditor/plugins/forms/lang/bs.js | 3 - .../ckeditor/plugins/forms/lang/ca.js | 3 - .../ckeditor/plugins/forms/lang/cs.js | 3 - .../ckeditor/plugins/forms/lang/cy.js | 3 - .../ckeditor/plugins/forms/lang/da.js | 3 - .../ckeditor/plugins/forms/lang/de.js | 3 - .../ckeditor/plugins/forms/lang/el.js | 3 - .../ckeditor/plugins/forms/lang/en-au.js | 3 - .../ckeditor/plugins/forms/lang/en-ca.js | 3 - .../ckeditor/plugins/forms/lang/en-gb.js | 3 - .../ckeditor/plugins/forms/lang/en.js | 3 - .../ckeditor/plugins/forms/lang/eo.js | 3 - .../ckeditor/plugins/forms/lang/es.js | 3 - .../ckeditor/plugins/forms/lang/et.js | 3 - .../ckeditor/plugins/forms/lang/eu.js | 3 - .../ckeditor/plugins/forms/lang/fa.js | 3 - .../ckeditor/plugins/forms/lang/fi.js | 3 - .../ckeditor/plugins/forms/lang/fo.js | 3 - .../ckeditor/plugins/forms/lang/fr-ca.js | 3 - .../ckeditor/plugins/forms/lang/fr.js | 3 - .../ckeditor/plugins/forms/lang/gl.js | 3 - .../ckeditor/plugins/forms/lang/gu.js | 3 - .../ckeditor/plugins/forms/lang/he.js | 2 - .../ckeditor/plugins/forms/lang/hi.js | 3 - .../ckeditor/plugins/forms/lang/hr.js | 3 - .../ckeditor/plugins/forms/lang/hu.js | 3 - .../ckeditor/plugins/forms/lang/id.js | 3 - .../ckeditor/plugins/forms/lang/is.js | 3 - .../ckeditor/plugins/forms/lang/it.js | 3 - .../ckeditor/plugins/forms/lang/ja.js | 2 - .../ckeditor/plugins/forms/lang/ka.js | 3 - .../ckeditor/plugins/forms/lang/km.js | 3 - .../ckeditor/plugins/forms/lang/ko.js | 2 - .../ckeditor/plugins/forms/lang/ku.js | 3 - .../ckeditor/plugins/forms/lang/lt.js | 3 - .../ckeditor/plugins/forms/lang/lv.js | 3 - .../ckeditor/plugins/forms/lang/mk.js | 3 - .../ckeditor/plugins/forms/lang/mn.js | 3 - .../ckeditor/plugins/forms/lang/ms.js | 3 - .../ckeditor/plugins/forms/lang/nb.js | 3 - .../ckeditor/plugins/forms/lang/nl.js | 3 - .../ckeditor/plugins/forms/lang/no.js | 3 - .../ckeditor/plugins/forms/lang/pl.js | 3 - .../ckeditor/plugins/forms/lang/pt-br.js | 3 - .../ckeditor/plugins/forms/lang/pt.js | 3 - .../ckeditor/plugins/forms/lang/ro.js | 3 - .../ckeditor/plugins/forms/lang/ru.js | 3 - .../ckeditor/plugins/forms/lang/si.js | 3 - .../ckeditor/plugins/forms/lang/sk.js | 3 - .../ckeditor/plugins/forms/lang/sl.js | 3 - .../ckeditor/plugins/forms/lang/sq.js | 3 - .../ckeditor/plugins/forms/lang/sr-latn.js | 3 - .../ckeditor/plugins/forms/lang/sr.js | 3 - .../ckeditor/plugins/forms/lang/sv.js | 3 - .../ckeditor/plugins/forms/lang/th.js | 3 - .../ckeditor/plugins/forms/lang/tr.js | 3 - .../ckeditor/plugins/forms/lang/ug.js | 3 - .../ckeditor/plugins/forms/lang/uk.js | 3 - .../ckeditor/plugins/forms/lang/vi.js | 3 - .../ckeditor/plugins/forms/lang/zh-cn.js | 2 - .../ckeditor/plugins/forms/lang/zh.js | 2 - .../ckeditor/ckeditor/plugins/forms/plugin.js | 15 - .../ckeditor/ckeditor/plugins/icons.png | Bin 17728 -> 20643 bytes .../ckeditor/ckeditor/plugins/icons_hidpi.png | Bin 61908 -> 67753 bytes .../ckeditor/plugins/iframe/lang/af.js | 1 - .../ckeditor/plugins/iframe/lang/ar.js | 1 - .../ckeditor/plugins/iframe/lang/bg.js | 1 - .../ckeditor/plugins/iframe/lang/bn.js | 1 - .../ckeditor/plugins/iframe/lang/bs.js | 1 - .../ckeditor/plugins/iframe/lang/ca.js | 1 - .../ckeditor/plugins/iframe/lang/cs.js | 1 - .../ckeditor/plugins/iframe/lang/cy.js | 1 - .../ckeditor/plugins/iframe/lang/da.js | 1 - .../ckeditor/plugins/iframe/lang/de.js | 1 - .../ckeditor/plugins/iframe/lang/el.js | 1 - .../ckeditor/plugins/iframe/lang/en-au.js | 1 - .../ckeditor/plugins/iframe/lang/en-ca.js | 1 - .../ckeditor/plugins/iframe/lang/en-gb.js | 1 - .../ckeditor/plugins/iframe/lang/en.js | 1 - .../ckeditor/plugins/iframe/lang/eo.js | 1 - .../ckeditor/plugins/iframe/lang/es.js | 1 - .../ckeditor/plugins/iframe/lang/et.js | 1 - .../ckeditor/plugins/iframe/lang/eu.js | 1 - .../ckeditor/plugins/iframe/lang/fa.js | 1 - .../ckeditor/plugins/iframe/lang/fi.js | 1 - .../ckeditor/plugins/iframe/lang/fo.js | 1 - .../ckeditor/plugins/iframe/lang/fr-ca.js | 1 - .../ckeditor/plugins/iframe/lang/fr.js | 1 - .../ckeditor/plugins/iframe/lang/gl.js | 1 - .../ckeditor/plugins/iframe/lang/gu.js | 1 - .../ckeditor/plugins/iframe/lang/he.js | 1 - .../ckeditor/plugins/iframe/lang/hi.js | 1 - .../ckeditor/plugins/iframe/lang/hr.js | 1 - .../ckeditor/plugins/iframe/lang/hu.js | 1 - .../ckeditor/plugins/iframe/lang/id.js | 1 - .../ckeditor/plugins/iframe/lang/is.js | 1 - .../ckeditor/plugins/iframe/lang/it.js | 1 - .../ckeditor/plugins/iframe/lang/ja.js | 1 - .../ckeditor/plugins/iframe/lang/ka.js | 1 - .../ckeditor/plugins/iframe/lang/km.js | 1 - .../ckeditor/plugins/iframe/lang/ko.js | 1 - .../ckeditor/plugins/iframe/lang/ku.js | 1 - .../ckeditor/plugins/iframe/lang/lt.js | 1 - .../ckeditor/plugins/iframe/lang/lv.js | 1 - .../ckeditor/plugins/iframe/lang/mk.js | 1 - .../ckeditor/plugins/iframe/lang/mn.js | 1 - .../ckeditor/plugins/iframe/lang/ms.js | 1 - .../ckeditor/plugins/iframe/lang/nb.js | 1 - .../ckeditor/plugins/iframe/lang/nl.js | 1 - .../ckeditor/plugins/iframe/lang/no.js | 1 - .../ckeditor/plugins/iframe/lang/pl.js | 1 - .../ckeditor/plugins/iframe/lang/pt-br.js | 1 - .../ckeditor/plugins/iframe/lang/pt.js | 1 - .../ckeditor/plugins/iframe/lang/ro.js | 1 - .../ckeditor/plugins/iframe/lang/ru.js | 1 - .../ckeditor/plugins/iframe/lang/si.js | 1 - .../ckeditor/plugins/iframe/lang/sk.js | 1 - .../ckeditor/plugins/iframe/lang/sl.js | 1 - .../ckeditor/plugins/iframe/lang/sq.js | 1 - .../ckeditor/plugins/iframe/lang/sr-latn.js | 1 - .../ckeditor/plugins/iframe/lang/sr.js | 1 - .../ckeditor/plugins/iframe/lang/sv.js | 1 - .../ckeditor/plugins/iframe/lang/th.js | 1 - .../ckeditor/plugins/iframe/lang/tr.js | 1 - .../ckeditor/plugins/iframe/lang/ug.js | 1 - .../ckeditor/plugins/iframe/lang/uk.js | 1 - .../ckeditor/plugins/iframe/lang/vi.js | 1 - .../ckeditor/plugins/iframe/lang/zh-cn.js | 1 - .../ckeditor/plugins/iframe/lang/zh.js | 1 - .../ckeditor/plugins/iframe/plugin.js | 8 - .../ckeditor/plugins/iframedialog/plugin.js | 8 - .../ckeditor/plugins/image2/dialogs/image2.js | 14 - .../ckeditor/plugins/image2/lang/af.js | 1 - .../ckeditor/plugins/image2/lang/ar.js | 1 - .../ckeditor/plugins/image2/lang/bg.js | 1 - .../ckeditor/plugins/image2/lang/bn.js | 1 - .../ckeditor/plugins/image2/lang/bs.js | 1 - .../ckeditor/plugins/image2/lang/ca.js | 1 - .../ckeditor/plugins/image2/lang/cs.js | 1 - .../ckeditor/plugins/image2/lang/cy.js | 1 - .../ckeditor/plugins/image2/lang/da.js | 1 - .../ckeditor/plugins/image2/lang/de.js | 1 - .../ckeditor/plugins/image2/lang/el.js | 1 - .../ckeditor/plugins/image2/lang/en-au.js | 1 - .../ckeditor/plugins/image2/lang/en-ca.js | 1 - .../ckeditor/plugins/image2/lang/en-gb.js | 1 - .../ckeditor/plugins/image2/lang/en.js | 1 - .../ckeditor/plugins/image2/lang/eo.js | 1 - .../ckeditor/plugins/image2/lang/es.js | 1 - .../ckeditor/plugins/image2/lang/et.js | 1 - .../ckeditor/plugins/image2/lang/eu.js | 1 - .../ckeditor/plugins/image2/lang/fa.js | 1 - .../ckeditor/plugins/image2/lang/fi.js | 1 - .../ckeditor/plugins/image2/lang/fo.js | 1 - .../ckeditor/plugins/image2/lang/fr-ca.js | 1 - .../ckeditor/plugins/image2/lang/fr.js | 1 - .../ckeditor/plugins/image2/lang/gl.js | 1 - .../ckeditor/plugins/image2/lang/gu.js | 1 - .../ckeditor/plugins/image2/lang/he.js | 1 - .../ckeditor/plugins/image2/lang/hi.js | 1 - .../ckeditor/plugins/image2/lang/hr.js | 1 - .../ckeditor/plugins/image2/lang/hu.js | 1 - .../ckeditor/plugins/image2/lang/id.js | 1 - .../ckeditor/plugins/image2/lang/is.js | 1 - .../ckeditor/plugins/image2/lang/it.js | 1 - .../ckeditor/plugins/image2/lang/ja.js | 1 - .../ckeditor/plugins/image2/lang/ka.js | 1 - .../ckeditor/plugins/image2/lang/km.js | 1 - .../ckeditor/plugins/image2/lang/ko.js | 1 - .../ckeditor/plugins/image2/lang/ku.js | 1 - .../ckeditor/plugins/image2/lang/lt.js | 1 - .../ckeditor/plugins/image2/lang/lv.js | 1 - .../ckeditor/plugins/image2/lang/mk.js | 1 - .../ckeditor/plugins/image2/lang/mn.js | 1 - .../ckeditor/plugins/image2/lang/ms.js | 1 - .../ckeditor/plugins/image2/lang/nb.js | 1 - .../ckeditor/plugins/image2/lang/nl.js | 1 - .../ckeditor/plugins/image2/lang/no.js | 1 - .../ckeditor/plugins/image2/lang/pl.js | 1 - .../ckeditor/plugins/image2/lang/pt-br.js | 1 - .../ckeditor/plugins/image2/lang/pt.js | 1 - .../ckeditor/plugins/image2/lang/ro.js | 1 - .../ckeditor/plugins/image2/lang/ru.js | 1 - .../ckeditor/plugins/image2/lang/si.js | 1 - .../ckeditor/plugins/image2/lang/sk.js | 1 - .../ckeditor/plugins/image2/lang/sl.js | 1 - .../ckeditor/plugins/image2/lang/sq.js | 1 - .../ckeditor/plugins/image2/lang/sr-latn.js | 1 - .../ckeditor/plugins/image2/lang/sr.js | 1 - .../ckeditor/plugins/image2/lang/sv.js | 1 - .../ckeditor/plugins/image2/lang/th.js | 1 - .../ckeditor/plugins/image2/lang/tr.js | 1 - .../ckeditor/plugins/image2/lang/ug.js | 1 - .../ckeditor/plugins/image2/lang/uk.js | 1 - .../ckeditor/plugins/image2/lang/vi.js | 1 - .../ckeditor/plugins/image2/lang/zh-cn.js | 1 - .../ckeditor/plugins/image2/lang/zh.js | 1 - .../ckeditor/plugins/image2/plugin.js | 22 - .../ckeditor/plugins/indentblock/plugin.js | 9 - .../ckeditor/plugins/justify/lang/af.js | 1 - .../ckeditor/plugins/justify/lang/ar.js | 1 - .../ckeditor/plugins/justify/lang/bg.js | 1 - .../ckeditor/plugins/justify/lang/bn.js | 1 - .../ckeditor/plugins/justify/lang/bs.js | 1 - .../ckeditor/plugins/justify/lang/ca.js | 1 - .../ckeditor/plugins/justify/lang/cs.js | 1 - .../ckeditor/plugins/justify/lang/cy.js | 1 - .../ckeditor/plugins/justify/lang/da.js | 1 - .../ckeditor/plugins/justify/lang/de.js | 1 - .../ckeditor/plugins/justify/lang/el.js | 1 - .../ckeditor/plugins/justify/lang/en-au.js | 1 - .../ckeditor/plugins/justify/lang/en-ca.js | 1 - .../ckeditor/plugins/justify/lang/en-gb.js | 1 - .../ckeditor/plugins/justify/lang/en.js | 1 - .../ckeditor/plugins/justify/lang/eo.js | 1 - .../ckeditor/plugins/justify/lang/es.js | 1 - .../ckeditor/plugins/justify/lang/et.js | 1 - .../ckeditor/plugins/justify/lang/eu.js | 1 - .../ckeditor/plugins/justify/lang/fa.js | 1 - .../ckeditor/plugins/justify/lang/fi.js | 1 - .../ckeditor/plugins/justify/lang/fo.js | 1 - .../ckeditor/plugins/justify/lang/fr-ca.js | 1 - .../ckeditor/plugins/justify/lang/fr.js | 1 - .../ckeditor/plugins/justify/lang/gl.js | 1 - .../ckeditor/plugins/justify/lang/gu.js | 1 - .../ckeditor/plugins/justify/lang/he.js | 1 - .../ckeditor/plugins/justify/lang/hi.js | 1 - .../ckeditor/plugins/justify/lang/hr.js | 1 - .../ckeditor/plugins/justify/lang/hu.js | 1 - .../ckeditor/plugins/justify/lang/id.js | 1 - .../ckeditor/plugins/justify/lang/is.js | 1 - .../ckeditor/plugins/justify/lang/it.js | 1 - .../ckeditor/plugins/justify/lang/ja.js | 1 - .../ckeditor/plugins/justify/lang/ka.js | 1 - .../ckeditor/plugins/justify/lang/km.js | 1 - .../ckeditor/plugins/justify/lang/ko.js | 1 - .../ckeditor/plugins/justify/lang/ku.js | 1 - .../ckeditor/plugins/justify/lang/lt.js | 1 - .../ckeditor/plugins/justify/lang/lv.js | 1 - .../ckeditor/plugins/justify/lang/mk.js | 1 - .../ckeditor/plugins/justify/lang/mn.js | 1 - .../ckeditor/plugins/justify/lang/ms.js | 1 - .../ckeditor/plugins/justify/lang/nb.js | 1 - .../ckeditor/plugins/justify/lang/nl.js | 1 - .../ckeditor/plugins/justify/lang/no.js | 1 - .../ckeditor/plugins/justify/lang/pl.js | 1 - .../ckeditor/plugins/justify/lang/pt-br.js | 1 - .../ckeditor/plugins/justify/lang/pt.js | 1 - .../ckeditor/plugins/justify/lang/ro.js | 1 - .../ckeditor/plugins/justify/lang/ru.js | 1 - .../ckeditor/plugins/justify/lang/si.js | 1 - .../ckeditor/plugins/justify/lang/sk.js | 1 - .../ckeditor/plugins/justify/lang/sl.js | 1 - .../ckeditor/plugins/justify/lang/sq.js | 1 - .../ckeditor/plugins/justify/lang/sr-latn.js | 1 - .../ckeditor/plugins/justify/lang/sr.js | 1 - .../ckeditor/plugins/justify/lang/sv.js | 1 - .../ckeditor/plugins/justify/lang/th.js | 1 - .../ckeditor/plugins/justify/lang/tr.js | 1 - .../ckeditor/plugins/justify/lang/ug.js | 1 - .../ckeditor/plugins/justify/lang/uk.js | 1 - .../ckeditor/plugins/justify/lang/vi.js | 1 - .../ckeditor/plugins/justify/lang/zh-cn.js | 1 - .../ckeditor/plugins/justify/lang/zh.js | 1 - .../ckeditor/plugins/justify/plugin.js | 12 - .../ckeditor/plugins/language/lang/ca.js | 5 - .../ckeditor/plugins/language/lang/cs.js | 5 - .../ckeditor/plugins/language/lang/cy.js | 5 - .../ckeditor/plugins/language/lang/el.js | 5 - .../ckeditor/plugins/language/lang/en-gb.js | 5 - .../ckeditor/plugins/language/lang/en.js | 5 - .../ckeditor/plugins/language/lang/es.js | 5 - .../ckeditor/plugins/language/lang/fa.js | 5 - .../ckeditor/plugins/language/lang/fi.js | 5 - .../ckeditor/plugins/language/lang/fr.js | 5 - .../ckeditor/plugins/language/lang/gl.js | 5 - .../ckeditor/plugins/language/lang/hu.js | 5 - .../ckeditor/plugins/language/lang/ja.js | 5 - .../ckeditor/plugins/language/lang/km.js | 5 - .../ckeditor/plugins/language/lang/nb.js | 5 - .../ckeditor/plugins/language/lang/nl.js | 5 - .../ckeditor/plugins/language/lang/no.js | 5 - .../ckeditor/plugins/language/lang/pl.js | 5 - .../ckeditor/plugins/language/lang/pt-br.js | 5 - .../ckeditor/plugins/language/lang/pt.js | 5 - .../ckeditor/plugins/language/lang/ru.js | 5 - .../ckeditor/plugins/language/lang/sl.js | 5 - .../ckeditor/plugins/language/lang/sv.js | 5 - .../ckeditor/plugins/language/lang/uk.js | 5 - .../ckeditor/plugins/language/lang/zh-cn.js | 5 - .../ckeditor/plugins/language/lang/zh.js | 5 - .../ckeditor/plugins/language/plugin.js | 8 - .../ckeditor/plugins/lineutils/plugin.js | 21 - .../ckeditor/plugins/liststyle/lang/af.js | 2 - .../ckeditor/plugins/liststyle/lang/ar.js | 2 - .../ckeditor/plugins/liststyle/lang/bg.js | 2 - .../ckeditor/plugins/liststyle/lang/bn.js | 2 - .../ckeditor/plugins/liststyle/lang/bs.js | 2 - .../ckeditor/plugins/liststyle/lang/ca.js | 2 - .../ckeditor/plugins/liststyle/lang/cs.js | 2 - .../ckeditor/plugins/liststyle/lang/cy.js | 2 - .../ckeditor/plugins/liststyle/lang/da.js | 2 - .../ckeditor/plugins/liststyle/lang/de.js | 2 - .../ckeditor/plugins/liststyle/lang/el.js | 2 - .../ckeditor/plugins/liststyle/lang/en-au.js | 2 - .../ckeditor/plugins/liststyle/lang/en-ca.js | 2 - .../ckeditor/plugins/liststyle/lang/en-gb.js | 2 - .../ckeditor/plugins/liststyle/lang/en.js | 2 - .../ckeditor/plugins/liststyle/lang/eo.js | 2 - .../ckeditor/plugins/liststyle/lang/es.js | 2 - .../ckeditor/plugins/liststyle/lang/et.js | 2 - .../ckeditor/plugins/liststyle/lang/eu.js | 2 - .../ckeditor/plugins/liststyle/lang/fa.js | 2 - .../ckeditor/plugins/liststyle/lang/fi.js | 2 - .../ckeditor/plugins/liststyle/lang/fo.js | 2 - .../ckeditor/plugins/liststyle/lang/fr-ca.js | 2 - .../ckeditor/plugins/liststyle/lang/fr.js | 2 - .../ckeditor/plugins/liststyle/lang/gl.js | 2 - .../ckeditor/plugins/liststyle/lang/gu.js | 2 - .../ckeditor/plugins/liststyle/lang/he.js | 2 - .../ckeditor/plugins/liststyle/lang/hi.js | 2 - .../ckeditor/plugins/liststyle/lang/hr.js | 2 - .../ckeditor/plugins/liststyle/lang/hu.js | 2 - .../ckeditor/plugins/liststyle/lang/id.js | 2 - .../ckeditor/plugins/liststyle/lang/is.js | 2 - .../ckeditor/plugins/liststyle/lang/it.js | 2 - .../ckeditor/plugins/liststyle/lang/ja.js | 2 - .../ckeditor/plugins/liststyle/lang/ka.js | 2 - .../ckeditor/plugins/liststyle/lang/km.js | 2 - .../ckeditor/plugins/liststyle/lang/ko.js | 2 - .../ckeditor/plugins/liststyle/lang/ku.js | 2 - .../ckeditor/plugins/liststyle/lang/lt.js | 2 - .../ckeditor/plugins/liststyle/lang/lv.js | 2 - .../ckeditor/plugins/liststyle/lang/mk.js | 2 - .../ckeditor/plugins/liststyle/lang/mn.js | 2 - .../ckeditor/plugins/liststyle/lang/ms.js | 2 - .../ckeditor/plugins/liststyle/lang/nb.js | 2 - .../ckeditor/plugins/liststyle/lang/nl.js | 2 - .../ckeditor/plugins/liststyle/lang/no.js | 2 - .../ckeditor/plugins/liststyle/lang/pl.js | 2 - .../ckeditor/plugins/liststyle/lang/pt-br.js | 2 - .../ckeditor/plugins/liststyle/lang/pt.js | 2 - .../ckeditor/plugins/liststyle/lang/ro.js | 2 - .../ckeditor/plugins/liststyle/lang/ru.js | 2 - .../ckeditor/plugins/liststyle/lang/si.js | 2 - .../ckeditor/plugins/liststyle/lang/sk.js | 2 - .../ckeditor/plugins/liststyle/lang/sl.js | 2 - .../ckeditor/plugins/liststyle/lang/sq.js | 2 - .../plugins/liststyle/lang/sr-latn.js | 2 - .../ckeditor/plugins/liststyle/lang/sr.js | 2 - .../ckeditor/plugins/liststyle/lang/sv.js | 2 - .../ckeditor/plugins/liststyle/lang/th.js | 2 - .../ckeditor/plugins/liststyle/lang/tr.js | 2 - .../ckeditor/plugins/liststyle/lang/ug.js | 2 - .../ckeditor/plugins/liststyle/lang/uk.js | 2 - .../ckeditor/plugins/liststyle/lang/vi.js | 2 - .../ckeditor/plugins/liststyle/lang/zh-cn.js | 2 - .../ckeditor/plugins/liststyle/lang/zh.js | 2 - .../ckeditor/plugins/liststyle/plugin.js | 7 - .../plugins/mathjax/dialogs/mathjax.js | 7 - .../plugins/mathjax/icons/hidpi/mathjax.png | Bin 1437 -> 0 bytes .../plugins/mathjax/icons/mathjax.png | Bin 703 -> 0 bytes .../plugins/mathjax/images/loader.gif | Bin 1037 -> 0 bytes .../ckeditor/plugins/mathjax/lang/ca.js | 1 - .../ckeditor/plugins/mathjax/lang/cs.js | 1 - .../ckeditor/plugins/mathjax/lang/cy.js | 1 - .../ckeditor/plugins/mathjax/lang/de.js | 1 - .../ckeditor/plugins/mathjax/lang/el.js | 1 - .../ckeditor/plugins/mathjax/lang/en-gb.js | 1 - .../ckeditor/plugins/mathjax/lang/en.js | 1 - .../ckeditor/plugins/mathjax/lang/es.js | 1 - .../ckeditor/plugins/mathjax/lang/fa.js | 1 - .../ckeditor/plugins/mathjax/lang/fi.js | 1 - .../ckeditor/plugins/mathjax/lang/fr.js | 1 - .../ckeditor/plugins/mathjax/lang/gl.js | 1 - .../ckeditor/plugins/mathjax/lang/hu.js | 1 - .../ckeditor/plugins/mathjax/lang/ja.js | 1 - .../ckeditor/plugins/mathjax/lang/km.js | 1 - .../ckeditor/plugins/mathjax/lang/nb.js | 1 - .../ckeditor/plugins/mathjax/lang/nl.js | 1 - .../ckeditor/plugins/mathjax/lang/no.js | 1 - .../ckeditor/plugins/mathjax/lang/pl.js | 1 - .../ckeditor/plugins/mathjax/lang/pt-br.js | 1 - .../ckeditor/plugins/mathjax/lang/pt.js | 1 - .../ckeditor/plugins/mathjax/lang/ro.js | 1 - .../ckeditor/plugins/mathjax/lang/ru.js | 1 - .../ckeditor/plugins/mathjax/lang/sl.js | 1 - .../ckeditor/plugins/mathjax/lang/sv.js | 1 - .../ckeditor/plugins/mathjax/lang/uk.js | 1 - .../ckeditor/plugins/mathjax/lang/zh-cn.js | 1 - .../ckeditor/plugins/mathjax/lang/zh.js | 1 - .../ckeditor/plugins/mathjax/plugin.js | 14 - .../ckeditor/plugins/newpage/lang/af.js | 1 - .../ckeditor/plugins/newpage/lang/ar.js | 1 - .../ckeditor/plugins/newpage/lang/bg.js | 1 - .../ckeditor/plugins/newpage/lang/bn.js | 1 - .../ckeditor/plugins/newpage/lang/bs.js | 1 - .../ckeditor/plugins/newpage/lang/ca.js | 1 - .../ckeditor/plugins/newpage/lang/cs.js | 1 - .../ckeditor/plugins/newpage/lang/cy.js | 1 - .../ckeditor/plugins/newpage/lang/da.js | 1 - .../ckeditor/plugins/newpage/lang/de.js | 1 - .../ckeditor/plugins/newpage/lang/el.js | 1 - .../ckeditor/plugins/newpage/lang/en-au.js | 1 - .../ckeditor/plugins/newpage/lang/en-ca.js | 1 - .../ckeditor/plugins/newpage/lang/en-gb.js | 1 - .../ckeditor/plugins/newpage/lang/en.js | 1 - .../ckeditor/plugins/newpage/lang/eo.js | 1 - .../ckeditor/plugins/newpage/lang/es.js | 1 - .../ckeditor/plugins/newpage/lang/et.js | 1 - .../ckeditor/plugins/newpage/lang/eu.js | 1 - .../ckeditor/plugins/newpage/lang/fa.js | 1 - .../ckeditor/plugins/newpage/lang/fi.js | 1 - .../ckeditor/plugins/newpage/lang/fo.js | 1 - .../ckeditor/plugins/newpage/lang/fr-ca.js | 1 - .../ckeditor/plugins/newpage/lang/fr.js | 1 - .../ckeditor/plugins/newpage/lang/gl.js | 1 - .../ckeditor/plugins/newpage/lang/gu.js | 1 - .../ckeditor/plugins/newpage/lang/he.js | 1 - .../ckeditor/plugins/newpage/lang/hi.js | 1 - .../ckeditor/plugins/newpage/lang/hr.js | 1 - .../ckeditor/plugins/newpage/lang/hu.js | 1 - .../ckeditor/plugins/newpage/lang/id.js | 1 - .../ckeditor/plugins/newpage/lang/is.js | 1 - .../ckeditor/plugins/newpage/lang/it.js | 1 - .../ckeditor/plugins/newpage/lang/ja.js | 1 - .../ckeditor/plugins/newpage/lang/ka.js | 1 - .../ckeditor/plugins/newpage/lang/km.js | 1 - .../ckeditor/plugins/newpage/lang/ko.js | 1 - .../ckeditor/plugins/newpage/lang/ku.js | 1 - .../ckeditor/plugins/newpage/lang/lt.js | 1 - .../ckeditor/plugins/newpage/lang/lv.js | 1 - .../ckeditor/plugins/newpage/lang/mk.js | 1 - .../ckeditor/plugins/newpage/lang/mn.js | 1 - .../ckeditor/plugins/newpage/lang/ms.js | 1 - .../ckeditor/plugins/newpage/lang/nb.js | 1 - .../ckeditor/plugins/newpage/lang/nl.js | 1 - .../ckeditor/plugins/newpage/lang/no.js | 1 - .../ckeditor/plugins/newpage/lang/pl.js | 1 - .../ckeditor/plugins/newpage/lang/pt-br.js | 1 - .../ckeditor/plugins/newpage/lang/pt.js | 1 - .../ckeditor/plugins/newpage/lang/ro.js | 1 - .../ckeditor/plugins/newpage/lang/ru.js | 1 - .../ckeditor/plugins/newpage/lang/si.js | 1 - .../ckeditor/plugins/newpage/lang/sk.js | 1 - .../ckeditor/plugins/newpage/lang/sl.js | 1 - .../ckeditor/plugins/newpage/lang/sq.js | 1 - .../ckeditor/plugins/newpage/lang/sr-latn.js | 1 - .../ckeditor/plugins/newpage/lang/sr.js | 1 - .../ckeditor/plugins/newpage/lang/sv.js | 1 - .../ckeditor/plugins/newpage/lang/th.js | 1 - .../ckeditor/plugins/newpage/lang/tr.js | 1 - .../ckeditor/plugins/newpage/lang/ug.js | 1 - .../ckeditor/plugins/newpage/lang/uk.js | 1 - .../ckeditor/plugins/newpage/lang/vi.js | 1 - .../ckeditor/plugins/newpage/lang/zh-cn.js | 1 - .../ckeditor/plugins/newpage/lang/zh.js | 1 - .../ckeditor/plugins/newpage/plugin.js | 6 - .../ckeditor/plugins/pagebreak/lang/af.js | 1 - .../ckeditor/plugins/pagebreak/lang/ar.js | 1 - .../ckeditor/plugins/pagebreak/lang/bg.js | 1 - .../ckeditor/plugins/pagebreak/lang/bn.js | 1 - .../ckeditor/plugins/pagebreak/lang/bs.js | 1 - .../ckeditor/plugins/pagebreak/lang/ca.js | 1 - .../ckeditor/plugins/pagebreak/lang/cs.js | 1 - .../ckeditor/plugins/pagebreak/lang/cy.js | 1 - .../ckeditor/plugins/pagebreak/lang/da.js | 1 - .../ckeditor/plugins/pagebreak/lang/de.js | 1 - .../ckeditor/plugins/pagebreak/lang/el.js | 1 - .../ckeditor/plugins/pagebreak/lang/en-au.js | 1 - .../ckeditor/plugins/pagebreak/lang/en-ca.js | 1 - .../ckeditor/plugins/pagebreak/lang/en-gb.js | 1 - .../ckeditor/plugins/pagebreak/lang/en.js | 1 - .../ckeditor/plugins/pagebreak/lang/eo.js | 1 - .../ckeditor/plugins/pagebreak/lang/es.js | 1 - .../ckeditor/plugins/pagebreak/lang/et.js | 1 - .../ckeditor/plugins/pagebreak/lang/eu.js | 1 - .../ckeditor/plugins/pagebreak/lang/fa.js | 1 - .../ckeditor/plugins/pagebreak/lang/fi.js | 1 - .../ckeditor/plugins/pagebreak/lang/fo.js | 1 - .../ckeditor/plugins/pagebreak/lang/fr-ca.js | 1 - .../ckeditor/plugins/pagebreak/lang/fr.js | 1 - .../ckeditor/plugins/pagebreak/lang/gl.js | 1 - .../ckeditor/plugins/pagebreak/lang/gu.js | 1 - .../ckeditor/plugins/pagebreak/lang/he.js | 1 - .../ckeditor/plugins/pagebreak/lang/hi.js | 1 - .../ckeditor/plugins/pagebreak/lang/hr.js | 1 - .../ckeditor/plugins/pagebreak/lang/hu.js | 1 - .../ckeditor/plugins/pagebreak/lang/id.js | 1 - .../ckeditor/plugins/pagebreak/lang/is.js | 1 - .../ckeditor/plugins/pagebreak/lang/it.js | 1 - .../ckeditor/plugins/pagebreak/lang/ja.js | 1 - .../ckeditor/plugins/pagebreak/lang/ka.js | 1 - .../ckeditor/plugins/pagebreak/lang/km.js | 1 - .../ckeditor/plugins/pagebreak/lang/ko.js | 1 - .../ckeditor/plugins/pagebreak/lang/ku.js | 1 - .../ckeditor/plugins/pagebreak/lang/lt.js | 1 - .../ckeditor/plugins/pagebreak/lang/lv.js | 1 - .../ckeditor/plugins/pagebreak/lang/mk.js | 1 - .../ckeditor/plugins/pagebreak/lang/mn.js | 1 - .../ckeditor/plugins/pagebreak/lang/ms.js | 1 - .../ckeditor/plugins/pagebreak/lang/nb.js | 1 - .../ckeditor/plugins/pagebreak/lang/nl.js | 1 - .../ckeditor/plugins/pagebreak/lang/no.js | 1 - .../ckeditor/plugins/pagebreak/lang/pl.js | 1 - .../ckeditor/plugins/pagebreak/lang/pt-br.js | 1 - .../ckeditor/plugins/pagebreak/lang/pt.js | 1 - .../ckeditor/plugins/pagebreak/lang/ro.js | 1 - .../ckeditor/plugins/pagebreak/lang/ru.js | 1 - .../ckeditor/plugins/pagebreak/lang/si.js | 1 - .../ckeditor/plugins/pagebreak/lang/sk.js | 1 - .../ckeditor/plugins/pagebreak/lang/sl.js | 1 - .../ckeditor/plugins/pagebreak/lang/sq.js | 1 - .../plugins/pagebreak/lang/sr-latn.js | 1 - .../ckeditor/plugins/pagebreak/lang/sr.js | 1 - .../ckeditor/plugins/pagebreak/lang/sv.js | 1 - .../ckeditor/plugins/pagebreak/lang/th.js | 1 - .../ckeditor/plugins/pagebreak/lang/tr.js | 1 - .../ckeditor/plugins/pagebreak/lang/ug.js | 1 - .../ckeditor/plugins/pagebreak/lang/uk.js | 1 - .../ckeditor/plugins/pagebreak/lang/vi.js | 1 - .../ckeditor/plugins/pagebreak/lang/zh-cn.js | 1 - .../ckeditor/plugins/pagebreak/lang/zh.js | 1 - .../ckeditor/plugins/pagebreak/plugin.js | 9 - .../ckeditor/plugins/panelbutton/plugin.js | 8 - .../placeholder/dialogs/placeholder.js | 5 - .../placeholder/icons/hidpi/placeholder.png | Bin 1775 -> 0 bytes .../plugins/placeholder/icons/placeholder.png | Bin 714 -> 0 bytes .../ckeditor/plugins/placeholder/lang/ar.js | 5 - .../ckeditor/plugins/placeholder/lang/bg.js | 5 - .../ckeditor/plugins/placeholder/lang/ca.js | 5 - .../ckeditor/plugins/placeholder/lang/cs.js | 5 - .../ckeditor/plugins/placeholder/lang/cy.js | 5 - .../ckeditor/plugins/placeholder/lang/da.js | 5 - .../ckeditor/plugins/placeholder/lang/de.js | 5 - .../ckeditor/plugins/placeholder/lang/el.js | 5 - .../plugins/placeholder/lang/en-gb.js | 5 - .../ckeditor/plugins/placeholder/lang/en.js | 5 - .../ckeditor/plugins/placeholder/lang/eo.js | 5 - .../ckeditor/plugins/placeholder/lang/es.js | 5 - .../ckeditor/plugins/placeholder/lang/et.js | 5 - .../ckeditor/plugins/placeholder/lang/eu.js | 5 - .../ckeditor/plugins/placeholder/lang/fa.js | 5 - .../ckeditor/plugins/placeholder/lang/fi.js | 5 - .../plugins/placeholder/lang/fr-ca.js | 5 - .../ckeditor/plugins/placeholder/lang/fr.js | 5 - .../ckeditor/plugins/placeholder/lang/gl.js | 5 - .../ckeditor/plugins/placeholder/lang/he.js | 5 - .../ckeditor/plugins/placeholder/lang/hr.js | 5 - .../ckeditor/plugins/placeholder/lang/hu.js | 5 - .../ckeditor/plugins/placeholder/lang/id.js | 5 - .../ckeditor/plugins/placeholder/lang/it.js | 5 - .../ckeditor/plugins/placeholder/lang/ja.js | 5 - .../ckeditor/plugins/placeholder/lang/km.js | 5 - .../ckeditor/plugins/placeholder/lang/ko.js | 5 - .../ckeditor/plugins/placeholder/lang/ku.js | 5 - .../ckeditor/plugins/placeholder/lang/lv.js | 5 - .../ckeditor/plugins/placeholder/lang/nb.js | 5 - .../ckeditor/plugins/placeholder/lang/nl.js | 5 - .../ckeditor/plugins/placeholder/lang/no.js | 5 - .../ckeditor/plugins/placeholder/lang/pl.js | 5 - .../plugins/placeholder/lang/pt-br.js | 5 - .../ckeditor/plugins/placeholder/lang/pt.js | 5 - .../ckeditor/plugins/placeholder/lang/ru.js | 5 - .../ckeditor/plugins/placeholder/lang/si.js | 5 - .../ckeditor/plugins/placeholder/lang/sk.js | 5 - .../ckeditor/plugins/placeholder/lang/sl.js | 5 - .../ckeditor/plugins/placeholder/lang/sq.js | 5 - .../ckeditor/plugins/placeholder/lang/sv.js | 5 - .../ckeditor/plugins/placeholder/lang/th.js | 5 - .../ckeditor/plugins/placeholder/lang/tr.js | 5 - .../ckeditor/plugins/placeholder/lang/ug.js | 5 - .../ckeditor/plugins/placeholder/lang/uk.js | 5 - .../ckeditor/plugins/placeholder/lang/vi.js | 5 - .../plugins/placeholder/lang/zh-cn.js | 5 - .../ckeditor/plugins/placeholder/lang/zh.js | 5 - .../ckeditor/plugins/placeholder/plugin.js | 7 - .../ckeditor/plugins/preview/lang/af.js | 1 - .../ckeditor/plugins/preview/lang/ar.js | 1 - .../ckeditor/plugins/preview/lang/bg.js | 1 - .../ckeditor/plugins/preview/lang/bn.js | 1 - .../ckeditor/plugins/preview/lang/bs.js | 1 - .../ckeditor/plugins/preview/lang/ca.js | 1 - .../ckeditor/plugins/preview/lang/cs.js | 1 - .../ckeditor/plugins/preview/lang/cy.js | 1 - .../ckeditor/plugins/preview/lang/da.js | 1 - .../ckeditor/plugins/preview/lang/de.js | 1 - .../ckeditor/plugins/preview/lang/el.js | 1 - .../ckeditor/plugins/preview/lang/en-au.js | 1 - .../ckeditor/plugins/preview/lang/en-ca.js | 1 - .../ckeditor/plugins/preview/lang/en-gb.js | 1 - .../ckeditor/plugins/preview/lang/en.js | 1 - .../ckeditor/plugins/preview/lang/eo.js | 1 - .../ckeditor/plugins/preview/lang/es.js | 1 - .../ckeditor/plugins/preview/lang/et.js | 1 - .../ckeditor/plugins/preview/lang/eu.js | 1 - .../ckeditor/plugins/preview/lang/fa.js | 1 - .../ckeditor/plugins/preview/lang/fi.js | 1 - .../ckeditor/plugins/preview/lang/fo.js | 1 - .../ckeditor/plugins/preview/lang/fr-ca.js | 1 - .../ckeditor/plugins/preview/lang/fr.js | 1 - .../ckeditor/plugins/preview/lang/gl.js | 1 - .../ckeditor/plugins/preview/lang/gu.js | 1 - .../ckeditor/plugins/preview/lang/he.js | 1 - .../ckeditor/plugins/preview/lang/hi.js | 1 - .../ckeditor/plugins/preview/lang/hr.js | 1 - .../ckeditor/plugins/preview/lang/hu.js | 1 - .../ckeditor/plugins/preview/lang/id.js | 1 - .../ckeditor/plugins/preview/lang/is.js | 1 - .../ckeditor/plugins/preview/lang/it.js | 1 - .../ckeditor/plugins/preview/lang/ja.js | 1 - .../ckeditor/plugins/preview/lang/ka.js | 1 - .../ckeditor/plugins/preview/lang/km.js | 1 - .../ckeditor/plugins/preview/lang/ko.js | 1 - .../ckeditor/plugins/preview/lang/ku.js | 1 - .../ckeditor/plugins/preview/lang/lt.js | 1 - .../ckeditor/plugins/preview/lang/lv.js | 1 - .../ckeditor/plugins/preview/lang/mk.js | 1 - .../ckeditor/plugins/preview/lang/mn.js | 1 - .../ckeditor/plugins/preview/lang/ms.js | 1 - .../ckeditor/plugins/preview/lang/nb.js | 1 - .../ckeditor/plugins/preview/lang/nl.js | 1 - .../ckeditor/plugins/preview/lang/no.js | 1 - .../ckeditor/plugins/preview/lang/pl.js | 1 - .../ckeditor/plugins/preview/lang/pt-br.js | 1 - .../ckeditor/plugins/preview/lang/pt.js | 1 - .../ckeditor/plugins/preview/lang/ro.js | 1 - .../ckeditor/plugins/preview/lang/ru.js | 1 - .../ckeditor/plugins/preview/lang/si.js | 1 - .../ckeditor/plugins/preview/lang/sk.js | 1 - .../ckeditor/plugins/preview/lang/sl.js | 1 - .../ckeditor/plugins/preview/lang/sq.js | 1 - .../ckeditor/plugins/preview/lang/sr-latn.js | 1 - .../ckeditor/plugins/preview/lang/sr.js | 1 - .../ckeditor/plugins/preview/lang/sv.js | 1 - .../ckeditor/plugins/preview/lang/th.js | 1 - .../ckeditor/plugins/preview/lang/tr.js | 1 - .../ckeditor/plugins/preview/lang/ug.js | 1 - .../ckeditor/plugins/preview/lang/uk.js | 1 - .../ckeditor/plugins/preview/lang/vi.js | 1 - .../ckeditor/plugins/preview/lang/zh-cn.js | 1 - .../ckeditor/plugins/preview/lang/zh.js | 1 - .../ckeditor/plugins/preview/plugin.js | 8 - .../ckeditor/plugins/print/lang/af.js | 1 - .../ckeditor/plugins/print/lang/ar.js | 1 - .../ckeditor/plugins/print/lang/bg.js | 1 - .../ckeditor/plugins/print/lang/bn.js | 1 - .../ckeditor/plugins/print/lang/bs.js | 1 - .../ckeditor/plugins/print/lang/ca.js | 1 - .../ckeditor/plugins/print/lang/cs.js | 1 - .../ckeditor/plugins/print/lang/cy.js | 1 - .../ckeditor/plugins/print/lang/da.js | 1 - .../ckeditor/plugins/print/lang/de.js | 1 - .../ckeditor/plugins/print/lang/el.js | 1 - .../ckeditor/plugins/print/lang/en-au.js | 1 - .../ckeditor/plugins/print/lang/en-ca.js | 1 - .../ckeditor/plugins/print/lang/en-gb.js | 1 - .../ckeditor/plugins/print/lang/en.js | 1 - .../ckeditor/plugins/print/lang/eo.js | 1 - .../ckeditor/plugins/print/lang/es.js | 1 - .../ckeditor/plugins/print/lang/et.js | 1 - .../ckeditor/plugins/print/lang/eu.js | 1 - .../ckeditor/plugins/print/lang/fa.js | 1 - .../ckeditor/plugins/print/lang/fi.js | 1 - .../ckeditor/plugins/print/lang/fo.js | 1 - .../ckeditor/plugins/print/lang/fr-ca.js | 1 - .../ckeditor/plugins/print/lang/fr.js | 1 - .../ckeditor/plugins/print/lang/gl.js | 1 - .../ckeditor/plugins/print/lang/gu.js | 1 - .../ckeditor/plugins/print/lang/he.js | 1 - .../ckeditor/plugins/print/lang/hi.js | 1 - .../ckeditor/plugins/print/lang/hr.js | 1 - .../ckeditor/plugins/print/lang/hu.js | 1 - .../ckeditor/plugins/print/lang/id.js | 1 - .../ckeditor/plugins/print/lang/is.js | 1 - .../ckeditor/plugins/print/lang/it.js | 1 - .../ckeditor/plugins/print/lang/ja.js | 1 - .../ckeditor/plugins/print/lang/ka.js | 1 - .../ckeditor/plugins/print/lang/km.js | 1 - .../ckeditor/plugins/print/lang/ko.js | 1 - .../ckeditor/plugins/print/lang/ku.js | 1 - .../ckeditor/plugins/print/lang/lt.js | 1 - .../ckeditor/plugins/print/lang/lv.js | 1 - .../ckeditor/plugins/print/lang/mk.js | 1 - .../ckeditor/plugins/print/lang/mn.js | 1 - .../ckeditor/plugins/print/lang/ms.js | 1 - .../ckeditor/plugins/print/lang/nb.js | 1 - .../ckeditor/plugins/print/lang/nl.js | 1 - .../ckeditor/plugins/print/lang/no.js | 1 - .../ckeditor/plugins/print/lang/pl.js | 1 - .../ckeditor/plugins/print/lang/pt-br.js | 1 - .../ckeditor/plugins/print/lang/pt.js | 1 - .../ckeditor/plugins/print/lang/ro.js | 1 - .../ckeditor/plugins/print/lang/ru.js | 1 - .../ckeditor/plugins/print/lang/si.js | 1 - .../ckeditor/plugins/print/lang/sk.js | 1 - .../ckeditor/plugins/print/lang/sl.js | 1 - .../ckeditor/plugins/print/lang/sq.js | 1 - .../ckeditor/plugins/print/lang/sr-latn.js | 1 - .../ckeditor/plugins/print/lang/sr.js | 1 - .../ckeditor/plugins/print/lang/sv.js | 1 - .../ckeditor/plugins/print/lang/th.js | 1 - .../ckeditor/plugins/print/lang/tr.js | 1 - .../ckeditor/plugins/print/lang/ug.js | 1 - .../ckeditor/plugins/print/lang/uk.js | 1 - .../ckeditor/plugins/print/lang/vi.js | 1 - .../ckeditor/plugins/print/lang/zh-cn.js | 1 - .../ckeditor/plugins/print/lang/zh.js | 1 - .../ckeditor/ckeditor/plugins/print/plugin.js | 6 - .../ckeditor/ckeditor/plugins/save/lang/af.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ar.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/bg.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/bn.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/bs.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ca.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/cs.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/cy.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/da.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/de.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/el.js | 1 - .../ckeditor/plugins/save/lang/en-au.js | 1 - .../ckeditor/plugins/save/lang/en-ca.js | 1 - .../ckeditor/plugins/save/lang/en-gb.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/en.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/eo.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/es.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/et.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/eu.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/fa.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/fi.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/fo.js | 1 - .../ckeditor/plugins/save/lang/fr-ca.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/fr.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/gl.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/gu.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/he.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/hi.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/hr.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/hu.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/id.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/is.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/it.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ja.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ka.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/km.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ko.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ku.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/lt.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/lv.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/mk.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/mn.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ms.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/nb.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/nl.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/no.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/pl.js | 1 - .../ckeditor/plugins/save/lang/pt-br.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/pt.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ro.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ru.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/si.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/sk.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/sl.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/sq.js | 1 - .../ckeditor/plugins/save/lang/sr-latn.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/sr.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/sv.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/th.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/tr.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/ug.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/uk.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/vi.js | 1 - .../ckeditor/plugins/save/lang/zh-cn.js | 1 - .../ckeditor/ckeditor/plugins/save/lang/zh.js | 1 - .../ckeditor/ckeditor/plugins/save/plugin.js | 6 - .../ckeditor/ckeditor/plugins/scayt/README.md | 25 + .../ckeditor/plugins/selectall/lang/af.js | 1 - .../ckeditor/plugins/selectall/lang/ar.js | 1 - .../ckeditor/plugins/selectall/lang/bg.js | 1 - .../ckeditor/plugins/selectall/lang/bn.js | 1 - .../ckeditor/plugins/selectall/lang/bs.js | 1 - .../ckeditor/plugins/selectall/lang/ca.js | 1 - .../ckeditor/plugins/selectall/lang/cs.js | 1 - .../ckeditor/plugins/selectall/lang/cy.js | 1 - .../ckeditor/plugins/selectall/lang/da.js | 1 - .../ckeditor/plugins/selectall/lang/de.js | 1 - .../ckeditor/plugins/selectall/lang/el.js | 1 - .../ckeditor/plugins/selectall/lang/en-au.js | 1 - .../ckeditor/plugins/selectall/lang/en-ca.js | 1 - .../ckeditor/plugins/selectall/lang/en-gb.js | 1 - .../ckeditor/plugins/selectall/lang/en.js | 1 - .../ckeditor/plugins/selectall/lang/eo.js | 1 - .../ckeditor/plugins/selectall/lang/es.js | 1 - .../ckeditor/plugins/selectall/lang/et.js | 1 - .../ckeditor/plugins/selectall/lang/eu.js | 1 - .../ckeditor/plugins/selectall/lang/fa.js | 1 - .../ckeditor/plugins/selectall/lang/fi.js | 1 - .../ckeditor/plugins/selectall/lang/fo.js | 1 - .../ckeditor/plugins/selectall/lang/fr-ca.js | 1 - .../ckeditor/plugins/selectall/lang/fr.js | 1 - .../ckeditor/plugins/selectall/lang/gl.js | 1 - .../ckeditor/plugins/selectall/lang/gu.js | 1 - .../ckeditor/plugins/selectall/lang/he.js | 1 - .../ckeditor/plugins/selectall/lang/hi.js | 1 - .../ckeditor/plugins/selectall/lang/hr.js | 1 - .../ckeditor/plugins/selectall/lang/hu.js | 1 - .../ckeditor/plugins/selectall/lang/id.js | 1 - .../ckeditor/plugins/selectall/lang/is.js | 1 - .../ckeditor/plugins/selectall/lang/it.js | 1 - .../ckeditor/plugins/selectall/lang/ja.js | 1 - .../ckeditor/plugins/selectall/lang/ka.js | 1 - .../ckeditor/plugins/selectall/lang/km.js | 1 - .../ckeditor/plugins/selectall/lang/ko.js | 1 - .../ckeditor/plugins/selectall/lang/ku.js | 1 - .../ckeditor/plugins/selectall/lang/lt.js | 1 - .../ckeditor/plugins/selectall/lang/lv.js | 1 - .../ckeditor/plugins/selectall/lang/mk.js | 1 - .../ckeditor/plugins/selectall/lang/mn.js | 1 - .../ckeditor/plugins/selectall/lang/ms.js | 1 - .../ckeditor/plugins/selectall/lang/nb.js | 1 - .../ckeditor/plugins/selectall/lang/nl.js | 1 - .../ckeditor/plugins/selectall/lang/no.js | 1 - .../ckeditor/plugins/selectall/lang/pl.js | 1 - .../ckeditor/plugins/selectall/lang/pt-br.js | 1 - .../ckeditor/plugins/selectall/lang/pt.js | 1 - .../ckeditor/plugins/selectall/lang/ro.js | 1 - .../ckeditor/plugins/selectall/lang/ru.js | 1 - .../ckeditor/plugins/selectall/lang/si.js | 1 - .../ckeditor/plugins/selectall/lang/sk.js | 1 - .../ckeditor/plugins/selectall/lang/sl.js | 1 - .../ckeditor/plugins/selectall/lang/sq.js | 1 - .../plugins/selectall/lang/sr-latn.js | 1 - .../ckeditor/plugins/selectall/lang/sr.js | 1 - .../ckeditor/plugins/selectall/lang/sv.js | 1 - .../ckeditor/plugins/selectall/lang/th.js | 1 - .../ckeditor/plugins/selectall/lang/tr.js | 1 - .../ckeditor/plugins/selectall/lang/ug.js | 1 - .../ckeditor/plugins/selectall/lang/uk.js | 1 - .../ckeditor/plugins/selectall/lang/vi.js | 1 - .../ckeditor/plugins/selectall/lang/zh-cn.js | 1 - .../ckeditor/plugins/selectall/lang/zh.js | 1 - .../ckeditor/plugins/selectall/plugin.js | 6 - .../ckeditor/plugins/sharedspace/plugin.js | 7 - .../ckeditor/plugins/showblocks/lang/af.js | 1 - .../ckeditor/plugins/showblocks/lang/ar.js | 1 - .../ckeditor/plugins/showblocks/lang/bg.js | 1 - .../ckeditor/plugins/showblocks/lang/bn.js | 1 - .../ckeditor/plugins/showblocks/lang/bs.js | 1 - .../ckeditor/plugins/showblocks/lang/ca.js | 1 - .../ckeditor/plugins/showblocks/lang/cs.js | 1 - .../ckeditor/plugins/showblocks/lang/cy.js | 1 - .../ckeditor/plugins/showblocks/lang/da.js | 1 - .../ckeditor/plugins/showblocks/lang/de.js | 1 - .../ckeditor/plugins/showblocks/lang/el.js | 1 - .../ckeditor/plugins/showblocks/lang/en-au.js | 1 - .../ckeditor/plugins/showblocks/lang/en-ca.js | 1 - .../ckeditor/plugins/showblocks/lang/en-gb.js | 1 - .../ckeditor/plugins/showblocks/lang/en.js | 1 - .../ckeditor/plugins/showblocks/lang/eo.js | 1 - .../ckeditor/plugins/showblocks/lang/es.js | 1 - .../ckeditor/plugins/showblocks/lang/et.js | 1 - .../ckeditor/plugins/showblocks/lang/eu.js | 1 - .../ckeditor/plugins/showblocks/lang/fa.js | 1 - .../ckeditor/plugins/showblocks/lang/fi.js | 1 - .../ckeditor/plugins/showblocks/lang/fo.js | 1 - .../ckeditor/plugins/showblocks/lang/fr-ca.js | 1 - .../ckeditor/plugins/showblocks/lang/fr.js | 1 - .../ckeditor/plugins/showblocks/lang/gl.js | 1 - .../ckeditor/plugins/showblocks/lang/gu.js | 1 - .../ckeditor/plugins/showblocks/lang/he.js | 1 - .../ckeditor/plugins/showblocks/lang/hi.js | 1 - .../ckeditor/plugins/showblocks/lang/hr.js | 1 - .../ckeditor/plugins/showblocks/lang/hu.js | 1 - .../ckeditor/plugins/showblocks/lang/id.js | 1 - .../ckeditor/plugins/showblocks/lang/is.js | 1 - .../ckeditor/plugins/showblocks/lang/it.js | 1 - .../ckeditor/plugins/showblocks/lang/ja.js | 1 - .../ckeditor/plugins/showblocks/lang/ka.js | 1 - .../ckeditor/plugins/showblocks/lang/km.js | 1 - .../ckeditor/plugins/showblocks/lang/ko.js | 1 - .../ckeditor/plugins/showblocks/lang/ku.js | 1 - .../ckeditor/plugins/showblocks/lang/lt.js | 1 - .../ckeditor/plugins/showblocks/lang/lv.js | 1 - .../ckeditor/plugins/showblocks/lang/mk.js | 1 - .../ckeditor/plugins/showblocks/lang/mn.js | 1 - .../ckeditor/plugins/showblocks/lang/ms.js | 1 - .../ckeditor/plugins/showblocks/lang/nb.js | 1 - .../ckeditor/plugins/showblocks/lang/nl.js | 1 - .../ckeditor/plugins/showblocks/lang/no.js | 1 - .../ckeditor/plugins/showblocks/lang/pl.js | 1 - .../ckeditor/plugins/showblocks/lang/pt-br.js | 1 - .../ckeditor/plugins/showblocks/lang/pt.js | 1 - .../ckeditor/plugins/showblocks/lang/ro.js | 1 - .../ckeditor/plugins/showblocks/lang/ru.js | 1 - .../ckeditor/plugins/showblocks/lang/si.js | 1 - .../ckeditor/plugins/showblocks/lang/sk.js | 1 - .../ckeditor/plugins/showblocks/lang/sl.js | 1 - .../ckeditor/plugins/showblocks/lang/sq.js | 1 - .../plugins/showblocks/lang/sr-latn.js | 1 - .../ckeditor/plugins/showblocks/lang/sr.js | 1 - .../ckeditor/plugins/showblocks/lang/sv.js | 1 - .../ckeditor/plugins/showblocks/lang/th.js | 1 - .../ckeditor/plugins/showblocks/lang/tr.js | 1 - .../ckeditor/plugins/showblocks/lang/ug.js | 1 - .../ckeditor/plugins/showblocks/lang/uk.js | 1 - .../ckeditor/plugins/showblocks/lang/vi.js | 1 - .../ckeditor/plugins/showblocks/lang/zh-cn.js | 1 - .../ckeditor/plugins/showblocks/lang/zh.js | 1 - .../ckeditor/plugins/showblocks/plugin.js | 9 - .../ckeditor/plugins/showborders/plugin.js | 9 - .../ckeditor/plugins/smiley/lang/af.js | 1 - .../ckeditor/plugins/smiley/lang/ar.js | 1 - .../ckeditor/plugins/smiley/lang/bg.js | 1 - .../ckeditor/plugins/smiley/lang/bn.js | 1 - .../ckeditor/plugins/smiley/lang/bs.js | 1 - .../ckeditor/plugins/smiley/lang/ca.js | 1 - .../ckeditor/plugins/smiley/lang/cs.js | 1 - .../ckeditor/plugins/smiley/lang/cy.js | 1 - .../ckeditor/plugins/smiley/lang/da.js | 1 - .../ckeditor/plugins/smiley/lang/de.js | 1 - .../ckeditor/plugins/smiley/lang/el.js | 1 - .../ckeditor/plugins/smiley/lang/en-au.js | 1 - .../ckeditor/plugins/smiley/lang/en-ca.js | 1 - .../ckeditor/plugins/smiley/lang/en-gb.js | 1 - .../ckeditor/plugins/smiley/lang/en.js | 1 - .../ckeditor/plugins/smiley/lang/eo.js | 1 - .../ckeditor/plugins/smiley/lang/es.js | 1 - .../ckeditor/plugins/smiley/lang/et.js | 1 - .../ckeditor/plugins/smiley/lang/eu.js | 1 - .../ckeditor/plugins/smiley/lang/fa.js | 1 - .../ckeditor/plugins/smiley/lang/fi.js | 1 - .../ckeditor/plugins/smiley/lang/fo.js | 1 - .../ckeditor/plugins/smiley/lang/fr-ca.js | 1 - .../ckeditor/plugins/smiley/lang/fr.js | 1 - .../ckeditor/plugins/smiley/lang/gl.js | 1 - .../ckeditor/plugins/smiley/lang/gu.js | 1 - .../ckeditor/plugins/smiley/lang/he.js | 1 - .../ckeditor/plugins/smiley/lang/hi.js | 1 - .../ckeditor/plugins/smiley/lang/hr.js | 1 - .../ckeditor/plugins/smiley/lang/hu.js | 1 - .../ckeditor/plugins/smiley/lang/id.js | 1 - .../ckeditor/plugins/smiley/lang/is.js | 1 - .../ckeditor/plugins/smiley/lang/it.js | 1 - .../ckeditor/plugins/smiley/lang/ja.js | 1 - .../ckeditor/plugins/smiley/lang/ka.js | 1 - .../ckeditor/plugins/smiley/lang/km.js | 1 - .../ckeditor/plugins/smiley/lang/ko.js | 1 - .../ckeditor/plugins/smiley/lang/ku.js | 1 - .../ckeditor/plugins/smiley/lang/lt.js | 1 - .../ckeditor/plugins/smiley/lang/lv.js | 1 - .../ckeditor/plugins/smiley/lang/mk.js | 1 - .../ckeditor/plugins/smiley/lang/mn.js | 1 - .../ckeditor/plugins/smiley/lang/ms.js | 1 - .../ckeditor/plugins/smiley/lang/nb.js | 1 - .../ckeditor/plugins/smiley/lang/nl.js | 1 - .../ckeditor/plugins/smiley/lang/no.js | 1 - .../ckeditor/plugins/smiley/lang/pl.js | 1 - .../ckeditor/plugins/smiley/lang/pt-br.js | 1 - .../ckeditor/plugins/smiley/lang/pt.js | 1 - .../ckeditor/plugins/smiley/lang/ro.js | 1 - .../ckeditor/plugins/smiley/lang/ru.js | 1 - .../ckeditor/plugins/smiley/lang/si.js | 1 - .../ckeditor/plugins/smiley/lang/sk.js | 1 - .../ckeditor/plugins/smiley/lang/sl.js | 1 - .../ckeditor/plugins/smiley/lang/sq.js | 1 - .../ckeditor/plugins/smiley/lang/sr-latn.js | 1 - .../ckeditor/plugins/smiley/lang/sr.js | 1 - .../ckeditor/plugins/smiley/lang/sv.js | 1 - .../ckeditor/plugins/smiley/lang/th.js | 1 - .../ckeditor/plugins/smiley/lang/tr.js | 1 - .../ckeditor/plugins/smiley/lang/ug.js | 1 - .../ckeditor/plugins/smiley/lang/uk.js | 1 - .../ckeditor/plugins/smiley/lang/vi.js | 1 - .../ckeditor/plugins/smiley/lang/zh-cn.js | 1 - .../ckeditor/plugins/smiley/lang/zh.js | 1 - .../ckeditor/plugins/smiley/plugin.js | 7 - .../sourcedialog/dialogs/sourcedialog.js | 6 - .../ckeditor/plugins/sourcedialog/lang/af.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ar.js | 1 - .../ckeditor/plugins/sourcedialog/lang/bg.js | 1 - .../ckeditor/plugins/sourcedialog/lang/bn.js | 1 - .../ckeditor/plugins/sourcedialog/lang/bs.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ca.js | 1 - .../ckeditor/plugins/sourcedialog/lang/cs.js | 1 - .../ckeditor/plugins/sourcedialog/lang/cy.js | 1 - .../ckeditor/plugins/sourcedialog/lang/da.js | 1 - .../ckeditor/plugins/sourcedialog/lang/de.js | 1 - .../ckeditor/plugins/sourcedialog/lang/el.js | 1 - .../plugins/sourcedialog/lang/en-au.js | 1 - .../plugins/sourcedialog/lang/en-ca.js | 1 - .../plugins/sourcedialog/lang/en-gb.js | 1 - .../ckeditor/plugins/sourcedialog/lang/en.js | 1 - .../ckeditor/plugins/sourcedialog/lang/eo.js | 1 - .../ckeditor/plugins/sourcedialog/lang/es.js | 1 - .../ckeditor/plugins/sourcedialog/lang/et.js | 1 - .../ckeditor/plugins/sourcedialog/lang/eu.js | 1 - .../ckeditor/plugins/sourcedialog/lang/fa.js | 1 - .../ckeditor/plugins/sourcedialog/lang/fi.js | 1 - .../ckeditor/plugins/sourcedialog/lang/fo.js | 1 - .../plugins/sourcedialog/lang/fr-ca.js | 1 - .../ckeditor/plugins/sourcedialog/lang/fr.js | 1 - .../ckeditor/plugins/sourcedialog/lang/gl.js | 1 - .../ckeditor/plugins/sourcedialog/lang/gu.js | 1 - .../ckeditor/plugins/sourcedialog/lang/he.js | 1 - .../ckeditor/plugins/sourcedialog/lang/hi.js | 1 - .../ckeditor/plugins/sourcedialog/lang/hr.js | 1 - .../ckeditor/plugins/sourcedialog/lang/hu.js | 1 - .../ckeditor/plugins/sourcedialog/lang/id.js | 1 - .../ckeditor/plugins/sourcedialog/lang/is.js | 1 - .../ckeditor/plugins/sourcedialog/lang/it.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ja.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ka.js | 1 - .../ckeditor/plugins/sourcedialog/lang/km.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ko.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ku.js | 1 - .../ckeditor/plugins/sourcedialog/lang/lt.js | 1 - .../ckeditor/plugins/sourcedialog/lang/lv.js | 1 - .../ckeditor/plugins/sourcedialog/lang/mn.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ms.js | 1 - .../ckeditor/plugins/sourcedialog/lang/nb.js | 1 - .../ckeditor/plugins/sourcedialog/lang/nl.js | 1 - .../ckeditor/plugins/sourcedialog/lang/no.js | 1 - .../ckeditor/plugins/sourcedialog/lang/pl.js | 1 - .../plugins/sourcedialog/lang/pt-br.js | 1 - .../ckeditor/plugins/sourcedialog/lang/pt.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ro.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ru.js | 1 - .../ckeditor/plugins/sourcedialog/lang/si.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sk.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sl.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sq.js | 1 - .../plugins/sourcedialog/lang/sr-latn.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sr.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sv.js | 1 - .../ckeditor/plugins/sourcedialog/lang/th.js | 1 - .../ckeditor/plugins/sourcedialog/lang/tr.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ug.js | 1 - .../ckeditor/plugins/sourcedialog/lang/uk.js | 1 - .../ckeditor/plugins/sourcedialog/lang/vi.js | 1 - .../plugins/sourcedialog/lang/zh-cn.js | 1 - .../ckeditor/plugins/sourcedialog/lang/zh.js | 1 - .../ckeditor/plugins/sourcedialog/plugin.js | 6 - .../plugins/stylesheetparser/plugin.js | 7 - .../ckeditor/plugins/tableresize/plugin.js | 13 - .../ckeditor/plugins/templates/lang/af.js | 1 - .../ckeditor/plugins/templates/lang/ar.js | 1 - .../ckeditor/plugins/templates/lang/bg.js | 1 - .../ckeditor/plugins/templates/lang/bn.js | 1 - .../ckeditor/plugins/templates/lang/bs.js | 1 - .../ckeditor/plugins/templates/lang/ca.js | 1 - .../ckeditor/plugins/templates/lang/cs.js | 1 - .../ckeditor/plugins/templates/lang/cy.js | 1 - .../ckeditor/plugins/templates/lang/da.js | 1 - .../ckeditor/plugins/templates/lang/de.js | 1 - .../ckeditor/plugins/templates/lang/el.js | 1 - .../ckeditor/plugins/templates/lang/en-au.js | 1 - .../ckeditor/plugins/templates/lang/en-ca.js | 1 - .../ckeditor/plugins/templates/lang/en-gb.js | 1 - .../ckeditor/plugins/templates/lang/en.js | 1 - .../ckeditor/plugins/templates/lang/eo.js | 1 - .../ckeditor/plugins/templates/lang/es.js | 1 - .../ckeditor/plugins/templates/lang/et.js | 1 - .../ckeditor/plugins/templates/lang/eu.js | 1 - .../ckeditor/plugins/templates/lang/fa.js | 1 - .../ckeditor/plugins/templates/lang/fi.js | 1 - .../ckeditor/plugins/templates/lang/fo.js | 1 - .../ckeditor/plugins/templates/lang/fr-ca.js | 1 - .../ckeditor/plugins/templates/lang/fr.js | 1 - .../ckeditor/plugins/templates/lang/gl.js | 1 - .../ckeditor/plugins/templates/lang/gu.js | 1 - .../ckeditor/plugins/templates/lang/he.js | 1 - .../ckeditor/plugins/templates/lang/hi.js | 1 - .../ckeditor/plugins/templates/lang/hr.js | 1 - .../ckeditor/plugins/templates/lang/hu.js | 1 - .../ckeditor/plugins/templates/lang/id.js | 1 - .../ckeditor/plugins/templates/lang/is.js | 1 - .../ckeditor/plugins/templates/lang/it.js | 1 - .../ckeditor/plugins/templates/lang/ja.js | 1 - .../ckeditor/plugins/templates/lang/ka.js | 1 - .../ckeditor/plugins/templates/lang/km.js | 1 - .../ckeditor/plugins/templates/lang/ko.js | 1 - .../ckeditor/plugins/templates/lang/ku.js | 1 - .../ckeditor/plugins/templates/lang/lt.js | 1 - .../ckeditor/plugins/templates/lang/lv.js | 1 - .../ckeditor/plugins/templates/lang/mk.js | 1 - .../ckeditor/plugins/templates/lang/mn.js | 1 - .../ckeditor/plugins/templates/lang/ms.js | 1 - .../ckeditor/plugins/templates/lang/nb.js | 1 - .../ckeditor/plugins/templates/lang/nl.js | 1 - .../ckeditor/plugins/templates/lang/no.js | 1 - .../ckeditor/plugins/templates/lang/pl.js | 1 - .../ckeditor/plugins/templates/lang/pt-br.js | 1 - .../ckeditor/plugins/templates/lang/pt.js | 1 - .../ckeditor/plugins/templates/lang/ro.js | 1 - .../ckeditor/plugins/templates/lang/ru.js | 1 - .../ckeditor/plugins/templates/lang/si.js | 1 - .../ckeditor/plugins/templates/lang/sk.js | 1 - .../ckeditor/plugins/templates/lang/sl.js | 1 - .../ckeditor/plugins/templates/lang/sq.js | 1 - .../plugins/templates/lang/sr-latn.js | 1 - .../ckeditor/plugins/templates/lang/sr.js | 1 - .../ckeditor/plugins/templates/lang/sv.js | 1 - .../ckeditor/plugins/templates/lang/th.js | 1 - .../ckeditor/plugins/templates/lang/tr.js | 1 - .../ckeditor/plugins/templates/lang/ug.js | 1 - .../ckeditor/plugins/templates/lang/uk.js | 1 - .../ckeditor/plugins/templates/lang/vi.js | 1 - .../ckeditor/plugins/templates/lang/zh-cn.js | 1 - .../ckeditor/plugins/templates/lang/zh.js | 1 - .../ckeditor/plugins/templates/plugin.js | 7 - .../plugins/uicolor/dialogs/uicolor.js | 9 - .../plugins/uicolor/icons/hidpi/uicolor.png | Bin 2287 -> 0 bytes .../plugins/uicolor/icons/uicolor.png | Bin 965 -> 0 bytes .../uicolor/lang/_translationstatus.txt | 27 - .../ckeditor/plugins/uicolor/lang/ar.js | 5 - .../ckeditor/plugins/uicolor/lang/bg.js | 5 - .../ckeditor/plugins/uicolor/lang/ca.js | 5 - .../ckeditor/plugins/uicolor/lang/cs.js | 5 - .../ckeditor/plugins/uicolor/lang/cy.js | 5 - .../ckeditor/plugins/uicolor/lang/da.js | 5 - .../ckeditor/plugins/uicolor/lang/de.js | 5 - .../ckeditor/plugins/uicolor/lang/el.js | 5 - .../ckeditor/plugins/uicolor/lang/en-gb.js | 5 - .../ckeditor/plugins/uicolor/lang/en.js | 5 - .../ckeditor/plugins/uicolor/lang/eo.js | 5 - .../ckeditor/plugins/uicolor/lang/es.js | 5 - .../ckeditor/plugins/uicolor/lang/et.js | 5 - .../ckeditor/plugins/uicolor/lang/eu.js | 5 - .../ckeditor/plugins/uicolor/lang/fa.js | 5 - .../ckeditor/plugins/uicolor/lang/fi.js | 5 - .../ckeditor/plugins/uicolor/lang/fr-ca.js | 5 - .../ckeditor/plugins/uicolor/lang/fr.js | 5 - .../ckeditor/plugins/uicolor/lang/gl.js | 5 - .../ckeditor/plugins/uicolor/lang/he.js | 5 - .../ckeditor/plugins/uicolor/lang/hr.js | 5 - .../ckeditor/plugins/uicolor/lang/hu.js | 5 - .../ckeditor/plugins/uicolor/lang/id.js | 5 - .../ckeditor/plugins/uicolor/lang/it.js | 5 - .../ckeditor/plugins/uicolor/lang/ja.js | 5 - .../ckeditor/plugins/uicolor/lang/km.js | 5 - .../ckeditor/plugins/uicolor/lang/ko.js | 5 - .../ckeditor/plugins/uicolor/lang/ku.js | 5 - .../ckeditor/plugins/uicolor/lang/lv.js | 5 - .../ckeditor/plugins/uicolor/lang/mk.js | 5 - .../ckeditor/plugins/uicolor/lang/nb.js | 5 - .../ckeditor/plugins/uicolor/lang/nl.js | 5 - .../ckeditor/plugins/uicolor/lang/no.js | 5 - .../ckeditor/plugins/uicolor/lang/pl.js | 5 - .../ckeditor/plugins/uicolor/lang/pt-br.js | 5 - .../ckeditor/plugins/uicolor/lang/pt.js | 5 - .../ckeditor/plugins/uicolor/lang/ru.js | 5 - .../ckeditor/plugins/uicolor/lang/si.js | 5 - .../ckeditor/plugins/uicolor/lang/sk.js | 5 - .../ckeditor/plugins/uicolor/lang/sl.js | 5 - .../ckeditor/plugins/uicolor/lang/sq.js | 5 - .../ckeditor/plugins/uicolor/lang/sv.js | 5 - .../ckeditor/plugins/uicolor/lang/tr.js | 5 - .../ckeditor/plugins/uicolor/lang/ug.js | 5 - .../ckeditor/plugins/uicolor/lang/uk.js | 5 - .../ckeditor/plugins/uicolor/lang/vi.js | 5 - .../ckeditor/plugins/uicolor/lang/zh-cn.js | 5 - .../ckeditor/plugins/uicolor/lang/zh.js | 5 - .../ckeditor/plugins/uicolor/plugin.js | 6 - .../plugins/uicolor/yui/assets/hue_bg.png | Bin 1120 -> 0 bytes .../plugins/uicolor/yui/assets/hue_thumb.png | Bin 195 -> 0 bytes .../uicolor/yui/assets/picker_mask.png | Bin 12174 -> 0 bytes .../uicolor/yui/assets/picker_thumb.png | Bin 192 -> 0 bytes .../plugins/uicolor/yui/assets/yui.css | 15 - .../ckeditor/plugins/uicolor/yui/yui.js | 225 -- .../ckeditor/plugins/widget/images/handle.png | Bin 345 -> 0 bytes .../ckeditor/plugins/widget/lang/ca.js | 5 - .../ckeditor/plugins/widget/lang/cs.js | 5 - .../ckeditor/plugins/widget/lang/cy.js | 5 - .../ckeditor/plugins/widget/lang/de.js | 5 - .../ckeditor/plugins/widget/lang/el.js | 5 - .../ckeditor/plugins/widget/lang/en-gb.js | 5 - .../ckeditor/plugins/widget/lang/en.js | 5 - .../ckeditor/plugins/widget/lang/es.js | 5 - .../ckeditor/plugins/widget/lang/fa.js | 5 - .../ckeditor/plugins/widget/lang/fi.js | 5 - .../ckeditor/plugins/widget/lang/fr.js | 5 - .../ckeditor/plugins/widget/lang/gl.js | 5 - .../ckeditor/plugins/widget/lang/hu.js | 5 - .../ckeditor/plugins/widget/lang/ja.js | 5 - .../ckeditor/plugins/widget/lang/km.js | 5 - .../ckeditor/plugins/widget/lang/ko.js | 5 - .../ckeditor/plugins/widget/lang/nb.js | 5 - .../ckeditor/plugins/widget/lang/nl.js | 5 - .../ckeditor/plugins/widget/lang/no.js | 5 - .../ckeditor/plugins/widget/lang/pl.js | 5 - .../ckeditor/plugins/widget/lang/pt-br.js | 5 - .../ckeditor/plugins/widget/lang/pt.js | 5 - .../ckeditor/plugins/widget/lang/ru.js | 5 - .../ckeditor/plugins/widget/lang/sl.js | 5 - .../ckeditor/plugins/widget/lang/sv.js | 5 - .../ckeditor/plugins/widget/lang/uk.js | 5 - .../ckeditor/plugins/widget/lang/zh-cn.js | 5 - .../ckeditor/plugins/widget/lang/zh.js | 5 - .../ckeditor/plugins/widget/plugin.js | 53 - .../ckeditor/ckeditor/plugins/wsc/README.md | 25 + .../ckeditor/ckeditor/plugins/xml/plugin.js | 7 - .../ckeditor/ckeditor/samples/ajax.html | 82 - .../ckeditor/ckeditor/samples/api.html | 207 -- .../ckeditor/ckeditor/samples/appendto.html | 57 - .../samples/assets/inlineall/logo.png | Bin 4411 -> 0 bytes .../assets/outputxhtml/outputxhtml.css | 204 - .../ckeditor/samples/assets/posteddata.php | 59 - .../ckeditor/samples/assets/sample.css | 3 - .../ckeditor/samples/assets/sample.jpg | Bin 17932 -> 0 bytes .../samples/assets/uilanguages/languages.js | 7 - .../ckeditor/samples/datafiltering.html | 401 -- .../ckeditor/ckeditor/samples/divreplace.html | 141 - .../ckeditor/ckeditor/samples/index.html | 167 - .../ckeditor/ckeditor/samples/inlineall.html | 311 -- .../ckeditor/samples/inlinebycode.html | 121 - .../ckeditor/samples/inlinetextarea.html | 110 - .../ckeditor/ckeditor/samples/jquery.html | 100 - .../samples/plugins/autogrow/autogrow.html | 99 - .../samples/plugins/bbcode/bbcode.html | 111 - .../samples/plugins/devtools/devtools.html | 83 - .../samples/plugins/divarea/divarea.html | 61 - .../samples/plugins/docprops/docprops.html | 78 - .../assets/outputforflash/swfobject.js | 18 - .../samples/plugins/image2/assets/image1.jpg | Bin 34316 -> 0 bytes .../samples/plugins/image2/assets/image2.jpg | Bin 27711 -> 0 bytes .../samples/plugins/image2/image2.html | 65 - .../samples/plugins/mathjax/mathjax.html | 82 - .../plugins/placeholder/placeholder.html | 72 - .../plugins/sharedspace/sharedspace.html | 119 - .../plugins/sourcedialog/sourcedialog.html | 118 - .../stylesheetparser/assets/sample.css | 70 - .../stylesheetparser/stylesheetparser.html | 82 - .../plugins/tableresize/tableresize.html | 104 - .../samples/plugins/uicolor/uicolor.html | 103 - .../ckeditor/ckeditor/samples/readonly.html | 73 - .../ckeditor/samples/replacebyclass.html | 57 - .../ckeditor/samples/replacebycode.html | 56 - .../ckeditor/ckeditor/samples/sample.css | 356 -- .../ckeditor/ckeditor/samples/sample.js | 50 - .../ckeditor/samples/sample_posteddata.php | 16 - .../ckeditor/ckeditor/samples/tabindex.html | 75 - .../ckeditor/ckeditor/samples/uicolor.html | 69 - .../ckeditor/samples/uilanguages.html | 119 - .../ckeditor/ckeditor/samples/xhtmlstyle.html | 231 -- .../ckeditor/ckeditor/skins/kama/dialog.css | 5 - .../ckeditor/skins/kama/dialog_ie.css | 5 - .../ckeditor/skins/kama/dialog_ie7.css | 5 - .../ckeditor/skins/kama/dialog_ie8.css | 5 - .../ckeditor/skins/kama/dialog_iequirks.css | 5 - .../ckeditor/skins/kama/dialog_opera.css | 5 - .../ckeditor/ckeditor/skins/kama/editor.css | 5 - .../ckeditor/skins/kama/editor_ie.css | 5 - .../ckeditor/skins/kama/editor_ie7.css | 5 - .../ckeditor/skins/kama/editor_ie8.css | 5 - .../ckeditor/skins/kama/editor_iequirks.css | 5 - .../ckeditor/ckeditor/skins/kama/icons.png | Bin 9285 -> 0 bytes .../ckeditor/skins/kama/icons_hidpi.png | Bin 14516 -> 0 bytes .../skins/kama/images/dialog_sides.gif | Bin 48 -> 0 bytes .../skins/kama/images/dialog_sides.png | Bin 178 -> 0 bytes .../skins/kama/images/dialog_sides_rtl.png | Bin 181 -> 0 bytes .../ckeditor/skins/kama/images/mini.gif | Bin 183 -> 0 bytes .../ckeditor/skins/kama/images/sprites.png | Bin 7086 -> 0 bytes .../skins/kama/images/sprites_ie6.png | Bin 2724 -> 0 bytes .../skins/kama/images/toolbar_start.gif | Bin 105 -> 0 bytes .../ckeditor/ckeditor/skins/kama/readme.md | 40 - .../ckeditor/ckeditor/skins/kama/skin.js | 8 - .../ckeditor/ckeditor/skins/moono/editor.css | 2 +- .../ckeditor/skins/moono/editor_gecko.css | 2 +- .../ckeditor/skins/moono/editor_ie.css | 2 +- .../ckeditor/skins/moono/editor_ie7.css | 2 +- .../ckeditor/skins/moono/editor_ie8.css | 2 +- .../ckeditor/skins/moono/editor_iequirks.css | 2 +- .../ckeditor/ckeditor/skins/moono/icons.png | Bin 17728 -> 20643 bytes .../ckeditor/skins/moono/icons_hidpi.png | Bin 61908 -> 67753 bytes .../ckeditor/ckeditor/skins/moono/skin.js | 10 + htdocs/includes/ckeditor/ckeditor/styles.js | 2 +- 5669 files changed, 147640 insertions(+), 9398 deletions(-) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/CHANGES.md create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/LICENSE.md create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/README.md create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/build-config.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/ckeditor.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/config.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/contents.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/_bootstrap.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/ckeditor.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/ckeditor_base.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/ckeditor_basic.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/command.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/commanddefinition.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/config.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/creators/inline.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/creators/themedui.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dataprocessor.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/comment.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/document.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/documentfragment.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/domobject.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/element.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/elementpath.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/event.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/iterator.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/node.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/nodelist.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/range.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/rangelist.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/text.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/walker.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dom/window.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/dtd.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/editable.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/editor.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/editor_basic.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/env.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/event.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/eventInfo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/filter.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/focusmanager.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmldataprocessor.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/basicwriter.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/cdata.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/comment.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/element.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/filter.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/fragment.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/node.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/text.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/keystrokehandler.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/lang.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/loader.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/plugindefinition.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/plugins.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/resourcemanager.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/scriptloader.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/selection.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/skin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/style.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/template.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/tools.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/core/ui.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/lang/_translationstatus.txt (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/_translationstatus.txt create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/dialogs/about.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/dialogs/hidpi/logo_ckeditor.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/icons/about.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/icons/hidpi/about.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/about/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/bold.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/bold.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/italic.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/strike.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/subscript.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/superscript.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/underline.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/italic.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/strike.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/subscript.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/superscript.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/underline.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/bidi/icons/bidiltr.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/bidi/icons/bidirtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/bidi/icons/hidpi/bidiltr.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/bidi/icons/hidpi/bidirtl.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/icons/blockquote.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/icons/hidpi/blockquote.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/button/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/dev/clipboard.html create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/dialogs/paste.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/copy-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/copy.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/cut-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/cut.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/copy-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/copy.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/cut-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/cut.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/paste-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/paste.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/paste-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/paste.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/colorbutton/icons/bgcolor.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/colorbutton/icons/hidpi/bgcolor.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/colorbutton/icons/hidpi/textcolor.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/colorbutton/icons/textcolor.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/plugin.js rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/dialog => _source/plugins/dialog/samples}/assets/my_dialog.js (85%) rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/dialog => _source/plugins/dialog/samples}/dialog.html (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/dialogs/div.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/div/icons/creatediv.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/div/icons/hidpi/creatediv.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/div/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/enterkey/plugin.js rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/enterkey => _source/plugins/enterkey/samples}/enterkey.html (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/entities/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/images/spacer.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/filebrowser/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/dialogs/find.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/find/icons/find-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/find/icons/find.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/find/icons/hidpi/find-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/find/icons/hidpi/find.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/find/icons/hidpi/replace.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/find/icons/replace.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/find/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/dialogs/flash.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/flash/icons/flash.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/flash/icons/hidpi/flash.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/images/placeholder.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/floatingspace/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/floatpanel/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/font/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/format/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/button.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/checkbox.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/form.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/radio.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/select.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/textarea.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/textfield.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/button.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/checkbox.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/form.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hiddenfield.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/button.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/checkbox.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/form.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/hiddenfield.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/imagebutton.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/radio.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/select-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/select.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/textarea-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/textarea.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/textfield-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/hidpi/textfield.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/imagebutton.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/radio.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/select-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/select.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/textarea-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/textarea.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/textfield-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/forms/icons/textfield.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/images/hiddenfield.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/icons/hidpi/horizontalrule.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/icons/horizontalrule.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/plugin.js rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/htmlwriter => _source/plugins/htmlwriter/samples}/assets/outputforflash/outputforflash.fla (100%) rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/htmlwriter => _source/plugins/htmlwriter/samples}/assets/outputforflash/outputforflash.swf (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/swfobject.js rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/htmlwriter => _source/plugins/htmlwriter/samples}/outputforflash.html (100%) rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/htmlwriter => _source/plugins/htmlwriter/samples}/outputhtml.html (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/dialogs/iframe.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/iframe/icons/hidpi/iframe.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/iframe/icons/iframe.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/images/placeholder.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/dialogs/image.js rename htdocs/includes/ckeditor/ckeditor/{plugins/image2 => _source/plugins/image}/icons/hidpi/image.png (100%) rename htdocs/includes/ckeditor/ckeditor/{plugins/image2 => _source/plugins/image}/icons/image.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/images/noimage.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/image/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/dev/indent.html create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/indent-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/indent.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/outdent-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/outdent.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/indent-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/indent.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/outdent-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/outdent.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indentblock/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/indentlist/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/justify/icons/hidpi/justifyblock.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/justify/icons/hidpi/justifycenter.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/justify/icons/hidpi/justifyleft.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/justify/icons/hidpi/justifyright.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/justify/icons/justifyblock.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/justify/icons/justifycenter.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/justify/icons/justifyleft.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/justify/icons/justifyright.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/language/icons/hidpi/language.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/language/icons/language.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/language/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/dialogs/anchor.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/dialogs/link.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/anchor-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/anchor.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/anchor-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/anchor.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/link.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/unlink.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/link.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/unlink.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/images/anchor.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/images/hidpi/anchor.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/link/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/bulletedlist-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/bulletedlist.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/numberedlist-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/numberedlist.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/numberedlist-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/numberedlist.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/list/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/listblock/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/dev/magicline.html create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/images/hidpi/icon.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/images/icon.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/plugin.js rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/magicline => _source/plugins/magicline/samples}/magicline.html (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/icons/hidpi/maximize.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/icons/maximize.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/menu/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/menubutton/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/newpage/icons/hidpi/newpage-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/newpage/icons/hidpi/newpage.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/newpage/icons/newpage-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/newpage/icons/newpage.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/pagebreak/icons/hidpi/pagebreak.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/pagebreak/icons/pagebreak-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/pagebreak/icons/pagebreak.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/panel/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/panelbutton/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/filter/default.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/pastefromword-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/pastefromword.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/pastetext-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/pastetext.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/popup/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/preview/icons/hidpi/preview-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/preview/icons/hidpi/preview.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/preview/icons/preview-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/preview/icons/preview.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/preview.html rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/print/icons/hidpi/print.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/print/icons/print.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/print/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/icons/hidpi/removeformat.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/icons/removeformat.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/resize/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/richcombo/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/save/icons/hidpi/save.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/save/icons/save.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/save/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/LICENSE.md create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/README.md create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/dialogs/options.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/dialogs/toolbar.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/icons/hidpi/scayt.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/icons/scayt.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/selectall/icons/hidpi/selectall.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/selectall/icons/selectall.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/plugin.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/showblocks/icons/hidpi/showblocks-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/showblocks/icons/hidpi/showblocks.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/showblocks/icons/showblocks-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/showblocks/icons/showblocks.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_address.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_blockquote.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_div.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h1.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h2.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h3.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h4.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h5.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h6.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_p.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_pre.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/showborders/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/dialogs/smiley.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/smiley/icons/hidpi/smiley.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/smiley/icons/smiley.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angel_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angel_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angry_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angry_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/broken_heart.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/broken_heart.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/confused_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/confused_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/cry_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/cry_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/devil_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/devil_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/embarrassed_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/embarrassed_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/envelope.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/envelope.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/heart.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/heart.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/kiss.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/kiss.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/lightbulb.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/lightbulb.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/omg_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/omg_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/regular_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/regular_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/sad_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/sad_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/shades_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/shades_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/teeth_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/teeth_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_down.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_down.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_up.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_up.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/tongue_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/tongue_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/tounge_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/wink_smile.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/wink_smile.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/plugin.js rename htdocs/includes/ckeditor/ckeditor/{plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png => _source/plugins/sourcearea/icons/hidpi/source-rtl.png} (100%) rename htdocs/includes/ckeditor/ckeditor/{plugins/sourcedialog/icons/hidpi/sourcedialog.png => _source/plugins/sourcearea/icons/hidpi/source.png} (100%) rename htdocs/includes/ckeditor/ckeditor/{plugins/sourcedialog/icons/sourcedialog-rtl.png => _source/plugins/sourcearea/icons/source-rtl.png} (100%) rename htdocs/includes/ckeditor/ckeditor/{plugins/sourcedialog/icons/sourcedialog.png => _source/plugins/sourcearea/icons/source.png} (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/_translationstatus.txt create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/icons/hidpi/specialchar.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/icons/specialchar.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/_translationstatus.txt create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/tab/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/dialogs/table.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/icons/hidpi/table.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/icons/table.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/table/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/tabletools/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.js rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/templates/icons/hidpi/templates-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/templates/icons/hidpi/templates.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/templates/icons/templates-rtl.png (100%) rename htdocs/includes/ckeditor/ckeditor/{ => _source}/plugins/templates/icons/templates.png (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/default.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/images/template1.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/images/template2.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/images/template3.gif create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/plugin.js rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/toolbar => _source/plugins/toolbar/samples}/toolbar.html (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/redo-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/redo.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/undo-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/undo.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/redo-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/redo.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/undo-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/undo.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/id.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/si.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sq.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/LICENSE.md create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/README.md create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/ciframe.html create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmp.html create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc_ie.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/icons/hidpi/spellchecker.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/icons/spellchecker.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/af.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ar.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/bg.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/bn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/bs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/cs.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/cy.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/da.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/de.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/el.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en-au.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en-gb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/eo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/es.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/et.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/eu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fa.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fo.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fr-ca.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/gl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/gu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/he.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/hi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/hr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/hu.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/is.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/it.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ja.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ka.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/km.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ko.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ku.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/lt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/lv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/mk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/mn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ms.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/nb.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/nl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/no.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/pl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/pt-br.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/pt.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ro.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ru.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sl.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sr-latn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sv.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/th.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/tr.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ug.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/uk.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/vi.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/zh-cn.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/zh.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/plugins/wysiwygarea/plugin.js rename htdocs/includes/ckeditor/ckeditor/{samples/plugins/wysiwygarea => _source/plugins/wysiwygarea/samples}/fullpage.html (100%) create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/colorpanel.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_ie.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_ie7.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_ie8.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_iequirks.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_opera.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_gecko.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_ie.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_ie7.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_ie8.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_iequirks.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/elementspath.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/about.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/anchor-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/anchor.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bgcolor.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bidiltr.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bidirtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/blockquote.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bold.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bulletedlist-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bulletedlist.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/button.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/checkbox.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/copy-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/copy.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/creatediv.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/cut-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/cut.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/find-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/find.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/flash.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/form.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/hiddenfield.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/horizontalrule.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/iframe.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/image.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/imagebutton.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/indent-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/indent.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/italic.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifyblock.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifycenter.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifyleft.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifyright.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/link.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/maximize.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/newpage-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/newpage.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/numberedlist-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/numberedlist.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/outdent-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/outdent.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pagebreak-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pagebreak.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/paste-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/paste.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastefromword-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastefromword.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastetext-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastetext.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/preview-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/preview.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/print.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/radio.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/redo-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/redo.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/removeformat.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/replace.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/save.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/scayt.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/select-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/select.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/selectall.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/showblocks-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/showblocks.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/smiley.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/source-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/source.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/specialchar.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/spellchecker.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/strike.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/subscript.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/superscript.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/table.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/templates-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/templates.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textarea-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textarea.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textcolor.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textfield-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textfield.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/underline.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/undo-rtl.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/undo.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/unlink.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/arrow.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/close.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/close.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/lock-open.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/lock.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/refresh.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/lock-open.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/lock.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/refresh.png create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/mainui.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/menu.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/panel.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/presets.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/readme.md create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/reset.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/richcombo.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/skin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/toolbar.css create mode 100644 htdocs/includes/ckeditor/ckeditor/_source/styles.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/bower.json create mode 100644 htdocs/includes/ckeditor/ckeditor/build-config.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/composer.json delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/adobeair/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/ajax/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/autogrow/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bbcode/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/bidi/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colorbutton/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/colordialog/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/_translationstatus.txt delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/devtools/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/dialogadvtab/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/div/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/divarea/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/dialogs/docprops.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/icons/docprops-rtl.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/icons/docprops.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/icons/hidpi/docprops.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/docprops/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/find/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/flash/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/font/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/forms/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframe/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/iframedialog/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/dialogs/image2.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/image2/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/indentblock/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/justify/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/language/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/lineutils/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/liststyle/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/dialogs/mathjax.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/icons/mathjax.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/images/loader.gif delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/mathjax/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/newpage/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/panelbutton/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/dialogs/placeholder.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/icons/placeholder.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/placeholder/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/preview/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/print/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/save/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/scayt/README.md delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/selectall/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sharedspace/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showblocks/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/showborders/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/smiley/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/sourcedialog/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/stylesheetparser/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/tableresize/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/af.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/bn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/bs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/en-au.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/en-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/fo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/gu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/hi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/is.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ka.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/lt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/mn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ms.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ro.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/sr-latn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/sr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/th.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/templates/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/dialogs/uicolor.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/icons/uicolor.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/_translationstatus.txt delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/ar.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/bg.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/da.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/eo.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/et.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/eu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/fr-ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/he.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/hr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/id.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/it.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/ku.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/lv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/mk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/si.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/sk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/sq.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/tr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/ug.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/vi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/yui/assets/hue_bg.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/yui/assets/picker_mask.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/yui/assets/yui.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/uicolor/yui/yui.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/images/handle.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/ca.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/cs.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/cy.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/de.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/el.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/en-gb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/en.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/es.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/fa.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/fi.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/fr.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/gl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/hu.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/ja.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/km.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/ko.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/nb.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/nl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/no.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/pl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/pt-br.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/pt.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/ru.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/sl.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/sv.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/uk.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/zh-cn.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/lang/zh.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/widget/plugin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/wsc/README.md delete mode 100644 htdocs/includes/ckeditor/ckeditor/plugins/xml/plugin.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/ajax.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/api.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/appendto.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/assets/inlineall/logo.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/assets/outputxhtml/outputxhtml.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/assets/posteddata.php delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/assets/sample.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/assets/sample.jpg delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/assets/uilanguages/languages.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/datafiltering.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/divreplace.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/index.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/inlineall.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/inlinebycode.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/inlinetextarea.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/jquery.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/autogrow/autogrow.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/bbcode/bbcode.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/devtools/devtools.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/divarea/divarea.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/docprops/docprops.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/image2/assets/image1.jpg delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/image2/assets/image2.jpg delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/image2/image2.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/mathjax/mathjax.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/placeholder/placeholder.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/sharedspace/sharedspace.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/sourcedialog/sourcedialog.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/stylesheetparser/assets/sample.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/tableresize/tableresize.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/plugins/uicolor/uicolor.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/readonly.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/replacebyclass.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/replacebycode.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/sample.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/sample.js delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/sample_posteddata.php delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/tabindex.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/uicolor.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/uilanguages.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/samples/xhtmlstyle.html delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/dialog.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/dialog_ie.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/dialog_ie7.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/dialog_ie8.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/dialog_iequirks.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/dialog_opera.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/editor.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/editor_ie.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/editor_ie7.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/editor_ie8.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/editor_iequirks.css delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/icons.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/icons_hidpi.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/images/dialog_sides.gif delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/images/dialog_sides.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/images/dialog_sides_rtl.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/images/mini.gif delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/images/sprites.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/images/sprites_ie6.png delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/images/toolbar_start.gif delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/readme.md delete mode 100644 htdocs/includes/ckeditor/ckeditor/skins/kama/skin.js create mode 100644 htdocs/includes/ckeditor/ckeditor/skins/moono/skin.js diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php index a569632cc02..5204d5f989c 100644 --- a/htdocs/admin/commande.php +++ b/htdocs/admin/commande.php @@ -555,7 +555,16 @@ print ''; print ''; print '\n"; diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 8beae962d09..2fe76a920b8 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -290,6 +290,55 @@ function pdf_getHeightForLogo($logo, $url = false) return $height; } +/** + * Function to try to calculate height of a HTML Content + * + * @param TCPDF $pdf PDF initialized object + * @param string $htmlcontent HTML Contect + * @see getStringHeight + */ +function pdfGetHeightForHtmlContent(&$pdf, $htmlcontent) +{ + // store current object + $pdf->startTransaction(); + // store starting values + $start_y = $pdf->GetY(); + var_dump($start_y); + $start_page = $pdf->getPage(); + // call your printing functions with your parameters + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + $pdf->writeHTMLCell(0, 0, 0, $start_y, $htmlcontent, 0, 1, false, true, 'J',true); + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // get the new Y + $end_y = $pdf->GetY(); + $end_page = $pdf->getPage(); + // calculate height + $height = 0; + if ($end_page == $start_page) { + $height = $end_y - $start_y; + } + else + { + for ($page=$start_page; $page <= $end_page; ++$page) { + $this->setPage($page); + if ($page == $start_page) { + // first page + $height = $this->h - $start_y - $this->bMargin; + } elseif ($page == $end_page) { + // last page + $height = $end_y - $this->tMargin; + } else { + $height = $this->h - $this->tMargin - $this->bMargin; + } + } + } + // restore previous object + $pdf = $pdf->rollbackTransaction(); + + return $height; +} + + /** * Returns the name of the thirdparty * @@ -854,11 +903,20 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass $freetextheight=0; if ($line) // Free text { - $width=20000; $align='L'; // By default, ask a manual break: We use a large value 20000, to not have automatic wrap. This make user understand, he need to add CR on its text. - if (! empty($conf->global->MAIN_USE_AUTOWRAP_ON_FREETEXT)) { - $width=200; $align='C'; + //$line="eee
    \nfdsfsdf
    \nghfghg
    "; + if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) // by default + { + $width=20000; $align='L'; // By default, ask a manual break: We use a large value 20000, to not have automatic wrap. This make user understand, he need to add CR on its text. + if (! empty($conf->global->MAIN_USE_AUTOWRAP_ON_FREETEXT)) { + $width=200; $align='C'; + } + $freetextheight=$pdf->getStringHeight($width,$line); + } + else + { + $freetextheight=pdfGetHeightForHtmlContent($pdf,dol_htmlentitiesbr($line, 1)); // New method (works for HTML content) + //print '
    '.$freetextheight;exit; } - $freetextheight=$pdf->getStringHeight($width,$line); } $marginwithfooter=$marge_basse + $freetextheight + (! empty($line1)?3:0) + (! empty($line2)?3:0) + (! empty($line3)?3:0) + (! empty($line4)?3:0); @@ -867,7 +925,14 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass if ($line) // Free text { $pdf->SetXY($dims['lm'],-$posy); - $pdf->MultiCell(0, 3, $line, 0, $align, 0); + if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) // by default + { + $pdf->MultiCell(0, 3, $line, 0, $align, 0); + } + else + { + $pdf->writeHTMLCell($pdf->page_largeur - $pdf->margin_left - $pdf->margin_right, $freetextheight, $dims['lm'], $dims['hk']-$marginwithfooter, $line); + } $posy-=$freetextheight; } diff --git a/htdocs/includes/ckeditor/ckeditor/README.md b/htdocs/includes/ckeditor/ckeditor/README.md index d6b5e2af515..c5a55cd88f8 100644 --- a/htdocs/includes/ckeditor/ckeditor/README.md +++ b/htdocs/includes/ckeditor/ckeditor/README.md @@ -1,82 +1,39 @@ -CKEditor 4 - Releases -===================== +CKEditor 4 +========== -## Releases Code +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +http://ckeditor.com - See LICENSE.md for license information. -This repository contains the official release versions of [CKEditor](http://ckeditor.com). - -There are four versions for each release — `standard-all`, `basic`, `standard`, and `full`. -They differ in the number of plugins that are compiled into the main `ckeditor.js` file as well as the toolbar configuration. - -See the [comparison](http://ckeditor.com/presets) of the `basic`, `standard`, and `full` installation presets for more details. - -The `standard-all` build includes all official CKSource plugins with only those from the `standard` installation preset compiled into the `ckeditor.js` file and enabled in the configuration. - -All versions available in this repository were built using [CKBuilder](http://ckeditor.com/builder), so they are optimized and ready to be used in a production environment. +CKEditor is a text editor to be used inside web pages. It's not a replacement +for desktop text editors like Word or OpenOffice, but a component to be used as +part of web applications and websites. ## Documentation -Developer documentation for CKEditor is available online at: . +The full editor documentation is available online at the following address: +http://docs.ckeditor.com ## Installation -### Git clone +Installing CKEditor is an easy task. Just follow these simple steps: -To install one of the available releases, just clone this repository and switch to the respective branch (see next section): + 1. **Download** the latest version from the CKEditor website: + http://ckeditor.com. You should have already completed this step, but be + sure you have the very latest version. + 2. **Extract** (decompress) the downloaded file into the root of your website. - git clone -b git://github.com/ckeditor/ckeditor-releases.git - -### Git submodule - -If you are using git for your project and you want to integrate CKEditor, we recommend to add this repository as a -[submodule](http://git-scm.com/book/en/Git-Tools-Submodules). - - git submodule add -b git://github.com/ckeditor/ckeditor-releases.git - git commit -m "Added CKEditor submodule in directory." - -### Using Package Managers - -See the [Installing CKEditor with Package Managers](http://docs.ckeditor.com/#!/guide/dev_package_managers) article for more details about installing CKEditor with Bower and Composer. - -## Repository Structure - -### Branches - -This repository contains the following branches: - - - `master` and `latest` – the latest release of the `standard-all` preset (including betas). - - `stable` – the latest stable release of the `standard-all` preset (non-beta). - - `A.B.x` (e.g. `4.3.x`) – the latest release of the `standard-all` preset in the `A.B` branch. - - `(basic|standard|full)/stable` – the latest stable release tag point (non-beta). - - `(basic|standard|full)/latest` – the latest release tag point (including betas). - - `(basic|standard|full)/A.B.x` (e.g. `basic/4.0.x`) – the latest releases in the `A.B` branch. - -### Tags - -**Since version 4.3.3** this repository uses the following tag naming rules: - - - `x.y.z` – contains the `standard-all` editor build, e.g. `4.3.3`, `4.4.0` etc. - - `(basic|standard|full)/x.y.z` – contains the editor build with a given preset, e.g. `basic/4.3.3`. - -The version numbers follow the [Semantic Versioning 2.0.0](http://semver.org/) scheme. - -Up to version **4.3.2** the tags were released in the following form `x.y[.z]/(basic|standard|full)`. -For example: `4.0/basic`, `4.0.1/standard`. This convention was changed in CKEditor 4.3.3 to conform to the Semantic Versioning scheme. +**Note:** CKEditor is by default installed in the `ckeditor` folder. You can +place the files in whichever you want though. ## Checking Your Installation -The editor comes with a few sample pages that can be used to verify if the installation succeeded. Take a look at the `samples` directory. +The editor comes with a few sample pages that can be used to verify that +installation proceeded properly. Take a look at the `samples` directory. -To test your installation, just call the following page for your website: +To test your installation, just call the following page at your website: http:////samples/index.html For example: http://www.example.com/ckeditor/samples/index.html - -### License - -Licensed under the GPL, LGPL, and MPL licenses, at your choice. - -Please check the `LICENSE.md` file for more information about the license. \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/_source/CHANGES.md b/htdocs/includes/ckeditor/ckeditor/_source/CHANGES.md new file mode 100644 index 00000000000..a5bec2ba830 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/CHANGES.md @@ -0,0 +1,442 @@ +CKEditor 4 Changelog +==================== + +## CKEditor 4.3.3 + +Fixed Issues: + +* [#11500](http://dev.ckeditor.com/ticket/11500): [Webkit/Blink] Fixed: Selection lost when setting data in another inline editor. Additionally, [`selection.removeAllRanges()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-removeAllRanges) is now scoped to selection's [root](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-property-root). +* [#11104](http://dev.ckeditor.com/ticket/11104): [IE] Fixed: Various issues with scrolling and selection when focusing widgets. +* [#11487](http://dev.ckeditor.com/ticket/11487): Moving mouse over the [Enhanced Image](http://ckeditor.com/addon/image2) widget will no longer change the value returned by the [`editor.checkDirty()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-checkDirty) method. +* [#8673](http://dev.ckeditor.com/ticket/8673): [WebKit] Fixed: Cannot select and remove the [Page Break](http://ckeditor.com/addon/pagebreak). +* [#11413](http://dev.ckeditor.com/ticket/11413): Fixed: Incorrect [`editor.execCommand()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-execCommand) behavior. +* [#11438](http://dev.ckeditor.com/ticket/11438): Splitting table cells vertically is no longer changing table structure. +* [#8899](http://dev.ckeditor.com/ticket/8899): Fixed: Links in the [About CKEditor](http://ckeditor.com/addon/about) dialog window now open in a new browser window or tab. +* [#11490](http://dev.ckeditor.com/ticket/11490): Fixed: [Menu button](http://ckeditor.com/addon/menubutton) panel not showing in the source mode. +* [#11417](http://dev.ckeditor.com/ticket/11417): The [`widget.doubleclick`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-event-doubleclick) event is not canceled anymore after editing was triggered. +* [#11253](http://dev.ckeditor.com/ticket/11253): [IE] Fixed: Clipped upload button in the [Enhanced Image](http://ckeditor.com/addon/image2) dialog window. +* [#11359](http://dev.ckeditor.com/ticket/11359): Standardized the way anchors are discovered by the [Link](http://ckeditor.com/addon/link) plugin. +* [#11058](http://dev.ckeditor.com/ticket/11058): [IE8] Fixed: Error when deleting a table row. +* [#11508](http://dev.ckeditor.com/ticket/11508): Fixed: [`htmlDataProcessor`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlDataProcessor) discovering protected attributes within other attributes' values. +* [#11533](http://dev.ckeditor.com/ticket/11533): Widgets: Avoid recurring upcasts if the DOM structure was modified during an upcast. +* [#11400](http://dev.ckeditor.com/ticket/11400): Fixed: The [`domObject.removeAllListeners()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.domObject-method-removeAllListeners) method does not remove custom listeners completely. +* [#11493](http://dev.ckeditor.com/ticket/11493): Fixed: The [`selection.getRanges()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-getRanges) method does not override cached ranges when used with the `onlyEditables` argument. +* [#11390](http://dev.ckeditor.com/ticket/11390): [IE] All [XML](http://ckeditor.com/addon/xml) plugin [methods](http://docs.ckeditor.com/#!/api/CKEDITOR.xml) now work in IE10+. +* [#11542](http://dev.ckeditor.com/ticket/11542): [IE11] Fixed: Blurry toolbar icons when Right-to-Left UI language is set. +* [#11504](http://dev.ckeditor.com/ticket/11504): Fixed: When [`config.fullPage`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-fullPage) is set to `true`, entities are not encoded in editor output. +* [#11004](http://dev.ckeditor.com/ticket/11004): Integrated [Enhanced Image](http://ckeditor.com/addon/image2) dialog window with [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter). +* [#11439](http://dev.ckeditor.com/ticket/11439): Fixed: Properties get cloned in the Cell Properties dialog window if multiple cells are selected. + +## CKEditor 4.3.2 + +Fixed Issues: + +* [#11331](http://dev.ckeditor.com/ticket/11331): A menu button will have a changed label when selected instead of using the `aria-pressed` attribute. +* [#11177](http://dev.ckeditor.com/ticket/11177): Widget drag handler improvements: + * [#11176](http://dev.ckeditor.com/ticket/11176): Fixed: Initial position is not updated when the widget data object is empty. + * [#11001](http://dev.ckeditor.com/ticket/11001): Fixed: Multiple synchronous layout recalculations are caused by initial drag handler positioning causing performance issues. + * [#11161](http://dev.ckeditor.com/ticket/11161): Fixed: Drag handler is not repositioned in various situations. + * [#11281](http://dev.ckeditor.com/ticket/11281): Fixed: Drag handler and mask are duplicated after widget reinitialization. +* [#11207](http://dev.ckeditor.com/ticket/11207): [Firefox] Fixed: Misplaced [Enhanced Image](http://ckeditor.com/addon/image2) resizer in the inline editor. +* [#11102](http://dev.ckeditor.com/ticket/11102): `CKEDITOR.template` improvements: + * [#11102](http://dev.ckeditor.com/ticket/11102): Added newline character support. + * [#11216](http://dev.ckeditor.com/ticket/11216): Added "\\'" substring support. +* [#11121](http://dev.ckeditor.com/ticket/11121): [Firefox] Fixed: High Contrast mode is enabled when the editor is loaded in a hidden iframe. +* [#11350](http://dev.ckeditor.com/ticket/11350): The default value of [`config.contentsCss`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-contentsCss) is affected by [`CKEDITOR.getUrl()`](http://docs.ckeditor.com/#!/api/CKEDITOR-method-getUrl). +* [#11097](http://dev.ckeditor.com/ticket/11097): Improved the [Autogrow](http://ckeditor.com/addon/autogrow) plugin performance when dealing with very big tables. +* [#11290](http://dev.ckeditor.com/ticket/11290): Removed redundant code in the [Source Dialog](http://ckeditor.com/addon/sourcedialog) plugin. +* [#11133](http://dev.ckeditor.com/ticket/11133): [Page Break](http://ckeditor.com/addon/pagebreak) becomes editable if pasted. +* [#11126](http://dev.ckeditor.com/ticket/11126): Fixed: Native Undo executed once the bottom of the snapshot stack is reached. +* [#11131](http://dev.ckeditor.com/ticket/11131): [Div Editing Area](http://ckeditor.com/addon/divarea): Fixed: Error thrown when switching to source mode if the selection was in widget's nested editable. +* [#11139](http://dev.ckeditor.com/ticket/11139): [Div Editing Area](http://ckeditor.com/addon/divarea): Fixed: Elements Path is not cleared after switching to source mode. +* [#10778](http://dev.ckeditor.com/ticket/10778): Fixed a bug with range enlargement. The range no longer expands to visible whitespace. +* [#11146](http://dev.ckeditor.com/ticket/11146): [IE] Fixed: Preview window switches Internet Explorer to Quirks Mode. +* [#10762](http://dev.ckeditor.com/ticket/10762): [IE] Fixed: JavaScript code displayed in preview window's URL bar. +* [#11186](http://dev.ckeditor.com/ticket/11186): Introduced the [`widgets.repository.addUpcastCallback()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-addUpcastCallback) method that allows to block upcasting given element to a widget. +* [#11307](http://dev.ckeditor.com/ticket/11307): Fixed: Paste as Plain Text conflict with the [MooTools](http://mootools.net) library. +* [#11140](http://dev.ckeditor.com/ticket/11140): [IE11] Fixed: Anchors are not draggable. +* [#11379](http://dev.ckeditor.com/ticket/11379): Changed default contents `line-height` to unitless values to avoid huge text overlapping (like in [#9696](http://dev.ckeditor.com/ticket/9696)). +* [#10787](http://dev.ckeditor.com/ticket/10787): [Firefox] Fixed: Broken replacement of text while pasting into `div`-based editor. +* [#10884](http://dev.ckeditor.com/ticket/10884): Widgets integration with the [Show Blocks](http://ckeditor.com/addon/showblocks) plugin. +* [#11021](http://dev.ckeditor.com/ticket/11021): Fixed: An error thrown when selecting entire editable contents while fake selection is on. +* [#11086](http://dev.ckeditor.com/ticket/11086): [IE8] Re-enable inline widgets drag&drop in Internet Explorer 8. +* [#11372](http://dev.ckeditor.com/ticket/11372): Widgets: Special characters encoded twice in nested editables. +* [#10068](http://dev.ckeditor.com/ticket/10068): Fixed: Support for protocol-relative URLs. +* [#11283](http://dev.ckeditor.com/ticket/11283): [Enhanced Image](http://ckeditor.com/addon/image2): A `
    ` element with `text-align: center` and an image inside is not recognised correctly. +* [#11196](http://dev.ckeditor.com/ticket/11196): [Accessibility Instructions](http://ckeditor.com/addon/a11yhelp): Allowed additional keyboard button labels to be translated in the dialog window. + +## CKEditor 4.3.1 + +**Important Notes:** + +* To match the naming convention, the `language` button is now `Language` ([#11201](http://dev.ckeditor.com/ticket/11201)). +* [Enhanced Image](http://ckeditor.com/addon/image2) button, context menu, command, and icon names match those of the [Image](http://ckeditor.com/addon/image) plugin ([#11222](http://dev.ckeditor.com/ticket/11222)). + +Fixed Issues: + +* [#11244](http://dev.ckeditor.com/ticket/11244): Changed: The [`widget.repository.checkWidgets()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-checkWidgets) method now fires the [`widget.repository.checkWidgets`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-event-checkWidgets) event, so from CKEditor 4.3.1 it is preferred to use the method rather than fire the event. +* [#11171](http://dev.ckeditor.com/ticket/11171): Fixed: [`editor.insertElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertElement) and [`editor.insertText()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertText) methods do not call the [`widget.repository.checkWidgets()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-checkWidgets) method. +* [#11085](http://dev.ckeditor.com/ticket/11085): [IE8] Replaced preview generated by the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) widget with a placeholder. +* [#11044](http://dev.ckeditor.com/ticket/11044): Enhanced WAI-ARIA support for the [Language](http://ckeditor.com/addon/language) plugin drop-down menu. +* [#11075](http://dev.ckeditor.com/ticket/11075): With drop-down menu button focused, pressing the *Down Arrow* key will now open the menu and focus its first option. +* [#11165](http://dev.ckeditor.com/ticket/11165): Fixed: The [File Browser](http://ckeditor.com/addon/filebrowser) plugin cannot be removed from the editor. +* [#11159](http://dev.ckeditor.com/ticket/11159): [IE9-10] [Enhanced Image](http://ckeditor.com/addon/image2): Fixed buggy discovery of image dimensions. +* [#11101](http://dev.ckeditor.com/ticket/11101): Drop-down lists no longer break when given double quotes. +* [#11077](http://dev.ckeditor.com/ticket/11077): [Enhanced Image](http://ckeditor.com/addon/image2): Empty undo step recorded when resizing the image. +* [#10853](http://dev.ckeditor.com/ticket/10853): [Enhanced Image](http://ckeditor.com/addon/image2): Widget has paragraph wrapper when de-captioning unaligned image. +* [#11198](http://dev.ckeditor.com/ticket/11198): Widgets: Drag handler is not fully visible when an inline widget is in a heading. +* [#11132](http://dev.ckeditor.com/ticket/11132): [Firefox] Fixed: Caret is lost after drag and drop of an inline widget. +* [#11182](http://dev.ckeditor.com/ticket/11182): [IE10-11] Fixed: Editor crashes (IE11) or works with minor issues (IE10) if a page is loaded in Quirks Mode. See [`env.quirks`](http://docs.ckeditor.com/#!/api/CKEDITOR.env-property-quirks) for more details. +* [#11204](http://dev.ckeditor.com/ticket/11204): Added `figure` and `figcaption` styles to the `contents.css` file so [Enhanced Image](http://ckeditor.com/addon/image2) looks nicer. +* [#11202](http://dev.ckeditor.com/ticket/11202): Fixed: No newline in [BBCode](http://ckeditor.com/addon/bbcode) mode. +* [#10890](http://dev.ckeditor.com/ticket/10890): Fixed: Error thrown when pressing the *Delete* key in a list item. +* [#10055](http://dev.ckeditor.com/ticket/10055): [IE8-10] Fixed: *Delete* pressed on a selected image causes the browser to go back. +* [#11183](http://dev.ckeditor.com/ticket/11183): Fixed: Inserting a horizontal rule or a table in multiple row selection causes a browser crash. Additionally, the [`editor.insertElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertElement) method does not insert the element into every range of a selection any more. +* [#11042](http://dev.ckeditor.com/ticket/11042): Fixed: Selection made on an element containing a non-editable element was not auto faked. +* [#11125](http://dev.ckeditor.com/ticket/11125): Fixed: Keyboard navigation through menu and drop-down items will now cycle. +* [#11011](http://dev.ckeditor.com/ticket/11011): Fixed: The [`editor.applyStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-applyStyle) method removes attributes from nested elements. +* [#11179](http://dev.ckeditor.com/ticket/11179): Fixed: [`editor.destroy()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-destroy) does not cleanup content generated by the [Table Resize](http://ckeditor.com/addon/tableresize) plugin for inline editors. +* [#11237](http://dev.ckeditor.com/ticket/11237): Fixed: Table border attribute value is deleted when pasting content from Microsoft Word. +* [#11250](http://dev.ckeditor.com/ticket/11250): Fixed: HTML entities inside the ` + * ... + * CKEDITOR.replace( 'myfield' ); + * + * var textarea = document.body.appendChild( document.createElement( 'textarea' ) ); + * CKEDITOR.replace( textarea ); + * + * @param {Object/String} element The DOM element (textarea), its ID, or name. + * @param {Object} [config] The specific configuration to apply to this + * editor instance. Configuration set here will override the global CKEditor settings + * (see {@link CKEDITOR.config}). + * @returns {CKEDITOR.editor} The editor instance created. + */ + CKEDITOR.replace = function( element, config ) { + return createInstance( element, config, null, CKEDITOR.ELEMENT_MODE_REPLACE ); + }; + + /** + * Creates a new editor instance at the end of a specific DOM element. + * + *
    + * ... + * CKEDITOR.appendTo( 'editorSpace' ); + * + * @param {Object/String} element The DOM element, its ID, or name. + * @param {Object} [config] The specific configuration to apply to this + * editor instance. Configuration set here will override the global CKEditor settings + * (see {@link CKEDITOR.config}). + * @param {String} [data] Since 3.3. Initial value for the instance. + * @returns {CKEDITOR.editor} The editor instance created. + */ + CKEDITOR.appendTo = function( element, config, data ) + { + return createInstance( element, config, data, CKEDITOR.ELEMENT_MODE_APPENDTO ); + }; + + /** + * Replaces all ` + data = protectElements( data, protectTextareaRegex ); + + // Before anything, we must protect the URL attributes as the + // browser may changing them when setting the innerHTML later in + // the code. + data = protectAttributes( data ); + + // Protect elements than can't be set inside a DIV. E.g. IE removes + // style tags from innerHTML. (#3710) + data = protectElements( data, protectElementsRegex ); + + // Certain elements has problem to go through DOM operation, protect + // them by prefixing 'cke' namespace. (#3591) + data = protectElementsNames( data ); + + // All none-IE browsers ignore self-closed custom elements, + // protecting them into open-close. (#3591) + data = protectSelfClosingElements( data ); + + // Compensate one leading line break after
     open as browsers
    +			// eat it up. (#5789)
    +			data = protectPreFormatted( data );
    +
    +			var fixBin = evtData.context || editor.editable().getName(),
    +				isPre;
    +
    +			// Old IEs loose formats when load html into 
    .
    +			if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 && fixBin == 'pre' ) {
    +				fixBin = 'div';
    +				data = '
    ' + data + '
    '; + isPre = 1; + } + + // Call the browser to help us fixing a possibly invalid HTML + // structure. + var el = editor.document.createElement( fixBin ); + // Add fake character to workaround IE comments bug. (#3801) + el.setHtml( 'a' + data ); + data = el.getHtml().substr( 1 ); + + // Restore shortly protected attribute names. + data = data.replace( new RegExp( ' data-cke-' + CKEDITOR.rnd + '-', 'ig' ), ' ' ); + + isPre && ( data = data.replace( /^
    |<\/pre>$/gi, '' ) );
    +
    +			// Unprotect "some" of the protected elements at this point.
    +			data = unprotectElementNames( data );
    +
    +			data = unprotectElements( data );
    +
    +			// Restore the comments that have been protected, in this way they
    +			// can be properly filtered.
    +			data = unprotectRealComments( data );
    +
    +			// Now use our parser to make further fixes to the structure, as
    +			// well as apply the filter.
    +			evtData.dataValue = CKEDITOR.htmlParser.fragment.fromHtml(
    +				data, evtData.context, evtData.fixForBody === false ? false : getFixBodyTag( evtData.enterMode, editor.config.autoParagraph ) );
    +		}, null, null, 5 );
    +
    +		// Filter incoming "data".
    +		// Add element filter before htmlDataProcessor.dataFilter when purifying input data to correct html.
    +		editor.on( 'toHtml', function( evt ) {
    +			if ( evt.data.filter.applyTo( evt.data.dataValue, true, evt.data.dontFilter, evt.data.enterMode ) )
    +				editor.fire( 'dataFiltered' );
    +		}, null, null, 6 );
    +
    +		editor.on( 'toHtml', function( evt ) {
    +			evt.data.dataValue.filterChildren( that.dataFilter, true );
    +		}, null, null, 10 );
    +
    +		editor.on( 'toHtml', function( evt ) {
    +			var evtData = evt.data,
    +				data = evtData.dataValue,
    +				writer = new CKEDITOR.htmlParser.basicWriter();
    +
    +			data.writeChildrenHtml( writer );
    +			data = writer.getHtml( true );
    +
    +			// Protect the real comments again.
    +			evtData.dataValue = protectRealComments( data );
    +		}, null, null, 15 );
    +
    +
    +		editor.on( 'toDataFormat', function( evt ) {
    +			var data = evt.data.dataValue;
    +
    +			// #10854 - we need to strip leading blockless 
    which FF adds + // automatically when editable contains only non-editable content. + // We do that for every browser (so it's a constant behavior) and + // not in BR mode, in which chance of valid leading blockless
    is higher. + if ( evt.data.enterMode != CKEDITOR.ENTER_BR ) + data = data.replace( /^
    /i, '' ); + + evt.data.dataValue = CKEDITOR.htmlParser.fragment.fromHtml( + data, evt.data.context, getFixBodyTag( evt.data.enterMode, editor.config.autoParagraph ) ); + }, null, null, 5 ); + + editor.on( 'toDataFormat', function( evt ) { + evt.data.dataValue.filterChildren( that.htmlFilter, true ); + }, null, null, 10 ); + + // Transform outcoming "data". + // Add element filter after htmlDataProcessor.htmlFilter when preparing output data HTML. + editor.on( 'toDataFormat', function( evt ) { + evt.data.filter.applyTo( evt.data.dataValue, false, true ); + }, null, null, 11 ); + + editor.on( 'toDataFormat', function( evt ) { + var data = evt.data.dataValue, + writer = that.writer; + + writer.reset(); + data.writeChildrenHtml( writer ); + data = writer.getHtml( true ); + + // Restore those non-HTML protected source. (#4475,#4880) + data = unprotectRealComments( data ); + data = unprotectSource( data, editor ); + + evt.data.dataValue = data; + }, null, null, 15 ); + }; + + CKEDITOR.htmlDataProcessor.prototype = { + /** + * Processes the input (potentially malformed) HTML to a purified form which + * is suitable for using in the WYSIWYG editable. + * + * This method fires the {@link CKEDITOR.editor#toHtml} event which makes it possible + * to hook into the process at various stages. + * + * **Note:** Since CKEditor 4.3 the signature of this method changed and all options + * are now grouped in one `options` object. Previously `context`, `fixForBody` and `dontFilter` + * were passed separately. + * + * @param {String} data The raw data. + * @param {Object} [options] The options object. + * @param {String} [options.context] The tag name of a context element within which + * the input is to be processed, default to be the editable element. + * If `null` is passed, then data will be parsed without context (as children of {@link CKEDITOR.htmlParser.fragment}). + * See {@link CKEDITOR.htmlParser.fragment#fromHtml} for more details. + * @param {Boolean} [options.fixForBody=true] Whether to trigger the auto paragraph for non-block contents. + * @param {CKEDITOR.filter} [options.filter] When specified, instead of using the {@link CKEDITOR.editor#filter main filter}, + * passed instance will be used to filter the content. + * @param {Boolean} [options.dontFilter] Do not filter data with {@link CKEDITOR.filter} (note: transformations + * will be still applied). + * @param {Number} [options.enterMode] When specified it will be used instead of the {@link CKEDITOR.editor#enterMode main enterMode}. + * @returns {String} + */ + toHtml: function( data, options, fixForBody, dontFilter ) { + var editor = this.editor, + context, filter, enterMode; + + // Typeof null == 'object', so check truthiness of options too. + if ( options && typeof options == 'object' ) { + context = options.context; + fixForBody = options.fixForBody; + dontFilter = options.dontFilter; + filter = options.filter; + enterMode = options.enterMode; + } + // Backward compatibility. Since CKEDITOR 4.3 every option was a separate argument. + else + context = options; + + // Fall back to the editable as context if not specified. + if ( !context && context !== null ) + context = editor.editable().getName(); + + return editor.fire( 'toHtml', { + dataValue: data, + context: context, + fixForBody: fixForBody, + dontFilter: dontFilter, + filter: filter || editor.filter, + enterMode: enterMode || editor.enterMode + } ).dataValue; + }, + + /** + * See {@link CKEDITOR.dataProcessor#toDataFormat}. + * + * This method fires the {@link CKEDITOR.editor#toDataFormat} event which makes it possible + * to hook into the process at various steps. + * + * @param {String} html + * @param {Object} [options] The options object. + * @param {String} [options.context] The tag name of a context element within which + * the input is to be processed, default to be the editable element. + * @param {CKEDITOR.filter} [options.filter] When specified, instead of using the {@link CKEDITOR.editor#filter main filter}, + * passed instance will be used to apply content transformations to the content. + * @param {Number} [options.enterMode] When specified it will be used instead of the {@link CKEDITOR.editor#enterMode main enterMode}. + * @returns {String} + */ + toDataFormat: function( html, options ) { + var context, filter, enterMode; + + // Do not shorten this to `options && options.xxx`, because + // falsy `options` will be passed instead of undefined. + if ( options ) { + context = options.context; + filter = options.filter; + enterMode = options.enterMode; + } + + // Fall back to the editable as context if not specified. + if ( !context && context !== null ) + context = this.editor.editable().getName(); + + return this.editor.fire( 'toDataFormat', { + dataValue: html, + filter: filter || this.editor.filter, + context: context, + enterMode: enterMode || this.editor.enterMode + } ).dataValue; + } + }; + + // Produce a set of filtering rules that handles bogus and filler node at the + // end of block/pseudo block, in the following consequence: + // 1. elements: - this filter removes any bogus node, then check + // if it's an empty block that requires a filler. + // 2. elements:
    - After cleaned with bogus, this filter checks the real + // line-break BR to compensate a filler after it. + // + // Terms definitions: + // filler: An element that's either
    or &NBSP; at the end of block that established line height. + // bogus: Whenever a filler is proceeded with inline content, it becomes a bogus which is subjected to be removed. + // + // Various forms of the filler: + // In output HTML: Filler should be consistently &NBSP;
    at the end of block is always considered as bogus. + // In Wysiwyg HTML: Browser dependent - see env.needsBrFiller. Either BR for when needsBrFiller is true, or &NBSP; otherwise. + //
    is NEVER considered as bogus when needsBrFiller is true. + function createBogusAndFillerRules( editor, type ) { + function createFiller( isOutput ) { + return isOutput || CKEDITOR.env.needsNbspFiller ? + new CKEDITOR.htmlParser.text( '\xa0' ) : + new CKEDITOR.htmlParser.element( 'br', { 'data-cke-bogus': 1 } ); + } + + // This text block filter, remove any bogus and create the filler on demand. + function blockFilter( isOutput, fillEmptyBlock ) { + + return function( block ) { + + // DO NOT apply the filer if it's a fragment node. + if ( block.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT ) + return; + + cleanBogus( block ); + + // [Opera] it's mandatory for the filler to present inside of empty block when in WYSIWYG. + if ( ( ( CKEDITOR.env.opera && !isOutput ) || + ( typeof fillEmptyBlock == 'function' ? fillEmptyBlock( block ) !== false : fillEmptyBlock ) ) && + isEmptyBlockNeedFiller( block ) ) + { + block.add( createFiller( isOutput ) ); + } + }; + } + + // Append a filler right after the last line-break BR, found at the end of block. + function brFilter( isOutput ) { + return function( br ) { + + // DO NOT apply the filer if parent's a fragment node. + if ( br.parent.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT ) + return; + + var attrs = br.attributes; + // Dismiss BRs that are either bogus or eol marker. + if ( 'data-cke-bogus' in attrs || + 'data-cke-eol' in attrs ) { + delete attrs [ 'data-cke-bogus' ]; + return; + } + + // Judge the tail line-break BR, and to insert bogus after it. + var next = getNext( br ), previous = getPrevious( br ); + + if ( !next && isBlockBoundary( br.parent ) ) + append( br.parent, createFiller( isOutput ) ); + else if ( isBlockBoundary( next ) && previous && !isBlockBoundary( previous ) ) + createFiller( isOutput ).insertBefore( next ); + }; + } + + // Determinate whether this node is potentially a bogus node. + function maybeBogus( node, atBlockEnd ) { + + // BR that's not from IE<11 DOM, except for a EOL marker. + if ( !( isOutput && !CKEDITOR.env.needsBrFiller ) && + node.type == CKEDITOR.NODE_ELEMENT && node.name == 'br' && + !node.attributes[ 'data-cke-eol' ] ) + return true; + + var match; + // NBSP, possibly. + if ( node.type == CKEDITOR.NODE_TEXT && + ( match = node.value.match( tailNbspRegex ) ) ) + { + // We need to separate tail NBSP out of a text node, for later removal. + if ( match.index ) { + ( new CKEDITOR.htmlParser.text( node.value.substring( 0, match.index ) ) ).insertBefore( node ); + node.value = match[ 0 ]; + } + + // From IE<11 DOM, at the end of a text block, or before block boundary. + if ( !CKEDITOR.env.needsBrFiller && isOutput && ( !atBlockEnd || node.parent.name in textBlockTags ) ) + return true; + + // From the output. + if ( !isOutput ) { + var previous = node.previous; + + // Following a line-break at the end of block. + if ( previous && previous.name == 'br' ) + return true; + + // Or a single NBSP between two blocks. + if ( !previous || isBlockBoundary( previous ) ) + return true; + } + } + + return false; + } + + // Removes all bogus inside of this block, and to convert fillers into the proper form. + function cleanBogus( block ) { + var bogus = []; + var last = getLast( block ), node, previous; + if ( last ) { + + // Check for bogus at the end of this block. + // e.g.

    foo

    + maybeBogus( last, 1 ) && bogus.push( last ); + + while ( last ) { + + // Check for bogus at the end of any pseudo block contained. + if ( isBlockBoundary( last ) && + ( node = getPrevious( last ) ) && + maybeBogus( node ) ) + { + // Bogus must have inline proceeding, instead single BR between two blocks, + // is considered as filler, e.g.


    + if ( ( previous = getPrevious( node ) ) && !isBlockBoundary( previous ) ) + bogus.push( node ); + // Convert the filler into appropriate form. + else { + createFiller( isOutput ).insertAfter( node ); + node.remove(); + } + } + + last = last.previous; + } + } + + // Now remove all bogus collected from above. + for ( var i = 0 ; i < bogus.length ; i++ ) + bogus[ i ].remove(); + } + + // Judge whether it's an empty block that requires a filler node. + function isEmptyBlockNeedFiller( block ) { + + // DO NOT fill empty editable in IE<11. + if ( !isOutput && !CKEDITOR.env.needsBrFiller && block.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT ) + return false; + + // 1. For IE version >=8, empty blocks are displayed correctly themself in wysiwiyg; + // 2. For the rest, at least table cell and list item need no filler space. (#6248) + if ( !isOutput && !CKEDITOR.env.needsBrFiller && + ( document.documentMode > 7 || + block.name in CKEDITOR.dtd.tr || + block.name in CKEDITOR.dtd.$listItem ) ) { + return false; + } + + var last = getLast( block ); + return !last || block.name == 'form' && last.name == 'input' ; + } + + var rules = { elements: {} }; + var isOutput = type == 'html'; + + // Build the list of text blocks. + var textBlockTags = CKEDITOR.tools.extend( {}, blockLikeTags ); + for ( var i in textBlockTags ) { + if ( !( '#' in dtd[ i ] ) ) + delete textBlockTags[ i ]; + } + + for ( i in textBlockTags ) + rules.elements[ i ] = blockFilter( isOutput, editor.config.fillEmptyBlocks !== false ); + + // Editable element is to be checked separately. + rules.root = blockFilter( isOutput ); + rules.elements.br = brFilter( isOutput ); + return rules; + } + + function getFixBodyTag( enterMode, autoParagraph ) { + return ( enterMode != CKEDITOR.ENTER_BR && autoParagraph !== false ) ? enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' : false; + } + + // Regex to scan for   at the end of blocks, which are actually placeholders. + // Safari transforms the   to \xa0. (#4172) + var tailNbspRegex = /(?: |\xa0)$/; + + var protectedSourceMarker = '{cke_protected}'; + + function getLast( node ) { + var last = node.children[ node.children.length - 1 ]; + while ( last && isEmpty( last ) ) + last = last.previous; + return last; + } + + function getNext( node ) { + var next = node.next; + while ( next && isEmpty( next ) ) + next = next.next; + return next; + } + + function getPrevious( node ) { + var previous = node.previous; + while ( previous && isEmpty( previous ) ) + previous = previous.previous; + return previous; + } + + // Judge whether the node is an ghost node to be ignored, when traversing. + function isEmpty( node ) { + return node.type == CKEDITOR.NODE_TEXT && + !CKEDITOR.tools.trim( node.value ) || + node.type == CKEDITOR.NODE_ELEMENT && + node.attributes[ 'data-cke-bookmark' ]; + } + + // Judge whether the node is a block-like element. + function isBlockBoundary( node ) { + return node && + ( node.type == CKEDITOR.NODE_ELEMENT && node.name in blockLikeTags || + node.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT ); + } + + function append( parent, node ) { + var last = parent.children[ parent.children.length -1 ]; + parent.children.push( node ); + node.parent = parent; + if ( last ) { + last.next = node; + node.previous = last; + } + } + + function getNodeIndex( node ) { + return node.parent ? node.getIndex() : -1; + } + + var dtd = CKEDITOR.dtd, + // Define orders of table elements. + tableOrder = [ 'caption', 'colgroup', 'col', 'thead', 'tfoot', 'tbody' ], + // List of all block elements. + blockLikeTags = CKEDITOR.tools.extend( {}, dtd.$blockLimit, dtd.$block ); + + // + // DATA filter rules ------------------------------------------------------ + // + + var defaultDataFilterRulesEditableOnly = { + elements: { + input: protectReadOnly, + textarea: protectReadOnly + } + }; + + // These rules will also be applied to non-editable content. + var defaultDataFilterRulesForAll = { + attributeNames: [ + // Event attributes (onXYZ) must not be directly set. They can become + // active in the editing area (IE|WebKit). + [ ( /^on/ ), 'data-cke-pa-on' ], + + // Don't let some old expando enter editor. Concerns only IE8, + // but for consistency remove on all browsers. + [ ( /^data-cke-expando$/ ), '' ] + ] + }; + + // Disable form elements editing mode provided by some browsers. (#5746) + function protectReadOnly( element ) { + var attrs = element.attributes; + + // We should flag that the element was locked by our code so + // it'll be editable by the editor functions (#6046). + if ( attrs.contenteditable != 'false' ) + attrs[ 'data-cke-editable' ] = attrs.contenteditable ? 'true' : 1; + + attrs.contenteditable = 'false'; + } + + // + // HTML filter rules ------------------------------------------------------ + // + + var defaultHtmlFilterRulesEditableOnly = { + elements: { + embed: function( element ) { + var parent = element.parent; + + // If the is child of a , copy the width + // and height attributes from it. + if ( parent && parent.name == 'object' ) { + var parentWidth = parent.attributes.width, + parentHeight = parent.attributes.height; + if ( parentWidth ) + element.attributes.width = parentWidth; + if ( parentHeight ) + element.attributes.height = parentHeight; + } + }, + + // Remove empty link but not empty anchor. (#3829) + a: function( element ) { + if ( !( element.children.length || element.attributes.name || element.attributes[ 'data-cke-saved-name' ] ) ) + return false; + } + } + }; + + // These rules will also be applied to non-editable content. + var defaultHtmlFilterRulesForAll = { + elementNames: [ + // Remove the "cke:" namespace prefix. + [ ( /^cke:/ ), '' ], + + // Ignore tags. + [ ( /^\?xml:namespace$/ ), '' ] + ], + + attributeNames: [ + // Attributes saved for changes and protected attributes. + [ ( /^data-cke-(saved|pa)-/ ), '' ], + + // All "data-cke-" attributes are to be ignored. + [ ( /^data-cke-.*/ ), '' ], + + [ 'hidefocus', '' ] + ], + + elements: { + $: function( element ) { + var attribs = element.attributes; + + if ( attribs ) { + // Elements marked as temporary are to be ignored. + if ( attribs[ 'data-cke-temp' ] ) + return false; + + // Remove duplicated attributes - #3789. + var attributeNames = [ 'name', 'href', 'src' ], + savedAttributeName; + for ( var i = 0; i < attributeNames.length; i++ ) { + savedAttributeName = 'data-cke-saved-' + attributeNames[ i ]; + savedAttributeName in attribs && ( delete attribs[ attributeNames[ i ] ] ); + } + } + + return element; + }, + + // The contents of table should be in correct order (#4809). + table: function( element ) { + // Clone the array as it would become empty during the sort call. + var children = element.children.slice( 0 ); + children.sort( function( node1, node2 ) { + var index1, index2; + + // Compare in the predefined order. + if ( node1.type == CKEDITOR.NODE_ELEMENT && + node2.type == node1.type ) { + index1 = CKEDITOR.tools.indexOf( tableOrder, node1.name ); + index2 = CKEDITOR.tools.indexOf( tableOrder, node2.name ); + } + + // Make sure the sort is stable, if no order can be established above. + if ( !( index1 > -1 && index2 > -1 && index1 != index2 ) ) { + index1 = getNodeIndex( node1 ); + index2 = getNodeIndex( node2 ); + } + + return index1 > index2 ? 1 : -1; + } ); + }, + + // Restore param elements into self-closing. + param: function( param ) { + param.children = []; + param.isEmpty = true; + return param; + }, + + // Remove dummy span in webkit. + span: function( element ) { + if ( element.attributes[ 'class' ] == 'Apple-style-span' ) + delete element.name; + }, + + html: function( element ) { + delete element.attributes.contenteditable; + delete element.attributes[ 'class' ]; + }, + + body: function( element ) { + delete element.attributes.spellcheck; + delete element.attributes.contenteditable; + }, + + style: function( element ) { + var child = element.children[ 0 ]; + if ( child && child.value ) + child.value = CKEDITOR.tools.trim( child.value ); + + if ( !element.attributes.type ) + element.attributes.type = 'text/css'; + }, + + title: function( element ) { + var titleText = element.children[ 0 ]; + + // Append text-node to title tag if not present (i.e. non-IEs) (#9882). + !titleText && append( element, titleText = new CKEDITOR.htmlParser.text() ); + + // Transfer data-saved title to title tag. + titleText.value = element.attributes[ 'data-cke-title' ] || ''; + }, + + input: unprotectReadyOnly, + textarea: unprotectReadyOnly + }, + + attributes: { + 'class': function( value, element ) { + // Remove all class names starting with "cke_". + return CKEDITOR.tools.ltrim( value.replace( /(?:^|\s+)cke_[^\s]*/g, '' ) ) || false; + } + } + }; + + if ( CKEDITOR.env.ie ) { + // IE outputs style attribute in capital letters. We should convert + // them back to lower case, while not hurting the values (#5930) + defaultHtmlFilterRulesForAll.attributes.style = function( value, element ) { + return value.replace( /(^|;)([^\:]+)/g, function( match ) { + return match.toLowerCase(); + } ); + }; + } + + // Disable form elements editing mode provided by some browsers. (#5746) + function unprotectReadyOnly( element ) { + var attrs = element.attributes; + switch ( attrs[ 'data-cke-editable' ] ) { + case 'true': + attrs.contenteditable = 'true'; + break; + case '1': + delete attrs.contenteditable; + break; + } + } + + // + // Preprocessor filters --------------------------------------------------- + // + + var protectElementRegex = /<(a|area|img|input|source)\b([^>]*)>/gi, + // Be greedy while looking for protected attributes. This will let us avoid an unfortunate + // situation when "nested attributes", which may appear valid, are also protected. + // I.e. if we consider the following HTML: + // + // + // + // then the "non-greedy match" returns: + // + // 'href' => '"X"' // It's wrong! Href is not an attribute of . + // + // while greedy match returns: + // + // 'data-x' => '<a href="X"' + // + // which, can be easily filtered out (#11508). + protectAttributeRegex = /([\w-]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi, + protectAttributeNameRegex = /^(href|src|name)$/i; + + // Note: we use lazy star '*?' to prevent eating everything up to the last occurrence of or . + var protectElementsRegex = /(?:])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi, + protectTextareaRegex = /(])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi, + encodedElementsRegex = /([^<]*)<\/cke:encoded>/gi; + + var protectElementNamesRegex = /(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi, + unprotectElementNamesRegex = /(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi; + + var protectSelfClosingRegex = /]*?)\/?>(?!\s*<\/cke:\1)/gi; + + function protectAttributes( html ) { + return html.replace( protectElementRegex, function( element, tag, attributes ) { + return '<' + tag + attributes.replace( protectAttributeRegex, function( fullAttr, attrName ) { + // Avoid corrupting the inline event attributes (#7243). + // We should not rewrite the existed protected attributes, e.g. clipboard content from editor. (#5218) + if ( protectAttributeNameRegex.test( attrName ) && attributes.indexOf( 'data-cke-saved-' + attrName ) == -1 ) + return ' data-cke-saved-' + fullAttr + ' data-cke-' + CKEDITOR.rnd + '-' + fullAttr; + + return fullAttr; + } ) + '>'; + } ); + } + + function protectElements( html, regex ) { + return html.replace( regex, function( match, tag, content ) { + // Encode < and > in textarea because this won't be done by a browser, since + // textarea will be protected during passing data through fix bin. + if ( match.indexOf( '/g, '>' ) + ''; + + return '' + encodeURIComponent( match ) + ''; + } ); + } + + function unprotectElements( html ) { + return html.replace( encodedElementsRegex, function( match, encoded ) { + return decodeURIComponent( encoded ); + } ); + } + + function protectElementsNames( html ) { + return html.replace( protectElementNamesRegex, '$1cke:$2' ); + } + + function unprotectElementNames( html ) { + return html.replace( unprotectElementNamesRegex, '$1$2' ); + } + + function protectSelfClosingElements( html ) { + return html.replace( protectSelfClosingRegex, '' ); + } + + function protectPreFormatted( html ) { + return CKEDITOR.env.opera ? html : html.replace( /(]*>)(\r\n|\n)/g, '$1$2$2' ); + } + + function protectRealComments( html ) { + return html.replace( //g, function( match ) { + return ''; + } ); + } + + function unprotectRealComments( html ) { + return html.replace( //g, function( match, data ) { + return decodeURIComponent( data ); + } ); + } + + function unprotectSource( html, editor ) { + var store = editor._.dataStore; + + return html.replace( //g, function( match, data ) { + return decodeURIComponent( data ); + } ).replace( /\{cke_protected_(\d+)\}/g, function( match, id ) { + return store && store[ id ] || ''; + } ); + } + + function protectSource( data, editor ) { + var protectedHtml = [], + protectRegexes = editor.config.protectedSource, + store = editor._.dataStore || ( editor._.dataStore = { id: 1 } ), + tempRegex = /<\!--\{cke_temp(comment)?\}(\d*?)-->/g; + + var regexes = [ + // Script tags will also be forced to be protected, otherwise + // IE will execute them. + ( //gi ), + + //
    '; +print '
    '; print $langs->trans("Ref").''; print '
    '.$langs->trans("Description").''.$langs->trans("Description").''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $doleditor=new DolEditor('description',$object->description,'',200,'dolibarr_notes','',false,true,$conf->fckeditor->enabled,ROWS_6,50); @@ -156,9 +160,9 @@ print '
    '.$langs->trans("Color").''.$langs->trans("Color").''; -print $formother->select_color($color, 'color'); +print $formother->select_color($object->color, 'color'); print '
    '.$langs->trans("Ref").''; - print $form->showrefnav($member,'id'); + print $form->showrefnav($member,'id','','1','rowid','ref','','&type=3'); print '
    '; print $langs->trans("FreeLegalTextOnOrders").' ('.$langs->trans("AddCRIfTooLong").')
    '; -print ''; +if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) +{ + print ''; +} +else +{ + include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $doleditor=new DolEditor('COMMANDE_FREE_TEXT', $conf->global->COMMANDE_FREE_TEXT,'',80,'dolibarr_details'); + print $doleditor->Create(); +} print '
    '; print ''; print "
    ' + + '' + + '' + + '' + + '' + + '
    ' + + '' + + '', lang.auto, '
    ' + + '' + + '' ); + + // Render the color boxes. + for ( var i = 0; i < colors.length; i++ ) { + if ( ( i % 8 ) === 0 ) + output.push( '' ); + + var parts = colors[ i ].split( '/' ), + colorName = parts[ 0 ], + colorCode = parts[ 1 ] || colorName; + + // The data can be only a color code (without #) or colorName + color code + // If only a color code is provided, then the colorName is the color with the hash + // Convert the color from RGB to RRGGBB for better compatibility with IE and . See #5676 + if ( !parts[ 1 ] ) + colorName = '#' + colorName.replace( /^(.)(.)(.)$/, '$1$1$2$2$3$3' ); + + var colorLabel = editor.lang.colorbutton.colors[ colorCode ] || colorCode; + output.push( '' ); + } + + // Render the "More Colors" button. + if ( editor.plugins.colordialog && config.colorButton_enableMore === undefined || config.colorButton_enableMore ) { + output.push( '' + + '' + + '' ); // tr is later in the code. + } + + output.push( '
    ' + + '' + + '' + + '' + + '
    ' + + '', lang.more, '' + + '
    ' ); + + return output.join( '' ); + } + + function isUnstylable( ele ) { + return ( ele.getAttribute( 'contentEditable' ) == 'false' ) || ele.getAttribute( 'data-nostyle' ); + } + } +} ); + +/** + * Whether to enable the **More Colors*** button in the color selectors. + * + * config.colorButton_enableMore = false; + * + * @cfg {Boolean} [colorButton_enableMore=true] + * @member CKEDITOR.config + */ + +/** + * Defines the colors to be displayed in the color selectors. This is a string + * containing hexadecimal notation for HTML colors, without the `'#'` prefix. + * + * **Since 3.3:** A color name may optionally be defined by prefixing the entries with + * a name and the slash character. For example, `'FontColor1/FF9900'` will be + * displayed as the color `#FF9900` in the selector, but will be output as `'FontColor1'`. + * + * // Brazil colors only. + * config.colorButton_colors = '00923E,F8C100,28166F'; + * + * config.colorButton_colors = 'FontColor1/FF9900,FontColor2/0066CC,FontColor3/F00'; + * + * @cfg {String} [colorButton_colors=see source] + * @member CKEDITOR.config + */ +CKEDITOR.config.colorButton_colors = '000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,' + + 'B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,' + + 'F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,' + + 'FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,' + + 'FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF'; + +/** + * Stores the style definition that applies the text foreground color. + * + * // This is actually the default value. + * config.colorButton_foreStyle = { + * element: 'span', + * styles: { color: '#(color)' } + * }; + * + * @cfg [colorButton_foreStyle=see source] + * @member CKEDITOR.config + */ +CKEDITOR.config.colorButton_foreStyle = { + element: 'span', + styles: { 'color': '#(color)' }, + overrides: [ { + element: 'font', attributes: { 'color': null } + } ] +}; + +/** + * Stores the style definition that applies the text background color. + * + * // This is actually the default value. + * config.colorButton_backStyle = { + * element: 'span', + * styles: { 'background-color': '#(color)' } + * }; + * + * @cfg [colorButton_backStyle=see source] + * @member CKEDITOR.config + */ +CKEDITOR.config.colorButton_backStyle = { + element: 'span', + styles: { 'background-color': '#(color)' } +}; diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js new file mode 100644 index 00000000000..f719cf421c5 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js @@ -0,0 +1,338 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'colordialog', function( editor ) { + // Define some shorthands. + var $el = CKEDITOR.dom.element, + $doc = CKEDITOR.document, + lang = editor.lang.colordialog; + + // Reference the dialog. + var dialog; + + var spacer = { + type: 'html', + html: ' ' + }; + + var selected; + + function clearSelected() { + $doc.getById( selHiColorId ).removeStyle( 'background-color' ); + dialog.getContentElement( 'picker', 'selectedColor' ).setValue( '' ); + selected && selected.removeAttribute( 'aria-selected' ); + selected = null; + } + + function updateSelected( evt ) { + var target = evt.data.getTarget(), + color; + + if ( target.getName() == 'td' && ( color = target.getChild( 0 ).getHtml() ) ) { + selected = target; + selected.setAttribute( 'aria-selected', true ); + dialog.getContentElement( 'picker', 'selectedColor' ).setValue( color ); + } + } + + // Basing black-white decision off of luma scheme using the Rec. 709 version + function whiteOrBlack( color ) { + color = color.replace( /^#/, '' ); + for ( var i = 0, rgb = []; i <= 2; i++ ) + rgb[ i ] = parseInt( color.substr( i * 2, 2 ), 16 ); + var luma = ( 0.2126 * rgb[ 0 ] ) + ( 0.7152 * rgb[ 1 ] ) + ( 0.0722 * rgb[ 2 ] ); + return '#' + ( luma >= 165 ? '000' : 'fff' ); + } + + // Distinguish focused and hover states. + var focused, hovered; + + // Apply highlight style. + function updateHighlight( event ) { + // Convert to event. + !event.name && ( event = new CKEDITOR.event( event ) ); + + var isFocus = !( /mouse/ ).test( event.name ), + target = event.data.getTarget(), + color; + + if ( target.getName() == 'td' && ( color = target.getChild( 0 ).getHtml() ) ) { + removeHighlight( event ); + + isFocus ? focused = target : hovered = target; + + // Apply outline style to show focus. + if ( isFocus ) { + target.setStyle( 'border-color', whiteOrBlack( color ) ); + target.setStyle( 'border-style', 'dotted' ); + } + + $doc.getById( hicolorId ).setStyle( 'background-color', color ); + $doc.getById( hicolorTextId ).setHtml( color ); + } + } + + function clearHighlight() { + var color = focused.getChild( 0 ).getHtml(); + focused.setStyle( 'border-color', color ); + focused.setStyle( 'border-style', 'solid' ); + $doc.getById( hicolorId ).removeStyle( 'background-color' ); + $doc.getById( hicolorTextId ).setHtml( ' ' ); + focused = null; + } + + // Remove previously focused style. + function removeHighlight( event ) { + var isFocus = !( /mouse/ ).test( event.name ), + target = isFocus && focused; + + if ( target ) { + var color = target.getChild( 0 ).getHtml(); + target.setStyle( 'border-color', color ); + target.setStyle( 'border-style', 'solid' ); + } + + if ( !( focused || hovered ) ) { + $doc.getById( hicolorId ).removeStyle( 'background-color' ); + $doc.getById( hicolorTextId ).setHtml( ' ' ); + } + } + + function onKeyStrokes( evt ) { + var domEvt = evt.data; + + var element = domEvt.getTarget(); + var relative, nodeToMove; + var keystroke = domEvt.getKeystroke(), + rtl = editor.lang.dir == 'rtl'; + + switch ( keystroke ) { + // UP-ARROW + case 38: + // relative is TR + if ( ( relative = element.getParent().getPrevious() ) ) { + nodeToMove = relative.getChild( [ element.getIndex() ] ); + nodeToMove.focus(); + } + domEvt.preventDefault(); + break; + // DOWN-ARROW + case 40: + // relative is TR + if ( ( relative = element.getParent().getNext() ) ) { + nodeToMove = relative.getChild( [ element.getIndex() ] ); + if ( nodeToMove && nodeToMove.type == 1 ) + nodeToMove.focus(); + + } + domEvt.preventDefault(); + break; + + // SPACE + // ENTER + case 32: + case 13: + updateSelected( evt ); + domEvt.preventDefault(); + break; + + // RIGHT-ARROW + case rtl ? 37 : 39: + // relative is TD + if ( ( nodeToMove = element.getNext() ) ) { + if ( nodeToMove.type == 1 ) { + nodeToMove.focus(); + domEvt.preventDefault( true ); + } + } + // relative is TR + else if ( ( relative = element.getParent().getNext() ) ) { + nodeToMove = relative.getChild( [ 0 ] ); + if ( nodeToMove && nodeToMove.type == 1 ) { + nodeToMove.focus(); + domEvt.preventDefault( true ); + } + } + break; + + // LEFT-ARROW + case rtl ? 39 : 37: + // relative is TD + if ( ( nodeToMove = element.getPrevious() ) ) { + nodeToMove.focus(); + domEvt.preventDefault( true ); + } + // relative is TR + else if ( ( relative = element.getParent().getPrevious() ) ) { + nodeToMove = relative.getLast(); + nodeToMove.focus(); + domEvt.preventDefault( true ); + } + break; + default: + // Do not stop not handled events. + return; + } + } + + function createColorTable() { + table = CKEDITOR.dom.element.createFromHtml( '' + + '' + + '
    ' + lang.options + '
    ' ); + + table.on( 'mouseover', updateHighlight ); + table.on( 'mouseout', removeHighlight ); + + // Create the base colors array. + var aColors = [ '00', '33', '66', '99', 'cc', 'ff' ]; + + // This function combines two ranges of three values from the color array into a row. + function appendColorRow( rangeA, rangeB ) { + for ( var i = rangeA; i < rangeA + 3; i++ ) { + var row = new $el( table.$.insertRow( -1 ) ); + row.setAttribute( 'role', 'row' ); + + for ( var j = rangeB; j < rangeB + 3; j++ ) { + for ( var n = 0; n < 6; n++ ) { + appendColorCell( row.$, '#' + aColors[ j ] + aColors[ n ] + aColors[ i ] ); + } + } + } + } + + // This function create a single color cell in the color table. + function appendColorCell( targetRow, color ) { + var cell = new $el( targetRow.insertCell( -1 ) ); + cell.setAttribute( 'class', 'ColorCell' ); + cell.setAttribute( 'tabIndex', -1 ); + cell.setAttribute( 'role', 'gridcell' ); + + cell.on( 'keydown', onKeyStrokes ); + cell.on( 'click', updateSelected ); + cell.on( 'focus', updateHighlight ); + cell.on( 'blur', removeHighlight ); + + cell.setStyle( 'background-color', color ); + cell.setStyle( 'border', '1px solid ' + color ); + + cell.setStyle( 'width', '14px' ); + cell.setStyle( 'height', '14px' ); + + var colorLabel = numbering( 'color_table_cell' ); + cell.setAttribute( 'aria-labelledby', colorLabel ); + cell.append( CKEDITOR.dom.element.createFromHtml( '' + color + '', CKEDITOR.document ) ); + } + + appendColorRow( 0, 0 ); + appendColorRow( 3, 0 ); + appendColorRow( 0, 3 ); + appendColorRow( 3, 3 ); + + // Create the last row. + var oRow = new $el( table.$.insertRow( -1 ) ); + oRow.setAttribute( 'role', 'row' ); + + // Create the gray scale colors cells. + for ( var n = 0; n < 6; n++ ) { + appendColorCell( oRow.$, '#' + aColors[ n ] + aColors[ n ] + aColors[ n ] ); + } + + // Fill the row with black cells. + for ( var i = 0; i < 12; i++ ) { + appendColorCell( oRow.$, '#000000' ); + } + } + + var numbering = function( id ) { + return CKEDITOR.tools.getNextId() + '_' + id; + }, + hicolorId = numbering( 'hicolor' ), + hicolorTextId = numbering( 'hicolortext' ), + selHiColorId = numbering( 'selhicolor' ), + table; + + createColorTable(); + + return { + title: lang.title, + minWidth: 360, + minHeight: 220, + onLoad: function() { + // Update reference. + dialog = this; + }, + onHide: function() { + clearSelected(); + clearHighlight(); + }, + contents: [ + { + id: 'picker', + label: lang.title, + accessKey: 'I', + elements: [ + { + type: 'hbox', + padding: 0, + widths: [ '70%', '10%', '30%' ], + children: [ + { + type: 'html', + html: '
    ', + onLoad: function() { + CKEDITOR.document.getById( this.domId ).append( table ); + }, + focus: function() { + // Restore the previously focused cell, + // otherwise put the initial focus on the first table cell. + ( focused || this.getElement().getElementsByTag( 'td' ).getItem( 0 ) ).focus(); + } + }, + spacer, + { + type: 'vbox', + padding: 0, + widths: [ '70%', '5%', '25%' ], + children: [ + { + type: 'html', + html: '' + lang.highlight + '\ +
    \ +
     
    ' + lang.selected + '\ +
    ' + }, + { + type: 'text', + label: lang.selected, + labelStyle: 'display:none', + id: 'selectedColor', + style: 'width: 74px', + onChange: function() { + // Try to update color preview with new value. If fails, then set it no none. + try { + $doc.getById( selHiColorId ).setStyle( 'background-color', this.getValue() ); + } catch ( e ) { + clearSelected(); + } + } + }, + spacer, + { + type: 'button', + id: 'clear', + style: 'margin-top: 5px', + label: lang.clear, + onClick: clearSelected + } + ] + } + ] + } + ] + } + ] + }; +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/af.js new file mode 100644 index 00000000000..c903b64a0b3 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/af.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'af', { + clear: 'Herstel', + highlight: 'Aktief', + options: 'Kleuropsies', + selected: 'Geselekteer', + title: 'Kies kleur' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ar.js new file mode 100644 index 00000000000..64e19936bb1 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ar.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ar', { + clear: 'مسح', + highlight: 'تحديد', + options: 'اختيارات الألوان', + selected: 'اللون المختار', + title: 'اختر اللون' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bg.js new file mode 100644 index 00000000000..e7d379c25d3 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bg.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'bg', { + clear: 'Изчистване', + highlight: 'Осветяване', + options: 'Цветови опции', + selected: 'Изберете цвят', + title: 'Изберете цвят' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bn.js new file mode 100644 index 00000000000..e025402fd5c --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bn.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'bn', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bs.js new file mode 100644 index 00000000000..f2648168966 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bs.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'bs', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ca.js new file mode 100644 index 00000000000..eeb75232c19 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ca.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ca', { + clear: 'Neteja', + highlight: 'Destacat', + options: 'Opcions del color', + selected: 'Color Seleccionat', + title: 'Seleccioni el color' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cs.js new file mode 100644 index 00000000000..37d4866bf85 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cs.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'cs', { + clear: 'Vyčistit', + highlight: 'Zvýraznit', + options: 'Nastavení barvy', + selected: 'Vybráno', + title: 'Výběr barvy' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cy.js new file mode 100644 index 00000000000..39b3035cb8d --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cy.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'cy', { + clear: 'Clirio', + highlight: 'Uwcholeuo', + options: 'Opsiynau Lliw', + selected: 'Lliw a Ddewiswyd', + title: 'Dewis lliw' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/da.js new file mode 100644 index 00000000000..9a2fdeae718 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/da.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'da', { + clear: 'Nulstil', + highlight: 'Markér', + options: 'Farvemuligheder', + selected: 'Valgt farve', + title: 'Vælg farve' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/de.js new file mode 100644 index 00000000000..854ab90e1cb --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/de.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'de', { + clear: 'Entfernen', + highlight: 'Hervorheben', + options: 'Farbeoptionen', + selected: 'Ausgewählte Farbe', + title: 'Farbe wählen' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/el.js new file mode 100644 index 00000000000..5a696a6386f --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/el.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'el', { + clear: 'Εκκαθάριση', + highlight: 'Σήμανση', + options: 'Επιλογές Χρωμάτων', + selected: 'Επιλεγμένο Χρώμα', + title: 'Επιλογή χρώματος' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-au.js new file mode 100644 index 00000000000..f541bd3a684 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-au.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'en-au', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-ca.js new file mode 100644 index 00000000000..fe5c2c4b083 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-ca.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'en-ca', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-gb.js new file mode 100644 index 00000000000..02aaf71361d --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-gb.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'en-gb', { + clear: 'Clear', + highlight: 'Highlight', + options: 'Colour Options', + selected: 'Selected Colour', + title: 'Select colour' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en.js new file mode 100644 index 00000000000..2b39632fb24 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'en', { + clear: 'Clear', + highlight: 'Highlight', + options: 'Color Options', + selected: 'Selected Color', + title: 'Select color' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eo.js new file mode 100644 index 00000000000..46902b85ae7 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eo.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'eo', { + clear: 'Forigi', + highlight: 'Detaloj', + options: 'Opcioj pri koloroj', + selected: 'Selektita koloro', + title: 'Selekti koloron' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/es.js new file mode 100644 index 00000000000..d192b57244a --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/es.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'es', { + clear: 'Borrar', + highlight: 'Muestra', + options: 'Opciones de colores', + selected: 'Elegido', + title: 'Elegir color' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/et.js new file mode 100644 index 00000000000..9f126d24a38 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/et.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'et', { + clear: 'Eemalda', + highlight: 'Näidis', + options: 'Värvi valikud', + selected: 'Valitud värv', + title: 'Värvi valimine' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eu.js new file mode 100644 index 00000000000..fc81779c568 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eu.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'eu', { + clear: 'Garbitu', + highlight: 'Nabarmendu', + options: 'Kolore Aukerak', + selected: 'Hautatutako Kolorea', + title: 'Kolorea Hautatu' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fa.js new file mode 100644 index 00000000000..0d03daf59bb --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fa.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'fa', { + clear: 'پاک کردن', + highlight: 'متمایز', + options: 'گزینه​های رنگ', + selected: 'رنگ انتخاب شده', + title: 'انتخاب رنگ' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fi.js new file mode 100644 index 00000000000..77e5d7ab769 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fi.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'fi', { + clear: 'Poista', + highlight: 'Korostus', + options: 'Värin ominaisuudet', + selected: 'Valittu', + title: 'Valitse väri' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fo.js new file mode 100644 index 00000000000..c22dad70ffc --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fo.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'fo', { + clear: 'Strika', + highlight: 'Framheva', + options: 'Litmøguleikar', + selected: 'Valdur litur', + title: 'Vel lit' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr-ca.js new file mode 100644 index 00000000000..e11e6764180 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr-ca.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'fr-ca', { + clear: 'Effacer', + highlight: 'Surligner', + options: 'Options de couleur', + selected: 'Couleur sélectionnée', + title: 'Choisir une couleur' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr.js new file mode 100644 index 00000000000..c94f280e8ae --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'fr', { + clear: 'Effacer', + highlight: 'Détails', + options: 'Option des couleurs', + selected: 'Couleur choisie', + title: 'Choisir une couleur' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gl.js new file mode 100644 index 00000000000..28025cea456 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gl.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'gl', { + clear: 'Limpar', + highlight: 'Resaltar', + options: 'Opcións de cor', + selected: 'Cor seleccionado', + title: 'Seleccione unha cor' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gu.js new file mode 100644 index 00000000000..95a20c2139a --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gu.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'gu', { + clear: 'સાફ કરવું', + highlight: 'હાઈઈટ', + options: 'રંગના વિકલ્પ', + selected: 'પસંદ કરેલો રંગ', + title: 'રંગ પસંદ કરો' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/he.js new file mode 100644 index 00000000000..3cfed661bd5 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/he.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'he', { + clear: 'ניקוי', + highlight: 'סימון', + options: 'אפשרויות צבע', + selected: 'בחירה', + title: 'בחירת צבע' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hi.js new file mode 100644 index 00000000000..49b2f0acaac --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hi.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'hi', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hr.js new file mode 100644 index 00000000000..049ac1aae93 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hr.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'hr', { + clear: 'Očisti', + highlight: 'Istaknuto', + options: 'Opcije boje', + selected: 'Odabrana boja', + title: 'Odaberi boju' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hu.js new file mode 100644 index 00000000000..a43d5d95ed9 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hu.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'hu', { + clear: 'Ürítés', + highlight: 'Nagyítás', + options: 'Szín opciók', + selected: 'Kiválasztott', + title: 'Válasszon színt' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/is.js new file mode 100644 index 00000000000..4bb810e241f --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/is.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'is', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/it.js new file mode 100644 index 00000000000..7dc0eeb2369 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/it.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'it', { + clear: 'cancella', + highlight: 'Evidenzia', + options: 'Opzioni colore', + selected: 'Seleziona il colore', + title: 'Selezionare il colore' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ja.js new file mode 100644 index 00000000000..4226f879973 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ja.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ja', { + clear: 'クリア', + highlight: 'ハイライト', + options: 'カラーオプション', + selected: '選択された色', + title: '色選択' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ka.js new file mode 100644 index 00000000000..4327480ca47 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ka.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ka', { + clear: 'გასუფთავება', + highlight: 'ჩვენება', + options: 'ფერის პარამეტრები', + selected: 'არჩეული ფერი', + title: 'ფერის შეცვლა' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/km.js new file mode 100644 index 00000000000..5af47248100 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/km.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'km', { + clear: 'សម្អាត', + highlight: 'បន្លិច​ពណ៌', + options: 'ជម្រើស​ពណ៌', + selected: 'ពណ៌​ដែល​បាន​រើស', + title: 'រើស​ពណ៌' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ko.js new file mode 100644 index 00000000000..cc01f3e756b --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ko.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ko', { + clear: '제거', + highlight: '하이라이트', + options: '색상 옵션', + selected: '색상 선택됨', + title: '색상 선택' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ku.js new file mode 100644 index 00000000000..913bdb083fa --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ku.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ku', { + clear: 'پاکیکەوە', + highlight: 'نیشانکردن', + options: 'هەڵبژاردەی ڕەنگەکان', + selected: 'ڕەنگی هەڵبژێردراو', + title: 'هەڵبژاردنی ڕەنگ' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lt.js new file mode 100644 index 00000000000..2e7245c4d58 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lt.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'lt', { + clear: 'Išvalyti', + highlight: 'Paryškinti', + options: 'Spalvos nustatymai', + selected: 'Pasirinkta spalva', + title: 'Pasirinkite spalvą' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lv.js new file mode 100644 index 00000000000..02e439075e5 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lv.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'lv', { + clear: 'Notīrīt', + highlight: 'Paraugs', + options: 'Krāsas uzstādījumi', + selected: 'Izvēlētā krāsa', + title: 'Izvēlies krāsu' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mk.js new file mode 100644 index 00000000000..cfcd958a76c --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mk.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'mk', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mn.js new file mode 100644 index 00000000000..d7d03b04b04 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mn.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'mn', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ms.js new file mode 100644 index 00000000000..bc27089f315 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ms.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ms', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nb.js new file mode 100644 index 00000000000..0b43ae19fee --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nb.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'nb', { + clear: 'Tøm', + highlight: 'Merk', + options: 'Alternativer for farge', + selected: 'Valgt', + title: 'Velg farge' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nl.js new file mode 100644 index 00000000000..ecbe471d406 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nl.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'nl', { + clear: 'Wissen', + highlight: 'Actief', + options: 'Kleuropties', + selected: 'Geselecteerde kleur', + title: 'Selecteer kleur' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/no.js new file mode 100644 index 00000000000..68c71152007 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/no.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'no', { + clear: 'Tøm', + highlight: 'Merk', + options: 'Alternativer for farge', + selected: 'Valgt', + title: 'Velg farge' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pl.js new file mode 100644 index 00000000000..7b72de8cf2c --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pl.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'pl', { + clear: 'Wyczyść', + highlight: 'Zaznacz', + options: 'Opcje koloru', + selected: 'Wybrany', + title: 'Wybierz kolor' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt-br.js new file mode 100644 index 00000000000..6094191e405 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt-br.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'pt-br', { + clear: 'Limpar', + highlight: 'Grifar', + options: 'Opções de Cor', + selected: 'Cor Selecionada', + title: 'Selecione uma Cor' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt.js new file mode 100644 index 00000000000..b210f1bacb6 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'pt', { + clear: 'Limpar', + highlight: 'Realçar', + options: 'Opções da Cor', + selected: 'Cor Selecionada', + title: 'Selecionar Cor' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ro.js new file mode 100644 index 00000000000..0a06503c890 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ro.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ro', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ru.js new file mode 100644 index 00000000000..c55b6cb7a43 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ru.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ru', { + clear: 'Очистить', + highlight: 'Под курсором', + options: 'Настройки цвета', + selected: 'Выбранный цвет', + title: 'Выберите цвет' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/si.js new file mode 100644 index 00000000000..b127f4d1165 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/si.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'si', { + clear: 'පැහැදිලි', + highlight: 'මතුකර පෙන්වන්න', + options: 'වර්ණ විකල්ප', + selected: 'තෙරු වර්ණ', + title: 'වර්ණ තෝරන්න' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sk.js new file mode 100644 index 00000000000..5f44790bea9 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sk.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'sk', { + clear: 'Vyčistiť', + highlight: 'Zvýrazniť', + options: 'Možnosti farby', + selected: 'Vybraná farba', + title: 'Vyberte farbu' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sl.js new file mode 100644 index 00000000000..ab85aa5d0cc --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sl.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'sl', { + clear: 'Počisti', + highlight: 'Poudarjeno', + options: 'Barvne Možnosti', + selected: 'Izbrano', + title: 'Izberi barvo' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sq.js new file mode 100644 index 00000000000..755411f46d2 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sq.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'sq', { + clear: 'Pastro', + highlight: 'Thekso', + options: 'Përzgjedhjet e Ngjyrave', + selected: 'Ngjyra e Përzgjedhur', + title: 'Përzgjidh një ngjyrë' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr-latn.js new file mode 100644 index 00000000000..779c68848d2 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr-latn.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'sr-latn', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr.js new file mode 100644 index 00000000000..8361de37046 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'sr', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sv.js new file mode 100644 index 00000000000..7c2b9f36d5b --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sv.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'sv', { + clear: 'Rensa', + highlight: 'Markera', + options: 'Färgalternativ', + selected: 'Vald färg', + title: 'Välj färg' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/th.js new file mode 100644 index 00000000000..dbf5f777fee --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/th.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'th', { + clear: 'Clear', // MISSING + highlight: 'Highlight', // MISSING + options: 'Color Options', // MISSING + selected: 'Selected Color', // MISSING + title: 'Select color' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/tr.js new file mode 100644 index 00000000000..47f5d9d3570 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/tr.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'tr', { + clear: 'Temizle', + highlight: 'İşaretle', + options: 'Renk Seçenekleri', + selected: 'Seçilmiş', + title: 'Renk seç' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ug.js new file mode 100644 index 00000000000..9fd50f91ef8 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ug.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'ug', { + clear: 'تازىلا', + highlight: 'يورۇت', + options: 'رەڭ تاللانمىسى', + selected: 'رەڭ تاللاڭ', + title: 'رەڭ تاللاڭ' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/uk.js new file mode 100644 index 00000000000..9fb160dc8d4 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/uk.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'uk', { + clear: 'Очистити', + highlight: 'Колір, на який вказує курсор', + options: 'Опції кольорів', + selected: 'Обраний колір', + title: 'Обрати колір' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/vi.js new file mode 100644 index 00000000000..1fd2326217f --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/vi.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'vi', { + clear: 'Xóa bỏ', + highlight: 'Màu chọn', + options: 'Tùy chọn màu', + selected: 'Màu đã chọn', + title: 'Chọn màu' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh-cn.js new file mode 100644 index 00000000000..d9d20175b69 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh-cn.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'zh-cn', { + clear: '清除', + highlight: '高亮', + options: '颜色选项', + selected: '选择颜色', + title: '选择颜色' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh.js new file mode 100644 index 00000000000..2e129fec771 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colordialog', 'zh', { + clear: '清除', + highlight: '高亮', + options: '色彩選項', + selected: '選取的色彩', + title: '選取色彩' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js new file mode 100644 index 00000000000..0925bab5985 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js @@ -0,0 +1,69 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.colordialog = { + requires: 'dialog', + lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + init: function( editor ) { + var cmd = new CKEDITOR.dialogCommand( 'colordialog' ); + cmd.editorFocus = false; + + editor.addCommand( 'colordialog', cmd ); + + CKEDITOR.dialog.add( 'colordialog', this.path + 'dialogs/colordialog.js' ); + + /** + * Open up color dialog and to receive the selected color. + * + * @param {Function} callback The callback when color dialog is closed + * @param {String} callback.color The color value received if selected on the dialog. + * @param [scope] The scope in which the callback will be bound. + * @member CKEDITOR.editor + */ + editor.getColorFromDialog = function( callback, scope ) { + var onClose = function( evt ) { + releaseHandlers( this ); + var color = evt.name == 'ok' ? this.getValueOf( 'picker', 'selectedColor' ) : null; + callback.call( scope, color ); + }; + var releaseHandlers = function( dialog ) { + dialog.removeListener( 'ok', onClose ); + dialog.removeListener( 'cancel', onClose ); + }; + var bindToDialog = function( dialog ) { + dialog.on( 'ok', onClose ); + dialog.on( 'cancel', onClose ); + }; + + editor.execCommand( 'colordialog' ); + + if ( editor._.storedDialogs && editor._.storedDialogs.colordialog ) + bindToDialog( editor._.storedDialogs.colordialog ); + else { + CKEDITOR.on( 'dialogDefinition', function( e ) { + if ( e.data.name != 'colordialog' ) + return; + + var definition = e.data.definition; + + e.removeListener(); + definition.onLoad = CKEDITOR.tools.override( definition.onLoad, + function( orginal ) { + return function() { + bindToDialog( this ); + definition.onLoad = orginal; + if ( typeof orginal == 'function' ) + orginal.call( this ); + }; + } ); + } ); + } + }; + + + } +}; + +CKEDITOR.plugins.add( 'colordialog', CKEDITOR.plugins.colordialog ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/af.js new file mode 100644 index 00000000000..9109123d662 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/af.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'af', { + options: 'Konteks Spyskaart-opsies' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ar.js new file mode 100644 index 00000000000..bc0b4484f84 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ar.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ar', { + options: 'خصائص قائمة السياق' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bg.js new file mode 100644 index 00000000000..36ba4cfb843 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bg.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'bg', { + options: 'Опции на контекстното меню' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bn.js new file mode 100644 index 00000000000..9a07e71941e --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'bn', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bs.js new file mode 100644 index 00000000000..7c17e7d7e56 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bs.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'bs', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ca.js new file mode 100644 index 00000000000..a6c59b5fbc4 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ca', { + options: 'Opcions del menú contextual' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cs.js new file mode 100644 index 00000000000..fd28a840c38 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cs.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'cs', { + options: 'Nastavení kontextové nabídky' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cy.js new file mode 100644 index 00000000000..6a4e4a8b275 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cy.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'cy', { + options: 'Opsiynau Dewislen Cyd-destun' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/da.js new file mode 100644 index 00000000000..5336bb71b3c --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/da.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'da', { + options: 'Muligheder for hjælpemenu' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/de.js new file mode 100644 index 00000000000..c51ded1d459 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/de.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'de', { + options: 'Kontextmenü Optionen' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/el.js new file mode 100644 index 00000000000..7f0813beb38 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/el.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'el', { + options: 'Επιλογές Αναδυόμενου Μενού' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-au.js new file mode 100644 index 00000000000..9e4b58b2876 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-au.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'en-au', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-ca.js new file mode 100644 index 00000000000..b61046ecbd8 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'en-ca', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-gb.js new file mode 100644 index 00000000000..2b79207b712 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-gb.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'en-gb', { + options: 'Context Menu Options' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en.js new file mode 100644 index 00000000000..98471b49bf6 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'en', { + options: 'Context Menu Options' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eo.js new file mode 100644 index 00000000000..020df9830cb --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eo.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'eo', { + options: 'Opcioj de Kunteksta Menuo' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/es.js new file mode 100644 index 00000000000..d6e361eea6d --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/es.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'es', { + options: 'Opciones del menú contextual' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/et.js new file mode 100644 index 00000000000..f3eb7ab15be --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/et.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'et', { + options: 'Kontekstimenüü valikud' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eu.js new file mode 100644 index 00000000000..ddf1884c2cc --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'eu', { + options: 'Testuingurko Menuaren Aukerak' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fa.js new file mode 100644 index 00000000000..5baeaff1c05 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fa.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fa', { + options: 'گزینه​های منوی زمینه' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fi.js new file mode 100644 index 00000000000..29decedfb1b --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fi', { + options: 'Pikavalikon ominaisuudet' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fo.js new file mode 100644 index 00000000000..fd549553fbc --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fo.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fo', { + options: 'Context Menu Options' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr-ca.js new file mode 100644 index 00000000000..7d8eda45406 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr-ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fr-ca', { + options: 'Options du menu contextuel' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr.js new file mode 100644 index 00000000000..71fa2b84256 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fr', { + options: 'Options du menu contextuel' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gl.js new file mode 100644 index 00000000000..ff9d6b685d8 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'gl', { + options: 'Opcións do menú contextual' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gu.js new file mode 100644 index 00000000000..1f125e27c95 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'gu', { + options: 'કોન્તેક્ષ્ત્ મેનુના વિકલ્પો' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/he.js new file mode 100644 index 00000000000..8139a71a2b0 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/he.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'he', { + options: 'אפשרויות תפריט ההקשר' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hi.js new file mode 100644 index 00000000000..aabe9b25115 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'hi', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hr.js new file mode 100644 index 00000000000..95783ba84f5 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'hr', { + options: 'Opcije izbornika' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hu.js new file mode 100644 index 00000000000..a3ad44f141f --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'hu', { + options: 'Helyi menü opciók' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/id.js new file mode 100644 index 00000000000..1d75d2cb8c9 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/id.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'id', { + options: 'Opsi Konteks Pilihan' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/is.js new file mode 100644 index 00000000000..b0ce9edc955 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/is.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'is', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/it.js new file mode 100644 index 00000000000..edafe96b647 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/it.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'it', { + options: 'Opzioni del menù contestuale' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ja.js new file mode 100644 index 00000000000..edcc47dcbb8 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ja.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ja', { + options: 'コンテキストメニューオプション' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ka.js new file mode 100644 index 00000000000..3a944635e69 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ka.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ka', { + options: 'კონტექსტური მენიუს პარამეტრები' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/km.js new file mode 100644 index 00000000000..a2e7d544772 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/km.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'km', { + options: 'ជម្រើស​ម៉ឺនុយ​បរិបទ' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ko.js new file mode 100644 index 00000000000..4f60bb0a81b --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ko.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ko', { + options: '컨텍스트 메뉴 옵션' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ku.js new file mode 100644 index 00000000000..77214191a8d --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ku.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ku', { + options: 'هەڵبژاردەی لیستەی کلیکی دەستی ڕاست' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lt.js new file mode 100644 index 00000000000..48edbb75de6 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lt.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'lt', { + options: 'Kontekstinio meniu parametrai' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lv.js new file mode 100644 index 00000000000..bc1a1631a03 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lv.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'lv', { + options: 'Uznirstošās izvēlnes uzstādījumi' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mk.js new file mode 100644 index 00000000000..7c5b271c0c0 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'mk', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mn.js new file mode 100644 index 00000000000..12469af1524 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'mn', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ms.js new file mode 100644 index 00000000000..df31fe04cb2 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ms.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ms', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nb.js new file mode 100644 index 00000000000..8dd99a4465e --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nb.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'nb', { + options: 'Alternativer for høyreklikkmeny' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nl.js new file mode 100644 index 00000000000..25b9d8d6d4b --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'nl', { + options: 'Contextmenu opties' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/no.js new file mode 100644 index 00000000000..38195cd8f7f --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/no.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'no', { + options: 'Alternativer for høyreklikkmeny' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pl.js new file mode 100644 index 00000000000..e20b1cd86e1 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'pl', { + options: 'Opcje menu kontekstowego' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt-br.js new file mode 100644 index 00000000000..1117c9a40ff --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt-br.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'pt-br', { + options: 'Opções Menu de Contexto' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt.js new file mode 100644 index 00000000000..205eb6fdf71 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'pt', { + options: 'Menu de opções de contexto' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ro.js new file mode 100644 index 00000000000..df44813a1c2 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ro.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ro', { + options: 'Opțiuni Meniu Contextual' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ru.js new file mode 100644 index 00000000000..741126ffd2f --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ru.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ru', { + options: 'Параметры контекстного меню' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/si.js new file mode 100644 index 00000000000..e8a340805b5 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/si.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'si', { + options: 'අනතර්ග ලේඛණ විකල්ප' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sk.js new file mode 100644 index 00000000000..a94fe858fb8 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sk', { + options: 'Možnosti kontextového menu' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sl.js new file mode 100644 index 00000000000..60696241e30 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sl', { + options: 'Možnosti Kontekstnega Menija' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sq.js new file mode 100644 index 00000000000..8ff40cd88a4 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sq.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sq', { + options: 'Mundësitë e Menysë së Kontekstit' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr-latn.js new file mode 100644 index 00000000000..36ae082226f --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr-latn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sr-latn', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr.js new file mode 100644 index 00000000000..64ddf2407dc --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sr', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sv.js new file mode 100644 index 00000000000..71e4884cb87 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sv.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sv', { + options: 'Context Menu Options' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/th.js new file mode 100644 index 00000000000..a8e41d8d197 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/th.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'th', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/tr.js new file mode 100644 index 00000000000..ea4a3f92771 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/tr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'tr', { + options: 'İçerik Menüsü Seçenekleri' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ug.js new file mode 100644 index 00000000000..da08efdcd4a --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ug.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ug', { + options: 'قىسقا يول تىزىملىك تاللانمىسى' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/uk.js new file mode 100644 index 00000000000..c2cbe39316b --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/uk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'uk', { + options: 'Опції контекстного меню' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/vi.js new file mode 100644 index 00000000000..e6148849530 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/vi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'vi', { + options: 'Tùy chọn menu bổ xung' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh-cn.js new file mode 100644 index 00000000000..2c2b677a8e1 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh-cn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'zh-cn', { + options: '快捷菜单选项' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh.js new file mode 100644 index 00000000000..f134584b3d1 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'zh', { + options: '內容功能表選項' +} ); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js new file mode 100644 index 00000000000..fb54db4ee67 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js @@ -0,0 +1,143 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.add( 'contextmenu', { + requires: 'menu', + lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + + // Make sure the base class (CKEDITOR.menu) is loaded before it (#3318). + onLoad: function() { + /** + * Class replacing the non-configurable native context menu with configurable CKEditor's equivalent. + * + * @class + * @extends CKEDITOR.menu + */ + CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass( { + base: CKEDITOR.menu, + + /** + * Creates the CKEDITOR.plugins.contextMenu class instance. + * + * @constructor + * @param {CKEDITOR.editor} editor + */ + $: function( editor ) { + this.base.call( this, editor, { + panel: { + className: 'cke_menu_panel', + attributes: { + 'aria-label': editor.lang.contextmenu.options + } + } + } ); + }, + + proto: { + /** + * Starts watching on native context menu triggers (option key, right click) on given element. + * + * @param {CKEDITOR.dom.element} element + * @param {Boolean} [nativeContextMenuOnCtrl] Whether to open native context menu if + * *Ctrl* key is hold on opening the context menu. See {@link CKEDITOR.config#browserContextMenuOnCtrl}. + */ + addTarget: function( element, nativeContextMenuOnCtrl ) { + element.on( 'contextmenu', function( event ) { + var domEvent = event.data, + isCtrlKeyDown = + // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event, + // which make this property unreliable. (#4826) + ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) ); + + if ( nativeContextMenuOnCtrl && isCtrlKeyDown ) + return; + + // Cancel the browser context menu. + domEvent.preventDefault(); + + var doc = domEvent.getTarget().getDocument(), + offsetParent = domEvent.getTarget().getDocument().getDocumentElement(), + fromFrame = !doc.equals( CKEDITOR.document ), + scroll = doc.getWindow().getScrollPosition(), + offsetX = fromFrame ? domEvent.$.clientX : domEvent.$.pageX || scroll.x + domEvent.$.clientX, + offsetY = fromFrame ? domEvent.$.clientY : domEvent.$.pageY || scroll.y + domEvent.$.clientY; + + CKEDITOR.tools.setTimeout( function() { + this.open( offsetParent, null, offsetX, offsetY ); + + // IE needs a short while to allow selection change before opening menu. (#7908) + }, CKEDITOR.env.ie ? 200 : 0, this ); + }, this ); + + if ( CKEDITOR.env.webkit ) { + var holdCtrlKey, + onKeyDown = function( event ) { + holdCtrlKey = CKEDITOR.env.mac ? event.data.$.metaKey : event.data.$.ctrlKey; + }, + resetOnKeyUp = function() { + holdCtrlKey = 0; + }; + + element.on( 'keydown', onKeyDown ); + element.on( 'keyup', resetOnKeyUp ); + element.on( 'contextmenu', resetOnKeyUp ); + } + }, + + /** + * Opens context menu in given location. See the {@link CKEDITOR.menu#show} method. + * + * @param {CKEDITOR.dom.element} offsetParent + * @param {Number} [corner] + * @param {Number} [offsetX] + * @param {Number} [offsetY] + */ + open: function( offsetParent, corner, offsetX, offsetY ) { + this.editor.focus(); + offsetParent = offsetParent || CKEDITOR.document.getDocumentElement(); + + // #9362: Force selection check to update commands' states in the new context. + this.editor.selectionChange( 1 ); + + this.show( offsetParent, corner, offsetX, offsetY ); + } + } + } ); + }, + + beforeInit: function( editor ) { + /** + * @readonly + * @property {CKEDITOR.plugins.contextMenu} contextMenu + * @member CKEDITOR.editor + */ + var contextMenu = editor.contextMenu = new CKEDITOR.plugins.contextMenu( editor ); + + editor.on( 'contentDom', function() { + contextMenu.addTarget( editor.editable(), editor.config.browserContextMenuOnCtrl !== false ); + } ); + + editor.addCommand( 'contextMenu', { + exec: function() { + editor.contextMenu.open( editor.document.getBody() ); + } + } ); + + editor.setKeystroke( CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ); + editor.setKeystroke( CKEDITOR.CTRL + CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ); + } +} ); + +/** + * Whether to show the browser native context menu when the *Ctrl* or + * *Meta* (Mac) key is pressed on opening the context menu with the + * right mouse button click or the *Menu* key. + * + * config.browserContextMenuOnCtrl = false; + * + * @since 3.0.2 + * @cfg {Boolean} [browserContextMenuOnCtrl=true] + * @member CKEDITOR.config + */ diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js new file mode 100644 index 00000000000..0e2a642ee2b --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js @@ -0,0 +1,1006 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview Defines the "virtual" dialog, dialog content and dialog button + * definition classes. + */ + +/** + * The definition of a dialog window. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create dialogs. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * CKEDITOR.dialog.add( 'testOnly', function( editor ) { + * return { + * title: 'Test Dialog', + * resizable: CKEDITOR.DIALOG_RESIZE_BOTH, + * minWidth: 500, + * minHeight: 400, + * contents: [ + * { + * id: 'tab1', + * label: 'First Tab', + * title: 'First Tab Title', + * accessKey: 'Q', + * elements: [ + * { + * type: 'text', + * label: 'Test Text 1', + * id: 'testText1', + * 'default': 'hello world!' + * } + * ] + * } + * ] + * }; + * } ); + * + * @class CKEDITOR.dialog.definition + */ + +/** + * The dialog title, displayed in the dialog's header. Required. + * + * @property {String} title + */ + +/** + * How the dialog can be resized, must be one of the four contents defined below. + * + * * {@link CKEDITOR#DIALOG_RESIZE_NONE} + * * {@link CKEDITOR#DIALOG_RESIZE_WIDTH} + * * {@link CKEDITOR#DIALOG_RESIZE_HEIGHT} + * * {@link CKEDITOR#DIALOG_RESIZE_BOTH} + * + * @property {Number} [resizable=CKEDITOR.DIALOG_RESIZE_NONE] + */ + +/** + * The minimum width of the dialog, in pixels. + * + * @property {Number} [minWidth=600] + */ + +/** + * The minimum height of the dialog, in pixels. + * + * @property {Number} [minHeight=400] + */ + + +/** + * The initial width of the dialog, in pixels. + * + * @since 3.5.3 + * @property {Number} [width=CKEDITOR.dialog.definition#minWidth] + */ + +/** + * The initial height of the dialog, in pixels. + * + * @since 3.5.3 + * @property {Number} [height=CKEDITOR.dialog.definition.minHeight] + */ + +/** + * The buttons in the dialog, defined as an array of + * {@link CKEDITOR.dialog.definition.button} objects. + * + * @property {Array} [buttons=[ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ]] + */ + +/** + * The contents in the dialog, defined as an array of + * {@link CKEDITOR.dialog.definition.content} objects. Required. + * + * @property {Array} contents + */ + +/** + * The function to execute when OK is pressed. + * + * @property {Function} onOk + */ + +/** + * The function to execute when Cancel is pressed. + * + * @property {Function} onCancel + */ + +/** + * The function to execute when the dialog is displayed for the first time. + * + * @property {Function} onLoad + */ + +/** + * The function to execute when the dialog is loaded (executed every time the dialog is opened). + * + * @property {Function} onShow + */ + +/** + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create dialog content pages. + * + * @class CKEDITOR.dialog.definition.content. + */ + +/** + * The id of the content page. + * + * @property {String} id + */ + +/** + * The tab label of the content page. + * + * @property {String} label + */ + +/** + * The popup message of the tab label. + * + * @property {String} title + */ + +/** + * The CTRL hotkey for switching to the tab. + * + * contentDefinition.accessKey = 'Q'; // Switch to this page when CTRL-Q is pressed. + * + * @property {String} accessKey + */ + +/** + * The UI elements contained in this content page, defined as an array of + * {@link CKEDITOR.dialog.definition.uiElement} objects. + * + * @property {Array} elements + */ + +/** + * The definition of user interface element (textarea, radio etc). + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create dialog UI elements. + * + * @class CKEDITOR.dialog.definition.uiElement + * @see CKEDITOR.ui.dialog.uiElement + */ + +/** + * The id of the UI element. + * + * @property {String} id + */ + +/** + * The type of the UI element. Required. + * + * @property {String} type + */ + +/** + * The popup label of the UI element. + * + * @property {String} title + */ + +/** + * The content that needs to be allowed to enable this UI element. + * All formats accepted by {@link CKEDITOR.filter#check} may be used. + * + * When all UI elements in a tab are disabled, this tab will be disabled automatically. + * + * @property {String/Object/CKEDITOR.style} requiredContent + */ + +/** + * CSS class names to append to the UI element. + * + * @property {String} className + */ + +/** + * Inline CSS classes to append to the UI element. + * + * @property {String} style + */ + +/** + * Horizontal alignment (in container) of the UI element. + * + * @property {String} align + */ + +/** + * Function to execute the first time the UI element is displayed. + * + * @property {Function} onLoad + */ + +/** + * Function to execute whenever the UI element's parent dialog is displayed. + * + * @property {Function} onShow + */ + +/** + * Function to execute whenever the UI element's parent dialog is closed. + * + * @property {Function} onHide + */ + +/** + * Function to execute whenever the UI element's parent + * dialog's {@link CKEDITOR.dialog#setupContent} method is executed. + * It usually takes care of the respective UI element as a standalone element. + * + * @property {Function} setup + */ + +/** + * Function to execute whenever the UI element's parent + * dialog's {@link CKEDITOR.dialog#commitContent} method is executed. + * It usually takes care of the respective UI element as a standalone element. + * + * @property {Function} commit + */ + +// ----- hbox ----------------------------------------------------------------- + +/** + * Horizontal layout box for dialog UI elements, auto-expends to available width of container. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create horizontal layouts. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.hbox} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'hbox', + * widths: [ '25%', '25%', '50%' ], + * children: [ + * { + * type: 'text', + * id: 'id1', + * width: '40px', + * }, + * { + * type: 'text', + * id: 'id2', + * width: '40px', + * }, + * { + * type: 'text', + * id: 'id3' + * } + * ] + * } + * + * @class CKEDITOR.dialog.definition.hbox + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container. + * + * @property {Array} children + */ + +/** + * (Optional) The widths of child cells. + * + * @property {Array} widths + */ + +/** + * (Optional) The height of the layout. + * + * @property {Number} height + */ + +/** + * The CSS styles to apply to this element. + * + * @property {String} styles + */ + +/** + * (Optional) The padding width inside child cells. Example: 0, 1. + * + * @property {Number} padding + */ + +/** + * (Optional) The alignment of the whole layout. Example: center, top. + * + * @property {String} align + */ + +// ----- vbox ----------------------------------------------------------------- + +/** + * Vertical layout box for dialog UI elements. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create vertical layouts. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.vbox} object and can + * be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'vbox', + * align: 'right', + * width: '200px', + * children: [ + * { + * type: 'text', + * id: 'age', + * label: 'Age' + * }, + * { + * type: 'text', + * id: 'sex', + * label: 'Sex' + * }, + * { + * type: 'text', + * id: 'nationality', + * label: 'Nationality' + * } + * ] + * } + * + * @class CKEDITOR.dialog.definition.vbox + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container. + * + * @property {Array} children + */ + +/** + * (Optional) The width of the layout. + * + * @property {Array} width + */ + +/** + * (Optional) The heights of individual cells. + * + * @property {Number} heights + */ + +/** + * The CSS styles to apply to this element. + * + * @property {String} styles + */ + +/** + * (Optional) The padding width inside child cells. Example: 0, 1. + * + * @property {Number} padding + */ + +/** + * (Optional) The alignment of the whole layout. Example: center, top. + * + * @property {String} align + */ + +/** + * (Optional) Whether the layout should expand vertically to fill its container. + * + * @property {Boolean} expand + */ + +// ----- labeled element ------------------------------------------------------ + +/** + * The definition of labeled user interface element (textarea, textInput etc). + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create dialog UI elements. + * + * @class CKEDITOR.dialog.definition.labeledElement + * @extends CKEDITOR.dialog.definition.uiElement + * @see CKEDITOR.ui.dialog.labeledElement + */ + +/** + * The label of the UI element. + * + * { + * type: 'text', + * label: 'My Label' + * } + * + * @property {String} label + */ + +/** + * (Optional) Specify the layout of the label. Set to `'horizontal'` for horizontal layout. + * The default layout is vertical. + * + * { + * type: 'text', + * label: 'My Label', + * labelLayout: 'horizontal' + * } + * + * @property {String} labelLayout + */ + +/** + * (Optional) Applies only to horizontal layouts: a two elements array of lengths to specify the widths of the + * label and the content element. See also {@link CKEDITOR.dialog.definition.labeledElement#labelLayout}. + * + * { + * type: 'text', + * label: 'My Label', + * labelLayout: 'horizontal', + * widths: [100, 200] + * } + * + * @property {Array} widths + */ + +/** + * Specify the inline style of the uiElement label. + * + * { + * type: 'text', + * label: 'My Label', + * labelStyle: 'color: red' + * } + * + * @property {String} labelStyle + */ + + +/** + * Specify the inline style of the input element. + * + * { + * type: 'text', + * label: 'My Label', + * inputStyle: 'text-align: center' + * } + * + * @since 3.6.1 + * @property {String} inputStyle + */ + +/** + * Specify the inline style of the input element container. + * + * { + * type: 'text', + * label: 'My Label', + * controlStyle: 'width: 3em' + * } + * + * @since 3.6.1 + * @property {String} controlStyle + */ + +// ----- button --------------------------------------------------------------- + +/** + * The definition of a button. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create buttons. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.button} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'button', + * id: 'buttonId', + * label: 'Click me', + * title: 'My title', + * onClick: function() { + * // this = CKEDITOR.ui.dialog.button + * alert( 'Clicked: ' + this.id ); + * } + * } + * + * @class CKEDITOR.dialog.definition.button + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * Whether the button is disabled. + * + * @property {Boolean} disabled + */ + +/** + * The label of the UI element. + * + * @property {String} label + */ + +// ----- checkbox ------ +/** + * The definition of a checkbox element. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create groups of checkbox buttons. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.checkbox} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'checkbox', + * id: 'agree', + * label: 'I agree', + * 'default': 'checked', + * onClick: function() { + * // this = CKEDITOR.ui.dialog.checkbox + * alert( 'Checked: ' + this.getValue() ); + * } + * } + * + * @class CKEDITOR.dialog.definition.checkbox + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * The label of the UI element. + * + * @property {String} label + */ + +/** + * The default state. + * + * @property {String} [default='' (unchecked)] + */ + +// ----- file ----------------------------------------------------------------- + +/** + * The definition of a file upload input. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create file upload elements. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.file} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'file', + * id: 'upload', + * label: 'Select file from your computer', + * size: 38 + * }, + * { + * type: 'fileButton', + * id: 'fileId', + * label: 'Upload file', + * 'for': [ 'tab1', 'upload' ], + * filebrowser: { + * onSelect: function( fileUrl, data ) { + * alert( 'Successfully uploaded: ' + fileUrl ); + * } + * } + * } + * + * @class CKEDITOR.dialog.definition.file + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * (Optional) The action attribute of the form element associated with this file upload input. + * If empty, CKEditor will use path to server connector for currently opened folder. + * + * @property {String} action + */ + +/** + * The size of the UI element. + * + * @property {Number} size + */ + +// ----- fileButton ----------------------------------------------------------- + +/** + * The definition of a button for submitting the file in a file upload input. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create a button for submitting the file in a file upload input. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.fileButton} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * @class CKEDITOR.dialog.definition.fileButton + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * The label of the UI element. + * + * @property {String} label + */ + +/** + * The instruction for CKEditor how to deal with file upload. + * By default, the file and fileButton elements will not work "as expected" if this attribute is not set. + * + * // Update field with id 'txtUrl' in the 'tab1' tab when file is uploaded. + * filebrowser: 'tab1:txtUrl' + * + * // Call custom onSelect function when file is successfully uploaded. + * filebrowser: { + * onSelect: function( fileUrl, data ) { + * alert( 'Successfully uploaded: ' + fileUrl ); + * } + * } + * + * @property {String} filebrowser/Object + */ + +/** + * An array that contains pageId and elementId of the file upload input element for which this button is created. + * + * [ pageId, elementId ] + * + * @property {String} for + */ + +// ----- html ----------------------------------------------------------------- + +/** + * The definition of a raw HTML element. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create elements made from raw HTML code. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.html} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * To access HTML elements use {@link CKEDITOR.dom.document#getById}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example 1: + * { + * type: 'html', + * html: '

    This is some sample HTML content.

    ' + * } + * + * // Example 2: + * // Complete sample with document.getById() call when the "Ok" button is clicked. + * var dialogDefinition = { + * title: 'Sample dialog', + * minWidth: 300, + * minHeight: 200, + * onOk: function() { + * // "this" is now a CKEDITOR.dialog object. + * var document = this.getElement().getDocument(); + * // document = CKEDITOR.dom.document + * var element = document.getById( 'myDiv' ); + * if ( element ) + * alert( element.getHtml() ); + * }, + * contents: [ + * { + * id: 'tab1', + * label: '', + * title: '', + * elements: [ + * { + * type: 'html', + * html: '
    Sample text.
    Another div.
    ' + * } + * ] + * } + * ], + * buttons: [ CKEDITOR.dialog.cancelButton, CKEDITOR.dialog.okButton ] + * }; + * + * @class CKEDITOR.dialog.definition.html + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * (Required) HTML code of this element. + * + * @property {String} html + */ + +// ----- radio ---------------------------------------------------------------- + +/** + * The definition of a radio group. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create groups of radio buttons. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.radio} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'radio', + * id: 'country', + * label: 'Which country is bigger', + * items: [ [ 'France', 'FR' ], [ 'Germany', 'DE' ] ], + * style: 'color: green', + * 'default': 'DE', + * onClick: function() { + * // this = CKEDITOR.ui.dialog.radio + * alert( 'Current value: ' + this.getValue() ); + * } + * } + * + * @class CKEDITOR.dialog.definition.radio + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * The default value. + * + * @property {String} default + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * An array of options. Each option is a 1- or 2-item array of format `[ 'Description', 'Value' ]`. + * If `'Value'` is missing, then the value would be assumed to be the same as the description. + * + * @property {Array} items + */ + +// ----- selectElement -------------------------------------------------------- + +/** + * The definition of a select element. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create select elements. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.select} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'select', + * id: 'sport', + * label: 'Select your favourite sport', + * items: [ [ 'Basketball' ], [ 'Baseball' ], [ 'Hockey' ], [ 'Football' ] ], + * 'default': 'Football', + * onChange: function( api ) { + * // this = CKEDITOR.ui.dialog.select + * alert( 'Current value: ' + this.getValue() ); + * } + * } + * + * @class CKEDITOR.dialog.definition.select + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * The default value. + * + * @property {String} default + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * An array of options. Each option is a 1- or 2-item array of format `[ 'Description', 'Value' ]`. + * If `'Value'` is missing, then the value would be assumed to be the same as the description. + * + * @property {Array} items + */ + +/** + * (Optional) Set this to true if you'd like to have a multiple-choice select box. + * + * @property {Boolean} [multiple=false] + */ + +/** + * (Optional) The number of items to display in the select box. + * + * @property {Number} size + */ + +// ----- textInput ------------------------------------------------------------ + +/** + * The definition of a text field (single line). + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create text fields. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.textInput} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * { + * type: 'text', + * id: 'name', + * label: 'Your name', + * 'default': '', + * validate: function() { + * if ( !this.getValue() ) { + * api.openMsgDialog( '', 'Name cannot be empty.' ); + * return false; + * } + * } + * } + * + * @class CKEDITOR.dialog.definition.textInput + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * The default value. + * + * @property {String} default + */ + +/** + * (Optional) The maximum length. + * + * @property {Number} maxLength + */ + +/** + * (Optional) The size of the input field. + * + * @property {Number} size + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +// ----- textarea ------------------------------------------------------------- + +/** + * The definition of a text field (multiple lines). + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create textarea. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.textarea} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * +* // There is no constructor for this class, the user just has to define an +* // object with the appropriate properties. +* +* // Example: +* { +* type: 'textarea', +* id: 'message', +* label: 'Your comment', +* 'default': '', +* validate: function() { +* if ( this.getValue().length < 5 ) { +* api.openMsgDialog( 'The comment is too short.' ); +* return false; +* } +* } +* } + * + * @class CKEDITOR.dialog.definition.textarea + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * The number of rows. + * + * @property {Number} rows + */ + +/** + * The number of columns. + * + * @property {Number} cols + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * The default value. + * + * @property {String} default + */ diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/plugin.js new file mode 100644 index 00000000000..5382f01531b --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/plugin.js @@ -0,0 +1,3267 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview The floating dialog plugin. + */ + +/** + * No resize for this dialog. + * + * @readonly + * @property {Number} [=0] + * @member CKEDITOR + */ +CKEDITOR.DIALOG_RESIZE_NONE = 0; + +/** + * Only allow horizontal resizing for this dialog, disable vertical resizing. + * + * @readonly + * @property {Number} [=1] + * @member CKEDITOR + */ +CKEDITOR.DIALOG_RESIZE_WIDTH = 1; + +/** + * Only allow vertical resizing for this dialog, disable horizontal resizing. + * + * @readonly + * @property {Number} [=2] + * @member CKEDITOR + */ +CKEDITOR.DIALOG_RESIZE_HEIGHT = 2; + +/** + * Allow the dialog to be resized in both directions. + * + * @readonly + * @property {Number} [=3] + * @member CKEDITOR + */ +CKEDITOR.DIALOG_RESIZE_BOTH = 3; + +( function() { + var cssLength = CKEDITOR.tools.cssLength; + + function isTabVisible( tabId ) { + return !!this._.tabs[ tabId ][ 0 ].$.offsetHeight; + } + + function getPreviousVisibleTab() { + var tabId = this._.currentTabId, + length = this._.tabIdList.length, + tabIndex = CKEDITOR.tools.indexOf( this._.tabIdList, tabId ) + length; + + for ( var i = tabIndex - 1; i > tabIndex - length; i-- ) { + if ( isTabVisible.call( this, this._.tabIdList[ i % length ] ) ) + return this._.tabIdList[ i % length ]; + } + + return null; + } + + function getNextVisibleTab() { + var tabId = this._.currentTabId, + length = this._.tabIdList.length, + tabIndex = CKEDITOR.tools.indexOf( this._.tabIdList, tabId ); + + for ( var i = tabIndex + 1; i < tabIndex + length; i++ ) { + if ( isTabVisible.call( this, this._.tabIdList[ i % length ] ) ) + return this._.tabIdList[ i % length ]; + } + + return null; + } + + + function clearOrRecoverTextInputValue( container, isRecover ) { + var inputs = container.$.getElementsByTagName( 'input' ); + for ( var i = 0, length = inputs.length; i < length; i++ ) { + var item = new CKEDITOR.dom.element( inputs[ i ] ); + + if ( item.getAttribute( 'type' ).toLowerCase() == 'text' ) { + if ( isRecover ) { + item.setAttribute( 'value', item.getCustomData( 'fake_value' ) || '' ); + item.removeCustomData( 'fake_value' ); + } else { + item.setCustomData( 'fake_value', item.getAttribute( 'value' ) ); + item.setAttribute( 'value', '' ); + } + } + } + } + + // Handle dialog element validation state UI changes. + function handleFieldValidated( isValid, msg ) { + var input = this.getInputElement(); + if ( input ) + isValid ? input.removeAttribute( 'aria-invalid' ) : input.setAttribute( 'aria-invalid', true ); + + if ( !isValid ) { + if ( this.select ) + this.select(); + else + this.focus(); + } + + msg && alert( msg ); + + this.fire( 'validated', { valid: isValid, msg: msg } ); + } + + function resetField() { + var input = this.getInputElement(); + input && input.removeAttribute( 'aria-invalid' ); + } + + var templateSource = ''; + + function buildDialog( editor ) { + var element = CKEDITOR.dom.element.createFromHtml( CKEDITOR.addTemplate( 'dialog', templateSource ).output( { + id: CKEDITOR.tools.getNextNumber(), + editorId: editor.id, + langDir: editor.lang.dir, + langCode: editor.langCode, + editorDialogClass: 'cke_editor_' + editor.name.replace( /\./g, '\\.' ) + '_dialog', + closeTitle: editor.lang.common.close, + hidpi: CKEDITOR.env.hidpi ? 'cke_hidpi' : '' + } ) ); + + // TODO: Change this to getById(), so it'll support custom templates. + var body = element.getChild( [ 0, 0, 0, 0, 0 ] ), + title = body.getChild( 0 ), + close = body.getChild( 1 ); + + // IFrame shim for dialog that masks activeX in IE. (#7619) + if ( CKEDITOR.env.ie && !CKEDITOR.env.ie6Compat ) { + var src = 'javascript:void(function(){' + encodeURIComponent( 'document.open();(' + CKEDITOR.tools.fixDomain + ')();document.close();' ) + '}())', + iframe = CKEDITOR.dom.element.createFromHtml( '' ); + iframe.appendTo( body.getParent() ); + } + + // Make the Title and Close Button unselectable. + title.unselectable(); + close.unselectable(); + + return { + element: element, + parts: { + dialog: element.getChild( 0 ), + title: title, + close: close, + tabs: body.getChild( 2 ), + contents: body.getChild( [ 3, 0, 0, 0 ] ), + footer: body.getChild( [ 3, 0, 1, 0 ] ) + } + }; + } + + /** + * This is the base class for runtime dialog objects. An instance of this + * class represents a single named dialog for a single editor instance. + * + * var dialogObj = new CKEDITOR.dialog( editor, 'smiley' ); + * + * @class + * @constructor Creates a dialog class instance. + * @param {Object} editor The editor which created the dialog. + * @param {String} dialogName The dialog's registered name. + */ + CKEDITOR.dialog = function( editor, dialogName ) { + // Load the dialog definition. + var definition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ], + defaultDefinition = CKEDITOR.tools.clone( defaultDialogDefinition ), + buttonsOrder = editor.config.dialog_buttonsOrder || 'OS', + dir = editor.lang.dir, + tabsToRemove = {}, + i, processed, stopPropagation; + + if ( ( buttonsOrder == 'OS' && CKEDITOR.env.mac ) || // The buttons in MacOS Apps are in reverse order (#4750) + ( buttonsOrder == 'rtl' && dir == 'ltr' ) || ( buttonsOrder == 'ltr' && dir == 'rtl' ) ) + defaultDefinition.buttons.reverse(); + + + // Completes the definition with the default values. + definition = CKEDITOR.tools.extend( definition( editor ), defaultDefinition ); + + // Clone a functionally independent copy for this dialog. + definition = CKEDITOR.tools.clone( definition ); + + // Create a complex definition object, extending it with the API + // functions. + definition = new definitionObject( this, definition ); + + var doc = CKEDITOR.document; + + var themeBuilt = buildDialog( editor ); + + // Initialize some basic parameters. + this._ = { + editor: editor, + element: themeBuilt.element, + name: dialogName, + contentSize: { width: 0, height: 0 }, + size: { width: 0, height: 0 }, + contents: {}, + buttons: {}, + accessKeyMap: {}, + + // Initialize the tab and page map. + tabs: {}, + tabIdList: [], + currentTabId: null, + currentTabIndex: null, + pageCount: 0, + lastTab: null, + tabBarMode: false, + + // Initialize the tab order array for input widgets. + focusList: [], + currentFocusIndex: 0, + hasFocus: false + }; + + this.parts = themeBuilt.parts; + + CKEDITOR.tools.setTimeout( function() { + editor.fire( 'ariaWidget', this.parts.contents ); + }, 0, this ); + + // Set the startup styles for the dialog, avoiding it enlarging the + // page size on the dialog creation. + var startStyles = { + position: CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed', + top: 0, + visibility: 'hidden' + }; + + startStyles[ dir == 'rtl' ? 'right' : 'left' ] = 0; + this.parts.dialog.setStyles( startStyles ); + + + // Call the CKEDITOR.event constructor to initialize this instance. + CKEDITOR.event.call( this ); + + // Fire the "dialogDefinition" event, making it possible to customize + // the dialog definition. + this.definition = definition = CKEDITOR.fire( 'dialogDefinition', { + name: dialogName, + definition: definition + }, editor ).definition; + + // Cache tabs that should be removed. + if ( !( 'removeDialogTabs' in editor._ ) && editor.config.removeDialogTabs ) { + var removeContents = editor.config.removeDialogTabs.split( ';' ); + + for ( i = 0; i < removeContents.length; i++ ) { + var parts = removeContents[ i ].split( ':' ); + if ( parts.length == 2 ) { + var removeDialogName = parts[ 0 ]; + if ( !tabsToRemove[ removeDialogName ] ) + tabsToRemove[ removeDialogName ] = []; + tabsToRemove[ removeDialogName ].push( parts[ 1 ] ); + } + } + editor._.removeDialogTabs = tabsToRemove; + } + + // Remove tabs of this dialog. + if ( editor._.removeDialogTabs && ( tabsToRemove = editor._.removeDialogTabs[ dialogName ] ) ) { + for ( i = 0; i < tabsToRemove.length; i++ ) + definition.removeContents( tabsToRemove[ i ] ); + } + + // Initialize load, show, hide, ok and cancel events. + if ( definition.onLoad ) + this.on( 'load', definition.onLoad ); + + if ( definition.onShow ) + this.on( 'show', definition.onShow ); + + if ( definition.onHide ) + this.on( 'hide', definition.onHide ); + + if ( definition.onOk ) { + this.on( 'ok', function( evt ) { + // Dialog confirm might probably introduce content changes (#5415). + editor.fire( 'saveSnapshot' ); + setTimeout( function() { + editor.fire( 'saveSnapshot' ); + }, 0 ); + if ( definition.onOk.call( this, evt ) === false ) + evt.data.hide = false; + } ); + } + + if ( definition.onCancel ) { + this.on( 'cancel', function( evt ) { + if ( definition.onCancel.call( this, evt ) === false ) + evt.data.hide = false; + } ); + } + + var me = this; + + // Iterates over all items inside all content in the dialog, calling a + // function for each of them. + var iterContents = function( func ) { + var contents = me._.contents, + stop = false; + + for ( var i in contents ) { + for ( var j in contents[ i ] ) { + stop = func.call( this, contents[ i ][ j ] ); + if ( stop ) + return; + } + } + }; + + this.on( 'ok', function( evt ) { + iterContents( function( item ) { + if ( item.validate ) { + var retval = item.validate( this ), + invalid = typeof( retval ) == 'string' || retval === false; + + if ( invalid ) { + evt.data.hide = false; + evt.stop(); + } + + handleFieldValidated.call( item, !invalid, typeof retval == 'string' ? retval : undefined ); + return invalid; + } + } ); + }, this, null, 0 ); + + this.on( 'cancel', function( evt ) { + iterContents( function( item ) { + if ( item.isChanged() ) { + if ( !editor.config.dialog_noConfirmCancel && !confirm( editor.lang.common.confirmCancel ) ) + evt.data.hide = false; + return true; + } + } ); + }, this, null, 0 ); + + this.parts.close.on( 'click', function( evt ) { + if ( this.fire( 'cancel', { hide: true } ).hide !== false ) + this.hide(); + evt.data.preventDefault(); + }, this ); + + // Sort focus list according to tab order definitions. + function setupFocus() { + var focusList = me._.focusList; + focusList.sort( function( a, b ) { + // Mimics browser tab order logics; + if ( a.tabIndex != b.tabIndex ) + return b.tabIndex - a.tabIndex; + // Sort is not stable in some browsers, + // fall-back the comparator to 'focusIndex'; + else + return a.focusIndex - b.focusIndex; + } ); + + var size = focusList.length; + for ( var i = 0; i < size; i++ ) + focusList[ i ].focusIndex = i; + } + + function changeFocus( offset ) { + var focusList = me._.focusList; + offset = offset || 0; + + if ( focusList.length < 1 ) + return; + + var current = me._.currentFocusIndex; + + // Trigger the 'blur' event of any input element before anything, + // since certain UI updates may depend on it. + try { + focusList[ current ].getInputElement().$.blur(); + } catch ( e ) {} + + var startIndex = ( current + offset + focusList.length ) % focusList.length, + currentIndex = startIndex; + while ( offset && !focusList[ currentIndex ].isFocusable() ) { + currentIndex = ( currentIndex + offset + focusList.length ) % focusList.length; + if ( currentIndex == startIndex ) + break; + } + + focusList[ currentIndex ].focus(); + + // Select whole field content. + if ( focusList[ currentIndex ].type == 'text' ) + focusList[ currentIndex ].select(); + } + + this.changeFocus = changeFocus; + + + function keydownHandler( evt ) { + // If I'm not the top dialog, ignore. + if ( me != CKEDITOR.dialog._.currentTop ) + return; + + var keystroke = evt.data.getKeystroke(), + rtl = editor.lang.dir == 'rtl', + button; + + processed = stopPropagation = 0; + + if ( keystroke == 9 || keystroke == CKEDITOR.SHIFT + 9 ) { + var shiftPressed = ( keystroke == CKEDITOR.SHIFT + 9 ); + + // Handling Tab and Shift-Tab. + if ( me._.tabBarMode ) { + // Change tabs. + var nextId = shiftPressed ? getPreviousVisibleTab.call( me ) : getNextVisibleTab.call( me ); + me.selectPage( nextId ); + me._.tabs[ nextId ][ 0 ].focus(); + } else { + // Change the focus of inputs. + changeFocus( shiftPressed ? -1 : 1 ); + } + + processed = 1; + } else if ( keystroke == CKEDITOR.ALT + 121 && !me._.tabBarMode && me.getPageCount() > 1 ) { + // Alt-F10 puts focus into the current tab item in the tab bar. + me._.tabBarMode = true; + me._.tabs[ me._.currentTabId ][ 0 ].focus(); + processed = 1; + } else if ( ( keystroke == 37 || keystroke == 39 ) && me._.tabBarMode ) { + // Arrow keys - used for changing tabs. + nextId = ( keystroke == ( rtl ? 39 : 37 ) ? getPreviousVisibleTab.call( me ) : getNextVisibleTab.call( me ) ); + me.selectPage( nextId ); + me._.tabs[ nextId ][ 0 ].focus(); + processed = 1; + } else if ( ( keystroke == 13 || keystroke == 32 ) && me._.tabBarMode ) { + this.selectPage( this._.currentTabId ); + this._.tabBarMode = false; + this._.currentFocusIndex = -1; + changeFocus( 1 ); + processed = 1; + } + // If user presses enter key in a text box, it implies clicking OK for the dialog. + else if ( keystroke == 13 /*ENTER*/ ) { + // Don't do that for a target that handles ENTER. + var target = evt.data.getTarget(); + if ( !target.is( 'a', 'button', 'select', 'textarea' ) && ( !target.is( 'input' ) || target.$.type != 'button' ) ) { + button = this.getButton( 'ok' ); + button && CKEDITOR.tools.setTimeout( button.click, 0, button ); + processed = 1; + } + stopPropagation = 1; // Always block the propagation (#4269) + } else if ( keystroke == 27 /*ESC*/ ) { + button = this.getButton( 'cancel' ); + + // If there's a Cancel button, click it, else just fire the cancel event and hide the dialog. + if ( button ) + CKEDITOR.tools.setTimeout( button.click, 0, button ); + else { + if ( this.fire( 'cancel', { hide: true } ).hide !== false ) + this.hide(); + } + stopPropagation = 1; // Always block the propagation (#4269) + } else + return; + + keypressHandler( evt ); + } + + function keypressHandler( evt ) { + if ( processed ) + evt.data.preventDefault( 1 ); + else if ( stopPropagation ) + evt.data.stopPropagation(); + } + + var dialogElement = this._.element; + + editor.focusManager.add( dialogElement, 1 ); + + // Add the dialog keyboard handlers. + this.on( 'show', function() { + dialogElement.on( 'keydown', keydownHandler, this ); + + // Some browsers instead, don't cancel key events in the keydown, but in the + // keypress. So we must do a longer trip in those cases. (#4531,#8985) + if ( CKEDITOR.env.opera || CKEDITOR.env.gecko ) + dialogElement.on( 'keypress', keypressHandler, this ); + + } ); + this.on( 'hide', function() { + dialogElement.removeListener( 'keydown', keydownHandler ); + if ( CKEDITOR.env.opera || CKEDITOR.env.gecko ) + dialogElement.removeListener( 'keypress', keypressHandler ); + + // Reset fields state when closing dialog. + iterContents( function( item ) { + resetField.apply( item ); + } ); + } ); + this.on( 'iframeAdded', function( evt ) { + var doc = new CKEDITOR.dom.document( evt.data.iframe.$.contentWindow.document ); + doc.on( 'keydown', keydownHandler, this, null, 0 ); + } ); + + // Auto-focus logic in dialog. + this.on( 'show', function() { + // Setup tabIndex on showing the dialog instead of on loading + // to allow dynamic tab order happen in dialog definition. + setupFocus(); + + if ( editor.config.dialog_startupFocusTab && me._.pageCount > 1 ) { + me._.tabBarMode = true; + me._.tabs[ me._.currentTabId ][ 0 ].focus(); + } else if ( !this._.hasFocus ) { + this._.currentFocusIndex = -1; + + // Decide where to put the initial focus. + if ( definition.onFocus ) { + var initialFocus = definition.onFocus.call( this ); + // Focus the field that the user specified. + initialFocus && initialFocus.focus(); + } + // Focus the first field in layout order. + else + changeFocus( 1 ); + } + }, this, null, 0xffffffff ); + + // IE6 BUG: Text fields and text areas are only half-rendered the first time the dialog appears in IE6 (#2661). + // This is still needed after [2708] and [2709] because text fields in hidden TR tags are still broken. + if ( CKEDITOR.env.ie6Compat ) { + this.on( 'load', function( evt ) { + var outer = this.getElement(), + inner = outer.getFirst(); + inner.remove(); + inner.appendTo( outer ); + }, this ); + } + + initDragAndDrop( this ); + initResizeHandles( this ); + + // Insert the title. + ( new CKEDITOR.dom.text( definition.title, CKEDITOR.document ) ).appendTo( this.parts.title ); + + // Insert the tabs and contents. + for ( i = 0; i < definition.contents.length; i++ ) { + var page = definition.contents[ i ]; + page && this.addPage( page ); + } + + this.parts[ 'tabs' ].on( 'click', function( evt ) { + var target = evt.data.getTarget(); + // If we aren't inside a tab, bail out. + if ( target.hasClass( 'cke_dialog_tab' ) ) { + // Get the ID of the tab, without the 'cke_' prefix and the unique number suffix. + var id = target.$.id; + this.selectPage( id.substring( 4, id.lastIndexOf( '_' ) ) ); + + if ( this._.tabBarMode ) { + this._.tabBarMode = false; + this._.currentFocusIndex = -1; + changeFocus( 1 ); + } + evt.data.preventDefault(); + } + }, this ); + + // Insert buttons. + var buttonsHtml = [], + buttons = CKEDITOR.dialog._.uiElementBuilders.hbox.build( this, { + type: 'hbox', + className: 'cke_dialog_footer_buttons', + widths: [], + children: definition.buttons + }, buttonsHtml ).getChild(); + this.parts.footer.setHtml( buttonsHtml.join( '' ) ); + + for ( i = 0; i < buttons.length; i++ ) + this._.buttons[ buttons[ i ].id ] = buttons[ i ]; + }; + + // Focusable interface. Use it via dialog.addFocusable. + function Focusable( dialog, element, index ) { + this.element = element; + this.focusIndex = index; + // TODO: support tabIndex for focusables. + this.tabIndex = 0; + this.isFocusable = function() { + return !element.getAttribute( 'disabled' ) && element.isVisible(); + }; + this.focus = function() { + dialog._.currentFocusIndex = this.focusIndex; + this.element.focus(); + }; + // Bind events + element.on( 'keydown', function( e ) { + if ( e.data.getKeystroke() in { 32: 1, 13: 1 } ) + this.fire( 'click' ); + } ); + element.on( 'focus', function() { + this.fire( 'mouseover' ); + } ); + element.on( 'blur', function() { + this.fire( 'mouseout' ); + } ); + } + + // Re-layout the dialog on window resize. + function resizeWithWindow( dialog ) { + var win = CKEDITOR.document.getWindow(); + function resizeHandler() { dialog.layout(); } + win.on( 'resize', resizeHandler ); + dialog.on( 'hide', function() { win.removeListener( 'resize', resizeHandler ); } ); + } + + CKEDITOR.dialog.prototype = { + destroy: function() { + this.hide(); + this._.element.remove(); + }, + + /** + * Resizes the dialog. + * + * dialogObj.resize( 800, 640 ); + * + * @method + * @param {Number} width The width of the dialog in pixels. + * @param {Number} height The height of the dialog in pixels. + */ + resize: ( function() { + return function( width, height ) { + if ( this._.contentSize && this._.contentSize.width == width && this._.contentSize.height == height ) + return; + + CKEDITOR.dialog.fire( 'resize', { + dialog: this, + width: width, + height: height + }, this._.editor ); + + this.fire( 'resize', { + width: width, + height: height + }, this._.editor ); + + var contents = this.parts.contents; + contents.setStyles( { + width: width + 'px', + height: height + 'px' + } ); + + // Update dialog position when dimension get changed in RTL. + if ( this._.editor.lang.dir == 'rtl' && this._.position ) + this._.position.x = CKEDITOR.document.getWindow().getViewPaneSize().width - this._.contentSize.width - parseInt( this._.element.getFirst().getStyle( 'right' ), 10 ); + + this._.contentSize = { width: width, height: height }; + }; + } )(), + + /** + * Gets the current size of the dialog in pixels. + * + * var width = dialogObj.getSize().width; + * + * @returns {Object} + * @returns {Number} return.width + * @returns {Number} return.height + */ + getSize: function() { + var element = this._.element.getFirst(); + return { width: element.$.offsetWidth || 0, height: element.$.offsetHeight || 0 }; + }, + + /** + * Moves the dialog to an `(x, y)` coordinate relative to the window. + * + * dialogObj.move( 10, 40 ); + * + * @method + * @param {Number} x The target x-coordinate. + * @param {Number} y The target y-coordinate. + * @param {Boolean} save Flag indicate whether the dialog position should be remembered on next open up. + */ + move: function( x, y, save ) { + + // The dialog may be fixed positioned or absolute positioned. Ask the + // browser what is the current situation first. + var element = this._.element.getFirst(), rtl = this._.editor.lang.dir == 'rtl'; + var isFixed = element.getComputedStyle( 'position' ) == 'fixed'; + + // (#8888) In some cases of a very small viewport, dialog is incorrectly + // positioned in IE7. It also happens that it remains sticky and user cannot + // scroll down/up to reveal dialog's content below/above the viewport; this is + // cumbersome. + // The only way to fix this is to move mouse out of the browser and + // go back to see that dialog position is automagically fixed. No events, + // no style change - pure magic. This is a IE7 rendering issue, which can be + // fixed with dummy style redraw on each move. + if ( CKEDITOR.env.ie ) + element.setStyle( 'zoom', '100%' ); + + if ( isFixed && this._.position && this._.position.x == x && this._.position.y == y ) + return; + + // Save the current position. + this._.position = { x: x, y: y }; + + // If not fixed positioned, add scroll position to the coordinates. + if ( !isFixed ) { + var scrollPosition = CKEDITOR.document.getWindow().getScrollPosition(); + x += scrollPosition.x; + y += scrollPosition.y; + } + + // Translate coordinate for RTL. + if ( rtl ) { + var dialogSize = this.getSize(), viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(); + x = viewPaneSize.width - dialogSize.width - x; + } + + var styles = { 'top': ( y > 0 ? y : 0 ) + 'px' }; + styles[ rtl ? 'right' : 'left' ] = ( x > 0 ? x : 0 ) + 'px'; + + element.setStyles( styles ); + + save && ( this._.moved = 1 ); + }, + + /** + * Gets the dialog's position in the window. + * + * var dialogX = dialogObj.getPosition().x; + * + * @returns {Object} + * @returns {Number} return.x + * @returns {Number} return.y + */ + getPosition: function() { + return CKEDITOR.tools.extend( {}, this._.position ); + }, + + /** + * Shows the dialog box. + * + * dialogObj.show(); + */ + show: function() { + // Insert the dialog's element to the root document. + var element = this._.element; + var definition = this.definition; + if ( !( element.getParent() && element.getParent().equals( CKEDITOR.document.getBody() ) ) ) + element.appendTo( CKEDITOR.document.getBody() ); + else + element.setStyle( 'display', 'block' ); + + // FIREFOX BUG: Fix vanishing caret for Firefox 2 or Gecko 1.8. + if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) { + var dialogElement = this.parts.dialog; + dialogElement.setStyle( 'position', 'absolute' ); + setTimeout( function() { + dialogElement.setStyle( 'position', 'fixed' ); + }, 0 ); + } + + + // First, set the dialog to an appropriate size. + this.resize( this._.contentSize && this._.contentSize.width || definition.width || definition.minWidth, this._.contentSize && this._.contentSize.height || definition.height || definition.minHeight ); + + // Reset all inputs back to their default value. + this.reset(); + + // Select the first tab by default. + this.selectPage( this.definition.contents[ 0 ].id ); + + // Set z-index. + if ( CKEDITOR.dialog._.currentZIndex === null ) + CKEDITOR.dialog._.currentZIndex = this._.editor.config.baseFloatZIndex; + this._.element.getFirst().setStyle( 'z-index', CKEDITOR.dialog._.currentZIndex += 10 ); + + // Maintain the dialog ordering and dialog cover. + if ( CKEDITOR.dialog._.currentTop === null ) { + CKEDITOR.dialog._.currentTop = this; + this._.parentDialog = null; + showCover( this._.editor ); + + } else { + this._.parentDialog = CKEDITOR.dialog._.currentTop; + var parentElement = this._.parentDialog.getElement().getFirst(); + parentElement.$.style.zIndex -= Math.floor( this._.editor.config.baseFloatZIndex / 2 ); + CKEDITOR.dialog._.currentTop = this; + } + + element.on( 'keydown', accessKeyDownHandler ); + element.on( CKEDITOR.env.opera ? 'keypress' : 'keyup', accessKeyUpHandler ); + + // Reset the hasFocus state. + this._.hasFocus = false; + + for ( var i in definition.contents ) { + if ( !definition.contents[ i ] ) + continue; + + var content = definition.contents[ i ], + tab = this._.tabs[ content.id ], + requiredContent = content.requiredContent, + enableElements = 0; + + if ( !tab ) + continue; + + for ( var j in this._.contents[ content.id ] ) { + var elem = this._.contents[ content.id ][ j ]; + + if ( elem.type == 'hbox' || elem.type == 'vbox' || !elem.getInputElement() ) + continue; + + if ( elem.requiredContent && !this._.editor.activeFilter.check( elem.requiredContent ) ) + elem.disable(); + else { + elem.enable(); + enableElements++; + } + } + + if ( !enableElements || ( requiredContent && !this._.editor.activeFilter.check( requiredContent ) ) ) + tab[ 0 ].addClass( 'cke_dialog_tab_disabled' ); + else + tab[ 0 ].removeClass( 'cke_dialog_tab_disabled' ); + } + + CKEDITOR.tools.setTimeout( function() { + this.layout(); + resizeWithWindow( this ); + + this.parts.dialog.setStyle( 'visibility', '' ); + + // Execute onLoad for the first show. + this.fireOnce( 'load', {} ); + CKEDITOR.ui.fire( 'ready', this ); + + this.fire( 'show', {} ); + this._.editor.fire( 'dialogShow', this ); + + if ( !this._.parentDialog ) + this._.editor.focusManager.lock(); + + // Save the initial values of the dialog. + this.foreach( function( contentObj ) { + contentObj.setInitValue && contentObj.setInitValue(); + } ); + + }, 100, this ); + }, + + /** + * Rearrange the dialog to its previous position or the middle of the window. + * + * @since 3.5 + */ + layout: function() { + var el = this.parts.dialog; + var dialogSize = this.getSize(); + var win = CKEDITOR.document.getWindow(), + viewSize = win.getViewPaneSize(); + + var posX = ( viewSize.width - dialogSize.width ) / 2, + posY = ( viewSize.height - dialogSize.height ) / 2; + + // Switch to absolute position when viewport is smaller than dialog size. + if ( !CKEDITOR.env.ie6Compat ) { + if ( dialogSize.height + ( posY > 0 ? posY : 0 ) > viewSize.height || + dialogSize.width + ( posX > 0 ? posX : 0 ) > viewSize.width ) + el.setStyle( 'position', 'absolute' ); + else + el.setStyle( 'position', 'fixed' ); + } + + this.move( this._.moved ? this._.position.x : posX, + this._.moved ? this._.position.y : posY ); + }, + + /** + * Executes a function for each UI element. + * + * @param {Function} fn Function to execute for each UI element. + * @returns {CKEDITOR.dialog} The current dialog object. + */ + foreach: function( fn ) { + for ( var i in this._.contents ) { + for ( var j in this._.contents[ i ] ) + fn.call( this, this._.contents[ i ][ j ] ); + } + return this; + }, + + /** + * Resets all input values in the dialog. + * + * dialogObj.reset(); + * + * @method + * @chainable + */ + reset: ( function() { + var fn = function( widget ) { + if ( widget.reset ) + widget.reset( 1 ); + }; + return function() { + this.foreach( fn ); + return this; + }; + } )(), + + + /** + * Calls the {@link CKEDITOR.dialog.definition.uiElement#setup} method of each + * of the UI elements, with the arguments passed through it. + * It is usually being called when the dialog is opened, to put the initial value inside the field. + * + * dialogObj.setupContent(); + * + * var timestamp = ( new Date() ).valueOf(); + * dialogObj.setupContent( timestamp ); + */ + setupContent: function() { + var args = arguments; + this.foreach( function( widget ) { + if ( widget.setup ) + widget.setup.apply( widget, args ); + } ); + }, + + /** + * Calls the {@link CKEDITOR.dialog.definition.uiElement#commit} method of each + * of the UI elements, with the arguments passed through it. + * It is usually being called when the user confirms the dialog, to process the values. + * + * dialogObj.commitContent(); + * + * var timestamp = ( new Date() ).valueOf(); + * dialogObj.commitContent( timestamp ); + */ + commitContent: function() { + var args = arguments; + this.foreach( function( widget ) { + // Make sure IE triggers "change" event on last focused input before closing the dialog. (#7915) + if ( CKEDITOR.env.ie && this._.currentFocusIndex == widget.focusIndex ) + widget.getInputElement().$.blur(); + + if ( widget.commit ) + widget.commit.apply( widget, args ); + } ); + }, + + /** + * Hides the dialog box. + * + * dialogObj.hide(); + */ + hide: function() { + if ( !this.parts.dialog.isVisible() ) + return; + + this.fire( 'hide', {} ); + this._.editor.fire( 'dialogHide', this ); + // Reset the tab page. + this.selectPage( this._.tabIdList[ 0 ] ); + var element = this._.element; + element.setStyle( 'display', 'none' ); + this.parts.dialog.setStyle( 'visibility', 'hidden' ); + // Unregister all access keys associated with this dialog. + unregisterAccessKey( this ); + + // Close any child(top) dialogs first. + while ( CKEDITOR.dialog._.currentTop != this ) + CKEDITOR.dialog._.currentTop.hide(); + + // Maintain dialog ordering and remove cover if needed. + if ( !this._.parentDialog ) + hideCover( this._.editor ); + else { + var parentElement = this._.parentDialog.getElement().getFirst(); + parentElement.setStyle( 'z-index', parseInt( parentElement.$.style.zIndex, 10 ) + Math.floor( this._.editor.config.baseFloatZIndex / 2 ) ); + } + CKEDITOR.dialog._.currentTop = this._.parentDialog; + + // Deduct or clear the z-index. + if ( !this._.parentDialog ) { + CKEDITOR.dialog._.currentZIndex = null; + + // Remove access key handlers. + element.removeListener( 'keydown', accessKeyDownHandler ); + element.removeListener( CKEDITOR.env.opera ? 'keypress' : 'keyup', accessKeyUpHandler ); + + var editor = this._.editor; + editor.focus(); + + // Give a while before unlock, waiting for focus to return to the editable. (#172) + setTimeout( function() { editor.focusManager.unlock(); }, 0 ); + + } else + CKEDITOR.dialog._.currentZIndex -= 10; + + delete this._.parentDialog; + // Reset the initial values of the dialog. + this.foreach( function( contentObj ) { + contentObj.resetInitValue && contentObj.resetInitValue(); + } ); + }, + + /** + * Adds a tabbed page into the dialog. + * + * @param {Object} contents Content definition. + */ + addPage: function( contents ) { + if ( contents.requiredContent && !this._.editor.filter.check( contents.requiredContent ) ) + return; + + var pageHtml = [], + titleHtml = contents.label ? ' title="' + CKEDITOR.tools.htmlEncode( contents.label ) + '"' : '', + elements = contents.elements, + vbox = CKEDITOR.dialog._.uiElementBuilders.vbox.build( this, { + type: 'vbox', + className: 'cke_dialog_page_contents', + children: contents.elements, + expand: !!contents.expand, + padding: contents.padding, + style: contents.style || 'width: 100%;' + }, pageHtml ); + + var contentMap = this._.contents[ contents.id ] = {}, + cursor, + children = vbox.getChild(), + enabledFields = 0; + + while ( ( cursor = children.shift() ) ) { + // Count all allowed fields. + if ( !cursor.notAllowed && cursor.type != 'hbox' && cursor.type != 'vbox' ) + enabledFields++; + + contentMap[ cursor.id ] = cursor; + if ( typeof( cursor.getChild ) == 'function' ) + children.push.apply( children, cursor.getChild() ); + } + + // If all fields are disabled (because they are not allowed) hide this tab. + if ( !enabledFields ) + contents.hidden = true; + + // Create the HTML for the tab and the content block. + var page = CKEDITOR.dom.element.createFromHtml( pageHtml.join( '' ) ); + page.setAttribute( 'role', 'tabpanel' ); + + var env = CKEDITOR.env; + var tabId = 'cke_' + contents.id + '_' + CKEDITOR.tools.getNextNumber(), + tab = CKEDITOR.dom.element.createFromHtml( [ + ' 0 ? ' cke_last' : 'cke_first' ), + titleHtml, + ( !!contents.hidden ? ' style="display:none"' : '' ), + ' id="', tabId, '"', + env.gecko && env.version >= 10900 && !env.hc ? '' : ' href="javascript:void(0)"', + ' tabIndex="-1"', + ' hidefocus="true"', + ' role="tab">', + contents.label, + '' + ].join( '' ) ); + + page.setAttribute( 'aria-labelledby', tabId ); + + // Take records for the tabs and elements created. + this._.tabs[ contents.id ] = [ tab, page ]; + this._.tabIdList.push( contents.id ); + !contents.hidden && this._.pageCount++; + this._.lastTab = tab; + this.updateStyle(); + + // Attach the DOM nodes. + + page.setAttribute( 'name', contents.id ); + page.appendTo( this.parts.contents ); + + tab.unselectable(); + this.parts.tabs.append( tab ); + + // Add access key handlers if access key is defined. + if ( contents.accessKey ) { + registerAccessKey( this, this, 'CTRL+' + contents.accessKey, tabAccessKeyDown, tabAccessKeyUp ); + this._.accessKeyMap[ 'CTRL+' + contents.accessKey ] = contents.id; + } + }, + + /** + * Activates a tab page in the dialog by its id. + * + * dialogObj.selectPage( 'tab_1' ); + * + * @param {String} id The id of the dialog tab to be activated. + */ + selectPage: function( id ) { + if ( this._.currentTabId == id ) + return; + + if ( this._.tabs[ id ][ 0 ].hasClass( 'cke_dialog_tab_disabled' ) ) + return; + + // If event was canceled - do nothing. + if ( this.fire( 'selectPage', { page: id, currentPage: this._.currentTabId } ) === false ) + return; + + // Hide the non-selected tabs and pages. + for ( var i in this._.tabs ) { + var tab = this._.tabs[ i ][ 0 ], + page = this._.tabs[ i ][ 1 ]; + if ( i != id ) { + tab.removeClass( 'cke_dialog_tab_selected' ); + page.hide(); + } + page.setAttribute( 'aria-hidden', i != id ); + } + + var selected = this._.tabs[ id ]; + selected[ 0 ].addClass( 'cke_dialog_tab_selected' ); + + // [IE] an invisible input[type='text'] will enlarge it's width + // if it's value is long when it shows, so we clear it's value + // before it shows and then recover it (#5649) + if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat ) { + clearOrRecoverTextInputValue( selected[ 1 ] ); + selected[ 1 ].show(); + setTimeout( function() { + clearOrRecoverTextInputValue( selected[ 1 ], 1 ); + }, 0 ); + } else + selected[ 1 ].show(); + + this._.currentTabId = id; + this._.currentTabIndex = CKEDITOR.tools.indexOf( this._.tabIdList, id ); + }, + + /** + * Dialog state-specific style updates. + */ + updateStyle: function() { + // If only a single page shown, a different style is used in the central pane. + this.parts.dialog[ ( this._.pageCount === 1 ? 'add' : 'remove' ) + 'Class' ]( 'cke_single_page' ); + }, + + /** + * Hides a page's tab away from the dialog. + * + * dialog.hidePage( 'tab_3' ); + * + * @param {String} id The page's Id. + */ + hidePage: function( id ) { + var tab = this._.tabs[ id ] && this._.tabs[ id ][ 0 ]; + if ( !tab || this._.pageCount == 1 || !tab.isVisible() ) + return; + // Switch to other tab first when we're hiding the active tab. + else if ( id == this._.currentTabId ) + this.selectPage( getPreviousVisibleTab.call( this ) ); + + tab.hide(); + this._.pageCount--; + this.updateStyle(); + }, + + /** + * Unhides a page's tab. + * + * dialog.showPage( 'tab_2' ); + * + * @param {String} id The page's Id. + */ + showPage: function( id ) { + var tab = this._.tabs[ id ] && this._.tabs[ id ][ 0 ]; + if ( !tab ) + return; + tab.show(); + this._.pageCount++; + this.updateStyle(); + }, + + /** + * Gets the root DOM element of the dialog. + * + * var dialogElement = dialogObj.getElement().getFirst(); + * dialogElement.setStyle( 'padding', '5px' ); + * + * @returns {CKEDITOR.dom.element} The `` element containing this dialog. + */ + getElement: function() { + return this._.element; + }, + + /** + * Gets the name of the dialog. + * + * var dialogName = dialogObj.getName(); + * + * @returns {String} The name of this dialog. + */ + getName: function() { + return this._.name; + }, + + /** + * Gets a dialog UI element object from a dialog page. + * + * dialogObj.getContentElement( 'tabId', 'elementId' ).setValue( 'Example' ); + * + * @param {String} pageId id of dialog page. + * @param {String} elementId id of UI element. + * @returns {CKEDITOR.ui.dialog.uiElement} The dialog UI element. + */ + getContentElement: function( pageId, elementId ) { + var page = this._.contents[ pageId ]; + return page && page[ elementId ]; + }, + + /** + * Gets the value of a dialog UI element. + * + * alert( dialogObj.getValueOf( 'tabId', 'elementId' ) ); + * + * @param {String} pageId id of dialog page. + * @param {String} elementId id of UI element. + * @returns {Object} The value of the UI element. + */ + getValueOf: function( pageId, elementId ) { + return this.getContentElement( pageId, elementId ).getValue(); + }, + + /** + * Sets the value of a dialog UI element. + * + * dialogObj.setValueOf( 'tabId', 'elementId', 'Example' ); + * + * @param {String} pageId id of the dialog page. + * @param {String} elementId id of the UI element. + * @param {Object} value The new value of the UI element. + */ + setValueOf: function( pageId, elementId, value ) { + return this.getContentElement( pageId, elementId ).setValue( value ); + }, + + /** + * Gets the UI element of a button in the dialog's button row. + * + * @returns {CKEDITOR.ui.dialog.button} The button object. + * + * @param {String} id The id of the button. + */ + getButton: function( id ) { + return this._.buttons[ id ]; + }, + + /** + * Simulates a click to a dialog button in the dialog's button row. + * + * @returns The return value of the dialog's `click` event. + * + * @param {String} id The id of the button. + */ + click: function( id ) { + return this._.buttons[ id ].click(); + }, + + /** + * Disables a dialog button. + * + * @param {String} id The id of the button. + */ + disableButton: function( id ) { + return this._.buttons[ id ].disable(); + }, + + /** + * Enables a dialog button. + * + * @param {String} id The id of the button. + */ + enableButton: function( id ) { + return this._.buttons[ id ].enable(); + }, + + /** + * Gets the number of pages in the dialog. + * + * @returns {Number} Page count. + */ + getPageCount: function() { + return this._.pageCount; + }, + + /** + * Gets the editor instance which opened this dialog. + * + * @returns {CKEDITOR.editor} Parent editor instances. + */ + getParentEditor: function() { + return this._.editor; + }, + + /** + * Gets the element that was selected when opening the dialog, if any. + * + * @returns {CKEDITOR.dom.element} The element that was selected, or `null`. + */ + getSelectedElement: function() { + return this.getParentEditor().getSelection().getSelectedElement(); + }, + + /** + * Adds element to dialog's focusable list. + * + * @param {CKEDITOR.dom.element} element + * @param {Number} [index] + */ + addFocusable: function( element, index ) { + if ( typeof index == 'undefined' ) { + index = this._.focusList.length; + this._.focusList.push( new Focusable( this, element, index ) ); + } else { + this._.focusList.splice( index, 0, new Focusable( this, element, index ) ); + for ( var i = index + 1; i < this._.focusList.length; i++ ) + this._.focusList[ i ].focusIndex++; + } + } + }; + + CKEDITOR.tools.extend( CKEDITOR.dialog, { + /** + * Registers a dialog. + * + * // Full sample plugin, which does not only register a dialog window but also adds an item to the context menu. + * // To open the dialog window, choose "Open dialog" in the context menu. + * CKEDITOR.plugins.add( 'myplugin', { + * init: function( editor ) { + * editor.addCommand( 'mydialog',new CKEDITOR.dialogCommand( 'mydialog' ) ); + * + * if ( editor.contextMenu ) { + * editor.addMenuGroup( 'mygroup', 10 ); + * editor.addMenuItem( 'My Dialog', { + * label: 'Open dialog', + * command: 'mydialog', + * group: 'mygroup' + * } ); + * editor.contextMenu.addListener( function( element ) { + * return { 'My Dialog': CKEDITOR.TRISTATE_OFF }; + * } ); + * } + * + * CKEDITOR.dialog.add( 'mydialog', function( api ) { + * // CKEDITOR.dialog.definition + * var dialogDefinition = { + * title: 'Sample dialog', + * minWidth: 390, + * minHeight: 130, + * contents: [ + * { + * id: 'tab1', + * label: 'Label', + * title: 'Title', + * expand: true, + * padding: 0, + * elements: [ + * { + * type: 'html', + * html: '

    This is some sample HTML content.

    ' + * }, + * { + * type: 'textarea', + * id: 'textareaId', + * rows: 4, + * cols: 40 + * } + * ] + * } + * ], + * buttons: [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ], + * onOk: function() { + * // "this" is now a CKEDITOR.dialog object. + * // Accessing dialog elements: + * var textareaObj = this.getContentElement( 'tab1', 'textareaId' ); + * alert( "You have entered: " + textareaObj.getValue() ); + * } + * }; + * + * return dialogDefinition; + * } ); + * } + * } ); + * + * CKEDITOR.replace( 'editor1', { extraPlugins: 'myplugin' } ); + * + * @static + * @param {String} name The dialog's name. + * @param {Function/String} dialogDefinition + * A function returning the dialog's definition, or the URL to the `.js` file holding the function. + * The function should accept an argument `editor` which is the current editor instance, and + * return an object conforming to {@link CKEDITOR.dialog.definition}. + * @see CKEDITOR.dialog.definition + */ + add: function( name, dialogDefinition ) { + // Avoid path registration from multiple instances override definition. + if ( !this._.dialogDefinitions[ name ] || typeof dialogDefinition == 'function' ) + this._.dialogDefinitions[ name ] = dialogDefinition; + }, + + /** + * @static + * @todo + */ + exists: function( name ) { + return !!this._.dialogDefinitions[ name ]; + }, + + /** + * @static + * @todo + */ + getCurrent: function() { + return CKEDITOR.dialog._.currentTop; + }, + + /** + * Check whether tab wasn't removed by {@link CKEDITOR.config#removeDialogTabs}. + * + * @since 4.1 + * @static + * @param {CKEDITOR.editor} editor + * @param {String} dialogName + * @param {String} tabName + * @returns {Boolean} + */ + isTabEnabled: function( editor, dialogName, tabName ) { + var cfg = editor.config.removeDialogTabs; + + return !( cfg && cfg.match( new RegExp( '(?:^|;)' + dialogName + ':' + tabName + '(?:$|;)', 'i' ) ) ); + }, + + /** + * The default OK button for dialogs. Fires the `ok` event and closes the dialog if the event succeeds. + * + * @static + * @method + */ + okButton: ( function() { + var retval = function( editor, override ) { + override = override || {}; + return CKEDITOR.tools.extend( { + id: 'ok', + type: 'button', + label: editor.lang.common.ok, + 'class': 'cke_dialog_ui_button_ok', + onClick: function( evt ) { + var dialog = evt.data.dialog; + if ( dialog.fire( 'ok', { hide: true } ).hide !== false ) + dialog.hide(); + } + }, override, true ); + }; + retval.type = 'button'; + retval.override = function( override ) { + return CKEDITOR.tools.extend( function( editor ) { + return retval( editor, override ); + }, { type: 'button' }, true ); + }; + return retval; + } )(), + + /** + * The default cancel button for dialogs. Fires the `cancel` event and + * closes the dialog if no UI element value changed. + * + * @static + * @method + */ + cancelButton: ( function() { + var retval = function( editor, override ) { + override = override || {}; + return CKEDITOR.tools.extend( { + id: 'cancel', + type: 'button', + label: editor.lang.common.cancel, + 'class': 'cke_dialog_ui_button_cancel', + onClick: function( evt ) { + var dialog = evt.data.dialog; + if ( dialog.fire( 'cancel', { hide: true } ).hide !== false ) + dialog.hide(); + } + }, override, true ); + }; + retval.type = 'button'; + retval.override = function( override ) { + return CKEDITOR.tools.extend( function( editor ) { + return retval( editor, override ); + }, { type: 'button' }, true ); + }; + return retval; + } )(), + + /** + * Registers a dialog UI element. + * + * @static + * @param {String} typeName The name of the UI element. + * @param {Function} builder The function to build the UI element. + */ + addUIElement: function( typeName, builder ) { + this._.uiElementBuilders[ typeName ] = builder; + } + } ); + + CKEDITOR.dialog._ = { + uiElementBuilders: {}, + + dialogDefinitions: {}, + + currentTop: null, + + currentZIndex: null + }; + + // "Inherit" (copy actually) from CKEDITOR.event. + CKEDITOR.event.implementOn( CKEDITOR.dialog ); + CKEDITOR.event.implementOn( CKEDITOR.dialog.prototype ); + + var defaultDialogDefinition = { + resizable: CKEDITOR.DIALOG_RESIZE_BOTH, + minWidth: 600, + minHeight: 400, + buttons: [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ] + }; + + // Tool function used to return an item from an array based on its id + // property. + var getById = function( array, id, recurse ) { + for ( var i = 0, item; + ( item = array[ i ] ); i++ ) { + if ( item.id == id ) + return item; + if ( recurse && item[ recurse ] ) { + var retval = getById( item[ recurse ], id, recurse ); + if ( retval ) + return retval; + } + } + return null; + }; + + // Tool function used to add an item into an array. + var addById = function( array, newItem, nextSiblingId, recurse, nullIfNotFound ) { + if ( nextSiblingId ) { + for ( var i = 0, item; + ( item = array[ i ] ); i++ ) { + if ( item.id == nextSiblingId ) { + array.splice( i, 0, newItem ); + return newItem; + } + + if ( recurse && item[ recurse ] ) { + var retval = addById( item[ recurse ], newItem, nextSiblingId, recurse, true ); + if ( retval ) + return retval; + } + } + + if ( nullIfNotFound ) + return null; + } + + array.push( newItem ); + return newItem; + }; + + // Tool function used to remove an item from an array based on its id. + var removeById = function( array, id, recurse ) { + for ( var i = 0, item; + ( item = array[ i ] ); i++ ) { + if ( item.id == id ) + return array.splice( i, 1 ); + if ( recurse && item[ recurse ] ) { + var retval = removeById( item[ recurse ], id, recurse ); + if ( retval ) + return retval; + } + } + return null; + }; + + /** + * This class is not really part of the API. It is the `definition` property value + * passed to `dialogDefinition` event handlers. + * + * CKEDITOR.on( 'dialogDefinition', function( evt ) { + * var definition = evt.data.definition; + * var content = definition.getContents( 'page1' ); + * // ... + * } ); + * + * @private + * @class CKEDITOR.dialog.definitionObject + * @extends CKEDITOR.dialog.definition + * @constructor Creates a definitionObject class instance. + */ + var definitionObject = function( dialog, dialogDefinition ) { + // TODO : Check if needed. + this.dialog = dialog; + + // Transform the contents entries in contentObjects. + var contents = dialogDefinition.contents; + for ( var i = 0, content; + ( content = contents[ i ] ); i++ ) + contents[ i ] = content && new contentObject( dialog, content ); + + CKEDITOR.tools.extend( this, dialogDefinition ); + }; + + definitionObject.prototype = { + /** + * Gets a content definition. + * + * @param {String} id The id of the content definition. + * @returns {CKEDITOR.dialog.definition.content} The content definition matching id. + */ + getContents: function( id ) { + return getById( this.contents, id ); + }, + + /** + * Gets a button definition. + * + * @param {String} id The id of the button definition. + * @returns {CKEDITOR.dialog.definition.button} The button definition matching id. + */ + getButton: function( id ) { + return getById( this.buttons, id ); + }, + + /** + * Adds a content definition object under this dialog definition. + * + * @param {CKEDITOR.dialog.definition.content} contentDefinition The + * content definition. + * @param {String} [nextSiblingId] The id of an existing content + * definition which the new content definition will be inserted + * before. Omit if the new content definition is to be inserted as + * the last item. + * @returns {CKEDITOR.dialog.definition.content} The inserted content definition. + */ + addContents: function( contentDefinition, nextSiblingId ) { + return addById( this.contents, contentDefinition, nextSiblingId ); + }, + + /** + * Adds a button definition object under this dialog definition. + * + * @param {CKEDITOR.dialog.definition.button} buttonDefinition The + * button definition. + * @param {String} [nextSiblingId] The id of an existing button + * definition which the new button definition will be inserted + * before. Omit if the new button definition is to be inserted as + * the last item. + * @returns {CKEDITOR.dialog.definition.button} The inserted button definition. + */ + addButton: function( buttonDefinition, nextSiblingId ) { + return addById( this.buttons, buttonDefinition, nextSiblingId ); + }, + + /** + * Removes a content definition from this dialog definition. + * + * @param {String} id The id of the content definition to be removed. + * @returns {CKEDITOR.dialog.definition.content} The removed content definition. + */ + removeContents: function( id ) { + removeById( this.contents, id ); + }, + + /** + * Removes a button definition from the dialog definition. + * + * @param {String} id The id of the button definition to be removed. + * @returns {CKEDITOR.dialog.definition.button} The removed button definition. + */ + removeButton: function( id ) { + removeById( this.buttons, id ); + } + }; + + /** + * This class is not really part of the API. It is the template of the + * objects representing content pages inside the + * CKEDITOR.dialog.definitionObject. + * + * CKEDITOR.on( 'dialogDefinition', function( evt ) { + * var definition = evt.data.definition; + * var content = definition.getContents( 'page1' ); + * content.remove( 'textInput1' ); + * // ... + * } ); + * + * @private + * @class CKEDITOR.dialog.definition.contentObject + * @constructor Creates a contentObject class instance. + */ + function contentObject( dialog, contentDefinition ) { + this._ = { + dialog: dialog + }; + + CKEDITOR.tools.extend( this, contentDefinition ); + } + + contentObject.prototype = { + /** + * Gets a UI element definition under the content definition. + * + * @param {String} id The id of the UI element definition. + * @returns {CKEDITOR.dialog.definition.uiElement} + */ + get: function( id ) { + return getById( this.elements, id, 'children' ); + }, + + /** + * Adds a UI element definition to the content definition. + * + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition The + * UI elemnet definition to be added. + * @param {String} nextSiblingId The id of an existing UI element + * definition which the new UI element definition will be inserted + * before. Omit if the new button definition is to be inserted as + * the last item. + * @returns {CKEDITOR.dialog.definition.uiElement} The element definition inserted. + */ + add: function( elementDefinition, nextSiblingId ) { + return addById( this.elements, elementDefinition, nextSiblingId, 'children' ); + }, + + /** + * Removes a UI element definition from the content definition. + * + * @param {String} id The id of the UI element definition to be removed. + * @returns {CKEDITOR.dialog.definition.uiElement} The element definition removed. + */ + remove: function( id ) { + removeById( this.elements, id, 'children' ); + } + }; + + function initDragAndDrop( dialog ) { + var lastCoords = null, + abstractDialogCoords = null, + element = dialog.getElement().getFirst(), + editor = dialog.getParentEditor(), + magnetDistance = editor.config.dialog_magnetDistance, + margins = CKEDITOR.skin.margins || [ 0, 0, 0, 0 ]; + + if ( typeof magnetDistance == 'undefined' ) + magnetDistance = 20; + + function mouseMoveHandler( evt ) { + var dialogSize = dialog.getSize(), + viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(), + x = evt.data.$.screenX, + y = evt.data.$.screenY, + dx = x - lastCoords.x, + dy = y - lastCoords.y, + realX, realY; + + lastCoords = { x: x, y: y }; + abstractDialogCoords.x += dx; + abstractDialogCoords.y += dy; + + if ( abstractDialogCoords.x + margins[ 3 ] < magnetDistance ) + realX = -margins[ 3 ]; + else if ( abstractDialogCoords.x - margins[ 1 ] > viewPaneSize.width - dialogSize.width - magnetDistance ) + realX = viewPaneSize.width - dialogSize.width + ( editor.lang.dir == 'rtl' ? 0 : margins[ 1 ] ); + else + realX = abstractDialogCoords.x; + + if ( abstractDialogCoords.y + margins[ 0 ] < magnetDistance ) + realY = -margins[ 0 ]; + else if ( abstractDialogCoords.y - margins[ 2 ] > viewPaneSize.height - dialogSize.height - magnetDistance ) + realY = viewPaneSize.height - dialogSize.height + margins[ 2 ]; + else + realY = abstractDialogCoords.y; + + dialog.move( realX, realY, 1 ); + + evt.data.preventDefault(); + } + + function mouseUpHandler( evt ) { + CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler ); + CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler ); + + if ( CKEDITOR.env.ie6Compat ) { + var coverDoc = currentCover.getChild( 0 ).getFrameDocument(); + coverDoc.removeListener( 'mousemove', mouseMoveHandler ); + coverDoc.removeListener( 'mouseup', mouseUpHandler ); + } + } + + dialog.parts.title.on( 'mousedown', function( evt ) { + lastCoords = { x: evt.data.$.screenX, y: evt.data.$.screenY }; + + CKEDITOR.document.on( 'mousemove', mouseMoveHandler ); + CKEDITOR.document.on( 'mouseup', mouseUpHandler ); + abstractDialogCoords = dialog.getPosition(); + + if ( CKEDITOR.env.ie6Compat ) { + var coverDoc = currentCover.getChild( 0 ).getFrameDocument(); + coverDoc.on( 'mousemove', mouseMoveHandler ); + coverDoc.on( 'mouseup', mouseUpHandler ); + } + + evt.data.preventDefault(); + }, dialog ); + } + + function initResizeHandles( dialog ) { + var def = dialog.definition, + resizable = def.resizable; + + if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE ) + return; + + var editor = dialog.getParentEditor(); + var wrapperWidth, wrapperHeight, viewSize, origin, startSize, dialogCover; + + var mouseDownFn = CKEDITOR.tools.addFunction( function( $event ) { + startSize = dialog.getSize(); + + var content = dialog.parts.contents, + iframeDialog = content.$.getElementsByTagName( 'iframe' ).length; + + // Shim to help capturing "mousemove" over iframe. + if ( iframeDialog ) { + dialogCover = CKEDITOR.dom.element.createFromHtml( '
    ' ); + content.append( dialogCover ); + } + + // Calculate the offset between content and chrome size. + wrapperHeight = startSize.height - dialog.parts.contents.getSize( 'height', !( CKEDITOR.env.gecko || CKEDITOR.env.opera || CKEDITOR.env.ie && CKEDITOR.env.quirks ) ); + wrapperWidth = startSize.width - dialog.parts.contents.getSize( 'width', 1 ); + + origin = { x: $event.screenX, y: $event.screenY }; + + viewSize = CKEDITOR.document.getWindow().getViewPaneSize(); + + CKEDITOR.document.on( 'mousemove', mouseMoveHandler ); + CKEDITOR.document.on( 'mouseup', mouseUpHandler ); + + if ( CKEDITOR.env.ie6Compat ) { + var coverDoc = currentCover.getChild( 0 ).getFrameDocument(); + coverDoc.on( 'mousemove', mouseMoveHandler ); + coverDoc.on( 'mouseup', mouseUpHandler ); + } + + $event.preventDefault && $event.preventDefault(); + } ); + + // Prepend the grip to the dialog. + dialog.on( 'load', function() { + var direction = ''; + if ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH ) + direction = ' cke_resizer_horizontal'; + else if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT ) + direction = ' cke_resizer_vertical'; + var resizer = CKEDITOR.dom.element.createFromHtml( + '' + + // BLACK LOWER RIGHT TRIANGLE (ltr) + // BLACK LOWER LEFT TRIANGLE (rtl) + ( editor.lang.dir == 'ltr' ? '\u25E2' : '\u25E3' ) + + '' ); + dialog.parts.footer.append( resizer, 1 ); + } ); + editor.on( 'destroy', function() { + CKEDITOR.tools.removeFunction( mouseDownFn ); + } ); + + function mouseMoveHandler( evt ) { + var rtl = editor.lang.dir == 'rtl', + dx = ( evt.data.$.screenX - origin.x ) * ( rtl ? -1 : 1 ), + dy = evt.data.$.screenY - origin.y, + width = startSize.width, + height = startSize.height, + internalWidth = width + dx * ( dialog._.moved ? 1 : 2 ), + internalHeight = height + dy * ( dialog._.moved ? 1 : 2 ), + element = dialog._.element.getFirst(), + right = rtl && element.getComputedStyle( 'right' ), + position = dialog.getPosition(); + + if ( position.y + internalHeight > viewSize.height ) + internalHeight = viewSize.height - position.y; + + if ( ( rtl ? right : position.x ) + internalWidth > viewSize.width ) + internalWidth = viewSize.width - ( rtl ? right : position.x ); + + // Make sure the dialog will not be resized to the wrong side when it's in the leftmost position for RTL. + if ( ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) ) + width = Math.max( def.minWidth || 0, internalWidth - wrapperWidth ); + + if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) + height = Math.max( def.minHeight || 0, internalHeight - wrapperHeight ); + + dialog.resize( width, height ); + + if ( !dialog._.moved ) + dialog.layout(); + + evt.data.preventDefault(); + } + + function mouseUpHandler() { + CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler ); + CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler ); + + if ( dialogCover ) { + dialogCover.remove(); + dialogCover = null; + } + + if ( CKEDITOR.env.ie6Compat ) { + var coverDoc = currentCover.getChild( 0 ).getFrameDocument(); + coverDoc.removeListener( 'mouseup', mouseUpHandler ); + coverDoc.removeListener( 'mousemove', mouseMoveHandler ); + } + } + } + + var resizeCover; + // Caching resuable covers and allowing only one cover + // on screen. + var covers = {}, + currentCover; + + function cancelEvent( ev ) { + ev.data.preventDefault( 1 ); + } + + function showCover( editor ) { + var win = CKEDITOR.document.getWindow(); + var config = editor.config, + backgroundColorStyle = config.dialog_backgroundCoverColor || 'white', + backgroundCoverOpacity = config.dialog_backgroundCoverOpacity, + baseFloatZIndex = config.baseFloatZIndex, + coverKey = CKEDITOR.tools.genKey( backgroundColorStyle, backgroundCoverOpacity, baseFloatZIndex ), + coverElement = covers[ coverKey ]; + + if ( !coverElement ) { + var html = [ + '
    ' + ]; + + if ( CKEDITOR.env.ie6Compat ) { + // Support for custom document.domain in IE. + var iframeHtml = ''; + + html.push( '' + + '' ); + } + + html.push( '
    ' ); + + coverElement = CKEDITOR.dom.element.createFromHtml( html.join( '' ) ); + coverElement.setOpacity( backgroundCoverOpacity != undefined ? backgroundCoverOpacity : 0.5 ); + + coverElement.on( 'keydown', cancelEvent ); + coverElement.on( 'keypress', cancelEvent ); + coverElement.on( 'keyup', cancelEvent ); + + coverElement.appendTo( CKEDITOR.document.getBody() ); + covers[ coverKey ] = coverElement; + } else + coverElement.show(); + + // Makes the dialog cover a focus holder as well. + editor.focusManager.add( coverElement ); + + currentCover = coverElement; + var resizeFunc = function() { + var size = win.getViewPaneSize(); + coverElement.setStyles( { + width: size.width + 'px', + height: size.height + 'px' + } ); + }; + + var scrollFunc = function() { + var pos = win.getScrollPosition(), + cursor = CKEDITOR.dialog._.currentTop; + coverElement.setStyles( { + left: pos.x + 'px', + top: pos.y + 'px' + } ); + + if ( cursor ) { + do { + var dialogPos = cursor.getPosition(); + cursor.move( dialogPos.x, dialogPos.y ); + } while ( ( cursor = cursor._.parentDialog ) ); + } + }; + + resizeCover = resizeFunc; + win.on( 'resize', resizeFunc ); + resizeFunc(); + // Using Safari/Mac, focus must be kept where it is (#7027) + if ( !( CKEDITOR.env.mac && CKEDITOR.env.webkit ) ) + coverElement.focus(); + + if ( CKEDITOR.env.ie6Compat ) { + // IE BUG: win.$.onscroll assignment doesn't work.. it must be window.onscroll. + // So we need to invent a really funny way to make it work. + var myScrollHandler = function() { + scrollFunc(); + arguments.callee.prevScrollHandler.apply( this, arguments ); + }; + win.$.setTimeout( function() { + myScrollHandler.prevScrollHandler = window.onscroll || + function() {}; + window.onscroll = myScrollHandler; + }, 0 ); + scrollFunc(); + } + } + + function hideCover( editor ) { + if ( !currentCover ) + return; + + editor.focusManager.remove( currentCover ); + var win = CKEDITOR.document.getWindow(); + currentCover.hide(); + win.removeListener( 'resize', resizeCover ); + + if ( CKEDITOR.env.ie6Compat ) { + win.$.setTimeout( function() { + var prevScrollHandler = window.onscroll && window.onscroll.prevScrollHandler; + window.onscroll = prevScrollHandler || null; + }, 0 ); + } + resizeCover = null; + } + + function removeCovers() { + for ( var coverId in covers ) + covers[ coverId ].remove(); + covers = {}; + } + + var accessKeyProcessors = {}; + + var accessKeyDownHandler = function( evt ) { + var ctrl = evt.data.$.ctrlKey || evt.data.$.metaKey, + alt = evt.data.$.altKey, + shift = evt.data.$.shiftKey, + key = String.fromCharCode( evt.data.$.keyCode ), + keyProcessor = accessKeyProcessors[ ( ctrl ? 'CTRL+' : '' ) + ( alt ? 'ALT+' : '' ) + ( shift ? 'SHIFT+' : '' ) + key ]; + + if ( !keyProcessor || !keyProcessor.length ) + return; + + keyProcessor = keyProcessor[ keyProcessor.length - 1 ]; + keyProcessor.keydown && keyProcessor.keydown.call( keyProcessor.uiElement, keyProcessor.dialog, keyProcessor.key ); + evt.data.preventDefault(); + }; + + var accessKeyUpHandler = function( evt ) { + var ctrl = evt.data.$.ctrlKey || evt.data.$.metaKey, + alt = evt.data.$.altKey, + shift = evt.data.$.shiftKey, + key = String.fromCharCode( evt.data.$.keyCode ), + keyProcessor = accessKeyProcessors[ ( ctrl ? 'CTRL+' : '' ) + ( alt ? 'ALT+' : '' ) + ( shift ? 'SHIFT+' : '' ) + key ]; + + if ( !keyProcessor || !keyProcessor.length ) + return; + + keyProcessor = keyProcessor[ keyProcessor.length - 1 ]; + if ( keyProcessor.keyup ) { + keyProcessor.keyup.call( keyProcessor.uiElement, keyProcessor.dialog, keyProcessor.key ); + evt.data.preventDefault(); + } + }; + + var registerAccessKey = function( uiElement, dialog, key, downFunc, upFunc ) { + var procList = accessKeyProcessors[ key ] || ( accessKeyProcessors[ key ] = [] ); + procList.push( { + uiElement: uiElement, + dialog: dialog, + key: key, + keyup: upFunc || uiElement.accessKeyUp, + keydown: downFunc || uiElement.accessKeyDown + } ); + }; + + var unregisterAccessKey = function( obj ) { + for ( var i in accessKeyProcessors ) { + var list = accessKeyProcessors[ i ]; + for ( var j = list.length - 1; j >= 0; j-- ) { + if ( list[ j ].dialog == obj || list[ j ].uiElement == obj ) + list.splice( j, 1 ); + } + if ( list.length === 0 ) + delete accessKeyProcessors[ i ]; + } + }; + + var tabAccessKeyUp = function( dialog, key ) { + if ( dialog._.accessKeyMap[ key ] ) + dialog.selectPage( dialog._.accessKeyMap[ key ] ); + }; + + var tabAccessKeyDown = function( dialog, key ) {}; + + ( function() { + CKEDITOR.ui.dialog = { + /** + * The base class of all dialog UI elements. + * + * @class CKEDITOR.ui.dialog.uiElement + * @constructor Creates a uiElement class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition Element + * definition. + * + * Accepted fields: + * + * * `id` (Required) The id of the UI element. See {@link CKEDITOR.dialog#getContentElement}. + * * `type` (Required) The type of the UI element. The + * value to this field specifies which UI element class will be used to + * generate the final widget. + * * `title` (Optional) The popup tooltip for the UI + * element. + * * `hidden` (Optional) A flag that tells if the element + * should be initially visible. + * * `className` (Optional) Additional CSS class names + * to add to the UI element. Separated by space. + * * `style` (Optional) Additional CSS inline styles + * to add to the UI element. A semicolon (;) is required after the last + * style declaration. + * * `accessKey` (Optional) The alphanumeric access key + * for this element. Access keys are automatically prefixed by CTRL. + * * `on*` (Optional) Any UI element definition field that + * starts with `on` followed immediately by a capital letter and + * probably more letters is an event handler. Event handlers may be further + * divided into registered event handlers and DOM event handlers. Please + * refer to {@link CKEDITOR.ui.dialog.uiElement#registerEvents} and + * {@link CKEDITOR.ui.dialog.uiElement#eventProcessors} for more information. + * + * @param {Array} htmlList + * List of HTML code to be added to the dialog's content area. + * @param {Function/String} [nodeNameArg='div'] + * A function returning a string, or a simple string for the node name for + * the root DOM node. + * @param {Function/Object} [stylesArg={}] + * A function returning an object, or a simple object for CSS styles applied + * to the DOM node. + * @param {Function/Object} [attributesArg={}] + * A fucntion returning an object, or a simple object for attributes applied + * to the DOM node. + * @param {Function/String} [contentsArg=''] + * A function returning a string, or a simple string for the HTML code inside + * the root DOM node. Default is empty string. + */ + uiElement: function( dialog, elementDefinition, htmlList, nodeNameArg, stylesArg, attributesArg, contentsArg ) { + if ( arguments.length < 4 ) + return; + + var nodeName = ( nodeNameArg.call ? nodeNameArg( elementDefinition ) : nodeNameArg ) || 'div', + html = [ '<', nodeName, ' ' ], + styles = ( stylesArg && stylesArg.call ? stylesArg( elementDefinition ) : stylesArg ) || {}, + attributes = ( attributesArg && attributesArg.call ? attributesArg( elementDefinition ) : attributesArg ) || {}, + innerHTML = ( contentsArg && contentsArg.call ? contentsArg.call( this, dialog, elementDefinition ) : contentsArg ) || '', + domId = this.domId = attributes.id || CKEDITOR.tools.getNextId() + '_uiElement', + id = this.id = elementDefinition.id, + i; + + if ( elementDefinition.requiredContent && !dialog.getParentEditor().filter.check( elementDefinition.requiredContent ) ) { + styles.display = 'none'; + this.notAllowed = true; + } + + // Set the id, a unique id is required for getElement() to work. + attributes.id = domId; + + // Set the type and definition CSS class names. + var classes = {}; + if ( elementDefinition.type ) + classes[ 'cke_dialog_ui_' + elementDefinition.type ] = 1; + if ( elementDefinition.className ) + classes[ elementDefinition.className ] = 1; + if ( elementDefinition.disabled ) + classes[ 'cke_disabled' ] = 1; + + var attributeClasses = ( attributes[ 'class' ] && attributes[ 'class' ].split ) ? attributes[ 'class' ].split( ' ' ) : []; + for ( i = 0; i < attributeClasses.length; i++ ) { + if ( attributeClasses[ i ] ) + classes[ attributeClasses[ i ] ] = 1; + } + var finalClasses = []; + for ( i in classes ) + finalClasses.push( i ); + attributes[ 'class' ] = finalClasses.join( ' ' ); + + // Set the popup tooltop. + if ( elementDefinition.title ) + attributes.title = elementDefinition.title; + + // Write the inline CSS styles. + var styleStr = ( elementDefinition.style || '' ).split( ';' ); + + // Element alignment support. + if ( elementDefinition.align ) { + var align = elementDefinition.align; + styles[ 'margin-left' ] = align == 'left' ? 0 : 'auto'; + styles[ 'margin-right' ] = align == 'right' ? 0 : 'auto'; + } + + for ( i in styles ) + styleStr.push( i + ':' + styles[ i ] ); + if ( elementDefinition.hidden ) + styleStr.push( 'display:none' ); + for ( i = styleStr.length - 1; i >= 0; i-- ) { + if ( styleStr[ i ] === '' ) + styleStr.splice( i, 1 ); + } + if ( styleStr.length > 0 ) + attributes.style = ( attributes.style ? ( attributes.style + '; ' ) : '' ) + styleStr.join( '; ' ); + + // Write the attributes. + for ( i in attributes ) + html.push( i + '="' + CKEDITOR.tools.htmlEncode( attributes[ i ] ) + '" ' ); + + // Write the content HTML. + html.push( '>', innerHTML, '' ); + + // Add contents to the parent HTML array. + htmlList.push( html.join( '' ) ); + + ( this._ || ( this._ = {} ) ).dialog = dialog; + + // Override isChanged if it is defined in element definition. + if ( typeof( elementDefinition.isChanged ) == 'boolean' ) + this.isChanged = function() { + return elementDefinition.isChanged; + }; + if ( typeof( elementDefinition.isChanged ) == 'function' ) + this.isChanged = elementDefinition.isChanged; + + // Overload 'get(set)Value' on definition. + if ( typeof( elementDefinition.setValue ) == 'function' ) { + this.setValue = CKEDITOR.tools.override( this.setValue, function( org ) { + return function( val ) { + org.call( this, elementDefinition.setValue.call( this, val ) ); + }; + } ); + } + + if ( typeof( elementDefinition.getValue ) == 'function' ) { + this.getValue = CKEDITOR.tools.override( this.getValue, function( org ) { + return function() { + return elementDefinition.getValue.call( this, org.call( this ) ); + }; + } ); + } + + // Add events. + CKEDITOR.event.implementOn( this ); + + this.registerEvents( elementDefinition ); + if ( this.accessKeyUp && this.accessKeyDown && elementDefinition.accessKey ) + registerAccessKey( this, dialog, 'CTRL+' + elementDefinition.accessKey ); + + var me = this; + dialog.on( 'load', function() { + var input = me.getInputElement(); + if ( input ) { + var focusClass = me.type in { 'checkbox': 1, 'ratio': 1 } && CKEDITOR.env.ie && CKEDITOR.env.version < 8 ? 'cke_dialog_ui_focused' : ''; + input.on( 'focus', function() { + dialog._.tabBarMode = false; + dialog._.hasFocus = true; + me.fire( 'focus' ); + focusClass && this.addClass( focusClass ); + + } ); + + input.on( 'blur', function() { + me.fire( 'blur' ); + focusClass && this.removeClass( focusClass ); + } ); + } + } ); + + // Completes this object with everything we have in the + // definition. + CKEDITOR.tools.extend( this, elementDefinition ); + + // Register the object as a tab focus if it can be included. + if ( this.keyboardFocusable ) { + this.tabIndex = elementDefinition.tabIndex || 0; + + this.focusIndex = dialog._.focusList.push( this ) - 1; + this.on( 'focus', function() { + dialog._.currentFocusIndex = me.focusIndex; + } ); + } + }, + + /** + * Horizontal layout box for dialog UI elements, auto-expends to available width of container. + * + * @class CKEDITOR.ui.dialog.hbox + * @extends CKEDITOR.ui.dialog.uiElement + * @constructor Creates a hbox class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {Array} childObjList + * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container. + * @param {Array} childHtmlList + * Array of HTML code that correspond to the HTML output of all the + * objects in childObjList. + * @param {Array} htmlList + * Array of HTML code that this element will output to. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `widths` (Optional) The widths of child cells. + * * `height` (Optional) The height of the layout. + * * `padding` (Optional) The padding width inside child cells. + * * `align` (Optional) The alignment of the whole layout. + */ + hbox: function( dialog, childObjList, childHtmlList, htmlList, elementDefinition ) { + if ( arguments.length < 4 ) + return; + + this._ || ( this._ = {} ); + + var children = this._.children = childObjList, + widths = elementDefinition && elementDefinition.widths || null, + height = elementDefinition && elementDefinition.height || null, + styles = {}, + i; + /** @ignore */ + var innerHTML = function() { + var html = [ '
    ' ); + for ( var i = 0; i < childHtmlList.length; i++ ) { + var styles = []; + html.push( '' ); + } + html.push( '
    0 ) + html.push( 'style="', styles.join( '; ' ), '" ' ); + html.push( ' class="cke_dialog_ui_vbox_child">', childHtmlList[ i ], '
    ' ); + return html.join( '' ); + }; + CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition || { type: 'vbox' }, htmlList, 'div', null, { role: 'presentation' }, innerHTML ); + } + }; + } )(); + + /** @class CKEDITOR.ui.dialog.uiElement */ + CKEDITOR.ui.dialog.uiElement.prototype = { + /** + * Gets the root DOM element of this dialog UI object. + * + * uiElement.getElement().hide(); + * + * @returns {CKEDITOR.dom.element} Root DOM element of UI object. + */ + getElement: function() { + return CKEDITOR.document.getById( this.domId ); + }, + + /** + * Gets the DOM element that the user inputs values. + * + * This function is used by {@link #setValue}, {@link #getValue} and {@link #focus}. It should + * be overrided in child classes where the input element isn't the root + * element. + * + * var rawValue = textInput.getInputElement().$.value; + * + * @returns {CKEDITOR.dom.element} The element where the user input values. + */ + getInputElement: function() { + return this.getElement(); + }, + + /** + * Gets the parent dialog object containing this UI element. + * + * var dialog = uiElement.getDialog(); + * + * @returns {CKEDITOR.dialog} Parent dialog object. + */ + getDialog: function() { + return this._.dialog; + }, + + /** + * Sets the value of this dialog UI object. + * + * uiElement.setValue( 'Dingo' ); + * + * @chainable + * @param {Object} value The new value. + * @param {Boolean} noChangeEvent Internal commit, to supress `change` event on this element. + */ + setValue: function( value, noChangeEvent ) { + this.getInputElement().setValue( value ); + !noChangeEvent && this.fire( 'change', { value: value } ); + return this; + }, + + /** + * Gets the current value of this dialog UI object. + * + * var myValue = uiElement.getValue(); + * + * @returns {Object} The current value. + */ + getValue: function() { + return this.getInputElement().getValue(); + }, + + /** + * Tells whether the UI object's value has changed. + * + * if ( uiElement.isChanged() ) + * confirm( 'Value changed! Continue?' ); + * + * @returns {Boolean} `true` if changed, `false` if not changed. + */ + isChanged: function() { + // Override in input classes. + return false; + }, + + /** + * Selects the parent tab of this element. Usually called by focus() or overridden focus() methods. + * + * focus : function() { + * this.selectParentTab(); + * // do something else. + * } + * + * @chainable + */ + selectParentTab: function() { + var element = this.getInputElement(), + cursor = element, + tabId; + while ( ( cursor = cursor.getParent() ) && cursor.$.className.search( 'cke_dialog_page_contents' ) == -1 ) { + /*jsl:pass*/ + } + + // Some widgets don't have parent tabs (e.g. OK and Cancel buttons). + if ( !cursor ) + return this; + + tabId = cursor.getAttribute( 'name' ); + // Avoid duplicate select. + if ( this._.dialog._.currentTabId != tabId ) + this._.dialog.selectPage( tabId ); + return this; + }, + + /** + * Puts the focus to the UI object. Switches tabs if the UI object isn't in the active tab page. + * + * uiElement.focus(); + * + * @chainable + */ + focus: function() { + this.selectParentTab().getInputElement().focus(); + return this; + }, + + /** + * Registers the `on*` event handlers defined in the element definition. + * + * The default behavior of this function is: + * + * 1. If the on* event is defined in the class's eventProcesors list, + * then the registration is delegated to the corresponding function + * in the eventProcessors list. + * 2. If the on* event is not defined in the eventProcessors list, then + * register the event handler under the corresponding DOM event of + * the UI element's input DOM element (as defined by the return value + * of {@link #getInputElement}). + * + * This function is only called at UI element instantiation, but can + * be overridded in child classes if they require more flexibility. + * + * @chainable + * @param {CKEDITOR.dialog.definition.uiElement} definition The UI element + * definition. + */ + registerEvents: function( definition ) { + var regex = /^on([A-Z]\w+)/, + match; + + var registerDomEvent = function( uiElement, dialog, eventName, func ) { + dialog.on( 'load', function() { + uiElement.getInputElement().on( eventName, func, uiElement ); + } ); + }; + + for ( var i in definition ) { + if ( !( match = i.match( regex ) ) ) + continue; + if ( this.eventProcessors[ i ] ) + this.eventProcessors[ i ].call( this, this._.dialog, definition[ i ] ); + else + registerDomEvent( this, this._.dialog, match[ 1 ].toLowerCase(), definition[ i ] ); + } + + return this; + }, + + /** + * The event processor list used by + * {@link CKEDITOR.ui.dialog.uiElement#getInputElement} at UI element + * instantiation. The default list defines three `on*` events: + * + * 1. `onLoad` - Called when the element's parent dialog opens for the + * first time. + * 2. `onShow` - Called whenever the element's parent dialog opens. + * 3. `onHide` - Called whenever the element's parent dialog closes. + * + * // This connects the 'click' event in CKEDITOR.ui.dialog.button to onClick + * // handlers in the UI element's definitions. + * CKEDITOR.ui.dialog.button.eventProcessors = CKEDITOR.tools.extend( {}, + * CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors, + * { onClick : function( dialog, func ) { this.on( 'click', func ); } }, + * true + * ); + * + * @property {Object} + */ + eventProcessors: { + onLoad: function( dialog, func ) { + dialog.on( 'load', func, this ); + }, + + onShow: function( dialog, func ) { + dialog.on( 'show', func, this ); + }, + + onHide: function( dialog, func ) { + dialog.on( 'hide', func, this ); + } + }, + + /** + * The default handler for a UI element's access key down event, which + * tries to put focus to the UI element. + * + * Can be overridded in child classes for more sophisticaed behavior. + * + * @param {CKEDITOR.dialog} dialog The parent dialog object. + * @param {String} key The key combination pressed. Since access keys + * are defined to always include the `CTRL` key, its value should always + * include a `'CTRL+'` prefix. + */ + accessKeyDown: function( dialog, key ) { + this.focus(); + }, + + /** + * The default handler for a UI element's access key up event, which + * does nothing. + * + * Can be overridded in child classes for more sophisticated behavior. + * + * @param {CKEDITOR.dialog} dialog The parent dialog object. + * @param {String} key The key combination pressed. Since access keys + * are defined to always include the `CTRL` key, its value should always + * include a `'CTRL+'` prefix. + */ + accessKeyUp: function( dialog, key ) {}, + + /** + * Disables a UI element. + */ + disable: function() { + var element = this.getElement(), + input = this.getInputElement(); + input.setAttribute( 'disabled', 'true' ); + element.addClass( 'cke_disabled' ); + }, + + /** + * Enables a UI element. + */ + enable: function() { + var element = this.getElement(), + input = this.getInputElement(); + input.removeAttribute( 'disabled' ); + element.removeClass( 'cke_disabled' ); + }, + + /** + * Determines whether an UI element is enabled or not. + * + * @returns {Boolean} Whether the UI element is enabled. + */ + isEnabled: function() { + return !this.getElement().hasClass( 'cke_disabled' ); + }, + + /** + * Determines whether an UI element is visible or not. + * + * @returns {Boolean} Whether the UI element is visible. + */ + isVisible: function() { + return this.getInputElement().isVisible(); + }, + + /** + * Determines whether an UI element is focus-able or not. + * Focus-able is defined as being both visible and enabled. + * + * @returns {Boolean} Whether the UI element can be focused. + */ + isFocusable: function() { + if ( !this.isEnabled() || !this.isVisible() ) + return false; + return true; + } + }; + + /** @class CKEDITOR.ui.dialog.hbox */ + CKEDITOR.ui.dialog.hbox.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement, { + /** + * Gets a child UI element inside this container. + * + * var checkbox = hbox.getChild( [0,1] ); + * checkbox.setValue( true ); + * + * @param {Array/Number} indices An array or a single number to indicate the child's + * position in the container's descendant tree. Omit to get all the children in an array. + * @returns {Array/CKEDITOR.ui.dialog.uiElement} Array of all UI elements in the container + * if no argument given, or the specified UI element if indices is given. + */ + getChild: function( indices ) { + // If no arguments, return a clone of the children array. + if ( arguments.length < 1 ) + return this._.children.concat(); + + // If indices isn't array, make it one. + if ( !indices.splice ) + indices = [ indices ]; + + // Retrieve the child element according to tree position. + if ( indices.length < 2 ) + return this._.children[ indices[ 0 ] ]; + else + return ( this._.children[ indices[ 0 ] ] && this._.children[ indices[ 0 ] ].getChild ) ? this._.children[ indices[ 0 ] ].getChild( indices.slice( 1, indices.length ) ) : null; + } + }, true ); + + CKEDITOR.ui.dialog.vbox.prototype = new CKEDITOR.ui.dialog.hbox(); + + ( function() { + var commonBuilder = { + build: function( dialog, elementDefinition, output ) { + var children = elementDefinition.children, + child, + childHtmlList = [], + childObjList = []; + for ( var i = 0; + ( i < children.length && ( child = children[ i ] ) ); i++ ) { + var childHtml = []; + childHtmlList.push( childHtml ); + childObjList.push( CKEDITOR.dialog._.uiElementBuilders[ child.type ].build( dialog, child, childHtml ) ); + } + return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, childObjList, childHtmlList, output, elementDefinition ); + } + }; + + CKEDITOR.dialog.addUIElement( 'hbox', commonBuilder ); + CKEDITOR.dialog.addUIElement( 'vbox', commonBuilder ); + } )(); + + /** + * Generic dialog command. It opens a specific dialog when executed. + * + * // Register the "link" command, which opens the "link" dialog. + * editor.addCommand( 'link', new CKEDITOR.dialogCommand( 'link' ) ); + * + * @class + * @constructor Creates a dialogCommand class instance. + * @extends CKEDITOR.commandDefinition + * @param {String} dialogName The name of the dialog to open when executing + * this command. + * @param {Object} [ext] Additional command definition's properties. + */ + CKEDITOR.dialogCommand = function( dialogName, ext ) { + this.dialogName = dialogName; + CKEDITOR.tools.extend( this, ext, true ); + }; + + CKEDITOR.dialogCommand.prototype = { + exec: function( editor ) { + // Special treatment for Opera. (#8031) + CKEDITOR.env.opera ? CKEDITOR.tools.setTimeout( function() { + editor.openDialog( this.dialogName ); + }, 0, this ) : editor.openDialog( this.dialogName ); + }, + + // Dialog commands just open a dialog ui, thus require no undo logic, + // undo support should dedicate to specific dialog implementation. + canUndo: false, + + editorFocus: 1 + }; + + ( function() { + var notEmptyRegex = /^([a]|[^a])+$/, + integerRegex = /^\d*$/, + numberRegex = /^\d*(?:\.\d+)?$/, + htmlLengthRegex = /^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/, + cssLengthRegex = /^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i, + inlineStyleRegex = /^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/; + + CKEDITOR.VALIDATE_OR = 1; + CKEDITOR.VALIDATE_AND = 2; + + CKEDITOR.dialog.validate = { + functions: function() { + var args = arguments; + return function() { + /** + * It's important for validate functions to be able to accept the value + * as argument in addition to this.getValue(), so that it is possible to + * combine validate functions together to make more sophisticated + * validators. + */ + var value = this && this.getValue ? this.getValue() : args[ 0 ]; + + var msg = undefined, + relation = CKEDITOR.VALIDATE_AND, + functions = [], + i; + + for ( i = 0; i < args.length; i++ ) { + if ( typeof( args[ i ] ) == 'function' ) + functions.push( args[ i ] ); + else + break; + } + + if ( i < args.length && typeof( args[ i ] ) == 'string' ) { + msg = args[ i ]; + i++; + } + + if ( i < args.length && typeof( args[ i ] ) == 'number' ) + relation = args[ i ]; + + var passed = ( relation == CKEDITOR.VALIDATE_AND ? true : false ); + for ( i = 0; i < functions.length; i++ ) { + if ( relation == CKEDITOR.VALIDATE_AND ) + passed = passed && functions[ i ]( value ); + else + passed = passed || functions[ i ]( value ); + } + + return !passed ? msg : true; + }; + }, + + regex: function( regex, msg ) { + /* + * Can be greatly shortened by deriving from functions validator if code size + * turns out to be more important than performance. + */ + return function() { + var value = this && this.getValue ? this.getValue() : arguments[ 0 ]; + return !regex.test( value ) ? msg : true; + }; + }, + + notEmpty: function( msg ) { + return this.regex( notEmptyRegex, msg ); + }, + + integer: function( msg ) { + return this.regex( integerRegex, msg ); + }, + + 'number': function( msg ) { + return this.regex( numberRegex, msg ); + }, + + 'cssLength': function( msg ) { + return this.functions( function( val ) { + return cssLengthRegex.test( CKEDITOR.tools.trim( val ) ); + }, msg ); + }, + + 'htmlLength': function( msg ) { + return this.functions( function( val ) { + return htmlLengthRegex.test( CKEDITOR.tools.trim( val ) ); + }, msg ); + }, + + 'inlineStyle': function( msg ) { + return this.functions( function( val ) { + return inlineStyleRegex.test( CKEDITOR.tools.trim( val ) ); + }, msg ); + }, + + equals: function( value, msg ) { + return this.functions( function( val ) { + return val == value; + }, msg ); + }, + + notEqual: function( value, msg ) { + return this.functions( function( val ) { + return val != value; + }, msg ); + } + }; + + CKEDITOR.on( 'instanceDestroyed', function( evt ) { + // Remove dialog cover on last instance destroy. + if ( CKEDITOR.tools.isEmpty( CKEDITOR.instances ) ) { + var currentTopDialog; + while ( ( currentTopDialog = CKEDITOR.dialog._.currentTop ) ) + currentTopDialog.hide(); + removeCovers(); + } + + var dialogs = evt.editor._.storedDialogs; + for ( var name in dialogs ) + dialogs[ name ].destroy(); + + } ); + + } )(); + + // Extend the CKEDITOR.editor class with dialog specific functions. + CKEDITOR.tools.extend( CKEDITOR.editor.prototype, { + /** + * Loads and opens a registered dialog. + * + * CKEDITOR.instances.editor1.openDialog( 'smiley' ); + * + * @member CKEDITOR.editor + * @param {String} dialogName The registered name of the dialog. + * @param {Function} callback The function to be invoked after dialog instance created. + * @returns {CKEDITOR.dialog} The dialog object corresponding to the dialog displayed. + * `null` if the dialog name is not registered. + * @see CKEDITOR.dialog#add + */ + openDialog: function( dialogName, callback ) { + var dialog = null, dialogDefinitions = CKEDITOR.dialog._.dialogDefinitions[ dialogName ]; + + if ( CKEDITOR.dialog._.currentTop === null ) + showCover( this ); + + // If the dialogDefinition is already loaded, open it immediately. + if ( typeof dialogDefinitions == 'function' ) { + var storedDialogs = this._.storedDialogs || ( this._.storedDialogs = {} ); + + dialog = storedDialogs[ dialogName ] || ( storedDialogs[ dialogName ] = new CKEDITOR.dialog( this, dialogName ) ); + + callback && callback.call( dialog, dialog ); + dialog.show(); + + } else if ( dialogDefinitions == 'failed' ) { + hideCover( this ); + throw new Error( '[CKEDITOR.dialog.openDialog] Dialog "' + dialogName + '" failed when loading definition.' ); + } else if ( typeof dialogDefinitions == 'string' ) { + + CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( dialogDefinitions ), + function() { + var dialogDefinition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ]; + // In case of plugin error, mark it as loading failed. + if ( typeof dialogDefinition != 'function' ) + CKEDITOR.dialog._.dialogDefinitions[ dialogName ] = 'failed'; + + this.openDialog( dialogName, callback ); + }, this, 0, 1 ); + } + + CKEDITOR.skin.loadPart( 'dialog' ); + + return dialog; + } + } ); +} )(); + +CKEDITOR.plugins.add( 'dialog', { + requires: 'dialogui', + init: function( editor ) { + editor.on( 'doubleclick', function( evt ) { + if ( evt.data.dialog ) + editor.openDialog( evt.data.dialog ); + }, null, null, 999 ); + } +} ); + +// Dialog related configurations. + +/** + * The color of the dialog background cover. It should be a valid CSS color string. + * + * config.dialog_backgroundCoverColor = 'rgb(255, 254, 253)'; + * + * @cfg {String} [dialog_backgroundCoverColor='white'] + * @member CKEDITOR.config + */ + +/** + * The opacity of the dialog background cover. It should be a number within the + * range `[0.0, 1.0]`. + * + * config.dialog_backgroundCoverOpacity = 0.7; + * + * @cfg {Number} [dialog_backgroundCoverOpacity=0.5] + * @member CKEDITOR.config + */ + +/** + * If the dialog has more than one tab, put focus into the first tab as soon as dialog is opened. + * + * config.dialog_startupFocusTab = true; + * + * @cfg {Boolean} [dialog_startupFocusTab=false] + * @member CKEDITOR.config + */ + +/** + * The distance of magnetic borders used in moving and resizing dialogs, + * measured in pixels. + * + * config.dialog_magnetDistance = 30; + * + * @cfg {Number} [dialog_magnetDistance=20] + * @member CKEDITOR.config + */ + +/** + * The guideline to follow when generating the dialog buttons. There are 3 possible options: + * + * * `'OS'` - the buttons will be displayed in the default order of the user's OS; + * * `'ltr'` - for Left-To-Right order; + * * `'rtl'` - for Right-To-Left order. + * + * Example: + * + * config.dialog_buttonsOrder = 'rtl'; + * + * @since 3.5 + * @cfg {String} [dialog_buttonsOrder='OS'] + * @member CKEDITOR.config + */ + +/** + * The dialog contents to removed. It's a string composed by dialog name and tab name with a colon between them. + * + * Separate each pair with semicolon (see example). + * + * **Note:** All names are case-sensitive. + * + * **Note:** Be cautious when specifying dialog tabs that are mandatory, + * like `'info'`, dialog functionality might be broken because of this! + * + * config.removeDialogTabs = 'flash:advanced;image:Link'; + * + * @since 3.5 + * @cfg {String} [removeDialogTabs=''] + * @member CKEDITOR.config + */ + +/** + * Tells if user should not be asked to confirm close, if any dialog field was modified. + * By default it is set to `false` meaning that the confirmation dialog will be shown. + * + * config.dialog_noConfirmCancel = true; + * + * @since 4.3 + * @cfg {Boolean} [dialog_noConfirmCancel=false] + * @member CKEDITOR.config + */ + +/** + * Fired when a dialog definition is about to be used to create a dialog into + * an editor instance. This event makes it possible to customize the definition + * before creating it. + * + * Note that this event is called only the first time a specific dialog is + * opened. Successive openings will use the cached dialog, and this event will + * not get fired. + * + * @event dialogDefinition + * @member CKEDITOR + * @param {CKEDITOR.dialog.definition} data The dialog defination that + * is being loaded. + * @param {CKEDITOR.editor} editor The editor instance that will use the dialog. + */ + +/** + * Fired when a tab is going to be selected in a dialog. + * + * @event selectPage + * @member CKEDITOR.dialog + * @param data + * @param {String} data.page The id of the page that it's gonna be selected. + * @param {String} data.currentPage The id of the current page. + */ + +/** + * Fired when the user tries to dismiss a dialog. + * + * @event cancel + * @member CKEDITOR.dialog + * @param data + * @param {Boolean} data.hide Whether the event should proceed or not. + */ + +/** + * Fired when the user tries to confirm a dialog. + * + * @event ok + * @member CKEDITOR.dialog + * @param data + * @param {Boolean} data.hide Whether the event should proceed or not. + */ + +/** + * Fired when a dialog is shown. + * + * @event show + * @member CKEDITOR.dialog + */ + +/** + * Fired when a dialog is shown. + * + * @event dialogShow + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param {CKEDITOR.dialog} data The opened dialog instance. + */ + +/** + * Fired when a dialog is hidden. + * + * @event hide + * @member CKEDITOR.dialog + */ + +/** + * Fired when a dialog is hidden. + * + * @event dialogHide + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param {CKEDITOR.dialog} data The hidden dialog instance. + */ + +/** + * Fired when a dialog is being resized. The event is fired on + * both the {@link CKEDITOR.dialog} object and the dialog instance + * since 3.5.3, previously it's available only in the global object. + * + * @static + * @event resize + * @member CKEDITOR.dialog + * @param data + * @param {CKEDITOR.dialog} data.dialog The dialog being resized (if + * it's fired on the dialog itself, this parameter isn't sent). + * @param {String} data.skin The skin name. + * @param {Number} data.width The new width. + * @param {Number} data.height The new height. + */ + +/** + * Fired when a dialog is being resized. The event is fired on + * both the {@link CKEDITOR.dialog} object and the dialog instance + * since 3.5.3, previously it's available only in the global object. + * + * @since 3.5 + * @event resize + * @member CKEDITOR.dialog + * @param data + * @param {Number} data.width The new width. + * @param {Number} data.height The new height. + */ diff --git a/htdocs/includes/ckeditor/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/samples/assets/my_dialog.js similarity index 85% rename from htdocs/includes/ckeditor/ckeditor/samples/plugins/dialog/assets/my_dialog.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/samples/assets/my_dialog.js index 3d8f3694d5f..f0ce5f9445d 100644 --- a/htdocs/includes/ckeditor/ckeditor/samples/plugins/dialog/assets/my_dialog.js +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/samples/assets/my_dialog.js @@ -1,5 +1,5 @@ -/** - * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -46,3 +46,4 @@ CKEDITOR.dialog.add( 'myDialog', function( editor ) { }; } ); +// %LEAVE_UNMINIFIED% %REMOVE_LINE% diff --git a/htdocs/includes/ckeditor/ckeditor/samples/plugins/dialog/dialog.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/samples/dialog.html similarity index 100% rename from htdocs/includes/ckeditor/ckeditor/samples/plugins/dialog/dialog.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/samples/dialog.html diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js new file mode 100644 index 00000000000..506e788ecc9 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js @@ -0,0 +1,200 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +( function() { + + function setupAdvParams( element ) { + var attrName = this.att; + + var value = element && element.hasAttribute( attrName ) && element.getAttribute( attrName ) || ''; + + if ( value !== undefined ) + this.setValue( value ); + } + + function commitAdvParams() { + // Dialogs may use different parameters in the commit list, so, by + // definition, we take the first CKEDITOR.dom.element available. + var element; + + for ( var i = 0; i < arguments.length; i++ ) { + if ( arguments[ i ] instanceof CKEDITOR.dom.element ) { + element = arguments[ i ]; + break; + } + } + + if ( element ) { + var attrName = this.att, + value = this.getValue(); + + if ( value ) + element.setAttribute( attrName, value ); + else + element.removeAttribute( attrName, value ); + } + } + + var defaultTabConfig = { id: 1, dir: 1, classes: 1, styles: 1 }; + + CKEDITOR.plugins.add( 'dialogadvtab', { + requires : 'dialog', + + // Returns allowed content rule for the content created by this plugin. + allowedContent: function( tabConfig ) { + if ( !tabConfig ) + tabConfig = defaultTabConfig; + + var allowedAttrs = []; + if ( tabConfig.id ) + allowedAttrs.push( 'id' ); + if ( tabConfig.dir ) + allowedAttrs.push( 'dir' ); + + var allowed = ''; + + if ( allowedAttrs.length ) + allowed += '[' + allowedAttrs.join( ',' ) + ']'; + + if ( tabConfig.classes ) + allowed += '(*)'; + if ( tabConfig.styles ) + allowed += '{*}'; + + return allowed; + }, + + // @param tabConfig + // id, dir, classes, styles + createAdvancedTab: function( editor, tabConfig, element ) { + if ( !tabConfig ) + tabConfig = defaultTabConfig; + + var lang = editor.lang.common; + + var result = { + id: 'advanced', + label: lang.advancedTab, + title: lang.advancedTab, + elements: [ + { + type: 'vbox', + padding: 1, + children: [] + } + ] + }; + + var contents = []; + + if ( tabConfig.id || tabConfig.dir ) { + if ( tabConfig.id ) { + contents.push( { + id: 'advId', + att: 'id', + type: 'text', + requiredContent: element ? element + '[id]' : null, + label: lang.id, + setup: setupAdvParams, + commit: commitAdvParams + } ); + } + + if ( tabConfig.dir ) { + contents.push( { + id: 'advLangDir', + att: 'dir', + type: 'select', + requiredContent: element ? element + '[dir]' : null, + label: lang.langDir, + 'default': '', + style: 'width:100%', + items: [ + [ lang.notSet, '' ], + [ lang.langDirLTR, 'ltr' ], + [ lang.langDirRTL, 'rtl' ] + ], + setup: setupAdvParams, + commit: commitAdvParams + } ); + } + + result.elements[ 0 ].children.push( { + type: 'hbox', + widths: [ '50%', '50%' ], + children: [].concat( contents ) + } ); + } + + if ( tabConfig.styles || tabConfig.classes ) { + contents = []; + + if ( tabConfig.styles ) { + contents.push( { + id: 'advStyles', + att: 'style', + type: 'text', + requiredContent: element ? element + '{cke-xyz}' : null, + label: lang.styles, + 'default': '', + + validate: CKEDITOR.dialog.validate.inlineStyle( lang.invalidInlineStyle ), + onChange: function() {}, + + getStyle: function( name, defaultValue ) { + var match = this.getValue().match( new RegExp( '(?:^|;)\\s*' + name + '\\s*:\\s*([^;]*)', 'i' ) ); + return match ? match[ 1 ] : defaultValue; + }, + + updateStyle: function( name, value ) { + var styles = this.getValue(); + + var tmp = editor.document.createElement( 'span' ); + tmp.setAttribute( 'style', styles ); + tmp.setStyle( name, value ); + styles = CKEDITOR.tools.normalizeCssText( tmp.getAttribute( 'style' ) ); + + this.setValue( styles, 1 ); + }, + + setup: setupAdvParams, + + commit: commitAdvParams + + } ); + } + + if ( tabConfig.classes ) { + contents.push( { + type: 'hbox', + widths: [ '45%', '55%' ], + children: [ + { + id: 'advCSSClasses', + att: 'class', + type: 'text', + requiredContent: element ? element + '(cke-xyz)' : null, + label: lang.cssClasses, + 'default': '', + setup: setupAdvParams, + commit: commitAdvParams + + } + ] + } ); + } + + result.elements[ 0 ].children.push( { + type: 'hbox', + widths: [ '50%', '50%' ], + children: [].concat( contents ) + } ); + } + + return result; + } + } ); + +} )(); diff --git a/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js new file mode 100644 index 00000000000..4b3721c2748 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js @@ -0,0 +1,1409 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview The "dialogui" plugin. + */ + +CKEDITOR.plugins.add( 'dialogui', { + onLoad: function() { + + var initPrivateObject = function( elementDefinition ) { + this._ || ( this._ = {} ); + this._[ 'default' ] = this._.initValue = elementDefinition[ 'default' ] || ''; + this._.required = elementDefinition[ 'required' ] || false; + var args = [ this._ ]; + for ( var i = 1; i < arguments.length; i++ ) + args.push( arguments[ i ] ); + args.push( true ); + CKEDITOR.tools.extend.apply( CKEDITOR.tools, args ); + return this._; + }, + textBuilder = { + build: function( dialog, elementDefinition, output ) { + return new CKEDITOR.ui.dialog.textInput( dialog, elementDefinition, output ); + } + }, + commonBuilder = { + build: function( dialog, elementDefinition, output ) { + return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, elementDefinition, output ); + } + }, + containerBuilder = { + build: function( dialog, elementDefinition, output ) { + var children = elementDefinition.children, + child, + childHtmlList = [], + childObjList = []; + for ( var i = 0; + ( i < children.length && ( child = children[ i ] ) ); i++ ) { + var childHtml = []; + childHtmlList.push( childHtml ); + childObjList.push( CKEDITOR.dialog._.uiElementBuilders[ child.type ].build( dialog, child, childHtml ) ); + } + return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, childObjList, childHtmlList, output, elementDefinition ); + } + }, + commonPrototype = { + isChanged: function() { + return this.getValue() != this.getInitValue(); + }, + + reset: function( noChangeEvent ) { + this.setValue( this.getInitValue(), noChangeEvent ); + }, + + setInitValue: function() { + this._.initValue = this.getValue(); + }, + + resetInitValue: function() { + this._.initValue = this._[ 'default' ]; + }, + + getInitValue: function() { + return this._.initValue; + } + }, + commonEventProcessors = CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors, { + onChange: function( dialog, func ) { + if ( !this._.domOnChangeRegistered ) { + dialog.on( 'load', function() { + this.getInputElement().on( 'change', function() { + // Make sure 'onchange' doesn't get fired after dialog closed. (#5719) + if ( !dialog.parts.dialog.isVisible() ) + return; + + this.fire( 'change', { value: this.getValue() } ); + }, this ); + }, this ); + this._.domOnChangeRegistered = true; + } + + this.on( 'change', func ); + } + }, true ), + eventRegex = /^on([A-Z]\w+)/, + cleanInnerDefinition = function( def ) { + // An inner UI element should not have the parent's type, title or events. + for ( var i in def ) { + if ( eventRegex.test( i ) || i == 'title' || i == 'type' ) + delete def[ i ]; + } + return def; + }; + + CKEDITOR.tools.extend( CKEDITOR.ui.dialog, { + /** + * Base class for all dialog elements with a textual label on the left. + * + * @class CKEDITOR.ui.dialog.labeledElement + * @extends CKEDITOR.ui.dialog.uiElement + * @constructor Creates a labeledElement class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `label` (Required) The label string. + * * `labelLayout` (Optional) Put 'horizontal' here if the + * label element is to be layed out horizontally. Otherwise a vertical + * layout will be used. + * * `widths` (Optional) This applies only for horizontal + * layouts - an 2-element array of lengths to specify the widths of the + * label and the content element. + * + * @param {Array} htmlList List of HTML code to output to. + * @param {Function} contentHtml + * A function returning the HTML code string to be added inside the content + * cell. + */ + labeledElement: function( dialog, elementDefinition, htmlList, contentHtml ) { + if ( arguments.length < 4 ) + return; + + var _ = initPrivateObject.call( this, elementDefinition ); + _.labelId = CKEDITOR.tools.getNextId() + '_label'; + var children = this._.children = []; + + var innerHTML = function() { + var html = [], + requiredClass = elementDefinition.required ? ' cke_required' : ''; + if ( elementDefinition.labelLayout != 'horizontal' ) { + html.push( + '', + '
    ', + contentHtml.call( this, dialog, elementDefinition ), + '
    ' ); + } else { + var hboxDefinition = { + type: 'hbox', + widths: elementDefinition.widths, + padding: 0, + children: [ + { + type: 'html', + html: '