diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index a0136f66010e141f0707f26d4be9500397aa4579..61130a13622f750231d80907c1eb8c8d58246b53 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -163,7 +163,23 @@ class installer_dist extends installer_base { if(!is_group($cf['vmail_groupname'])) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'useradd -g '.$cf['vmail_groupname'].' -u '.$cf['vmail_userid'].' '.$cf['vmail_username'].' -d '.$cf['vmail_mailbox_base'].' -m'; - if(!is_user($cf['vmail_username'])) caselog("$command &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + if(!is_user($cf['vmail_username'])) caselog("$command &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* These postconf commands will be executed on installation and update + $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM server WHERE server_id = ".$conf['server_id']); + $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config'])); + unset($server_ini_rec); + + //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removeal after an update + $rbl_list = ''; + if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') { + $rbl_hosts = explode(",",str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list'])); + foreach ($rbl_hosts as $key => $value) { + $rbl_list .= ", reject_rbl_client ". $value; + } + } + unset($rbl_hosts); + unset($server_ini_array); //* These postconf commands will be executed on installation and update $postconf_placeholders = array('{config_dir}' => $config_dir, diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 57b2cd6d6f37739d33d4c0c41220c157a7815614..7a2fa264db4f012f01eed84255c3f13140b13089 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -178,6 +178,22 @@ class installer_dist extends installer_base { if($cf['vmail_mailbox_base'] != '' && strlen($cf['vmail_mailbox_base']) >= 10 && $this->is_update === false) exec('chown -R '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base']); + //* These postconf commands will be executed on installation and update + $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM server WHERE server_id = ".$conf['server_id']); + $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config'])); + unset($server_ini_rec); + + //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removeal after an update + $rbl_list = ''; + if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') { + $rbl_hosts = explode(",",str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list'])); + foreach ($rbl_hosts as $key => $value) { + $rbl_list .= ", reject_rbl_client ". $value; + } + } + unset($rbl_hosts); + unset($server_ini_array); + //* These postconf commands will be executed on installation and update $postconf_placeholders = array('{config_dir}' => $config_dir, '{vmail_mailbox_base}' => $cf['vmail_mailbox_base'], diff --git a/install/install.php b/install/install.php index 96c164ca24107a2d2830a20557a94c28c7f48401..c6b85a3bebdde2886c0f42e8aa4456067a535a98 100644 --- a/install/install.php +++ b/install/install.php @@ -571,7 +571,8 @@ if($install_mode == 'standard') { }*/ //** Configure ISPConfig :-) - if(strtolower($inst->simple_query('Install ISPConfig Web Interface',array('y','n'),'y')) == 'y') { + $install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == 'y')?'n':'y'; + if(strtolower($inst->simple_query('Install ISPConfig Web Interface',array('y','n'),$install_ispconfig_interface_default)) == 'y') { swriteln('Installing ISPConfig'); //** We want to check if the server is a module or cgi based php enabled server diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 2c975584eac30f8d68674d3508d356d276787c59..1e8459e2a5a2fcddcd21cabc0e2323f29662ee01 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -400,7 +400,7 @@ class installer_base { $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); } - $query = "GRANT SELECT, UPDATE(`status`) ON ".$value['db'].".`sys_datalog` TO '".$value['user']."'@'".$host."' "; + $query = "GRANT SELECT, UPDATE(`status`, `error`) ON ".$value['db'].".`sys_datalog` TO '".$value['user']."'@'".$host."' "; if ($verbose){ echo $query ."\n"; } @@ -2094,8 +2094,8 @@ class installer_base { } $root_cron_jobs = array( - "* * * * * ".$install_dir."/server/server.sh > /dev/null 2>> ".$conf['ispconfig_log_dir']."/cron.log", - "30 00 * * * ".$install_dir."/server/cron_daily.sh > /dev/null 2>> ".$conf['ispconfig_log_dir']."/cron.log" + "* * * * * ".$install_dir."/server/server.sh 2>&1 > /dev/null | while read line; do echo `/bin/date` \"\$line\" >> ".$conf['ispconfig_log_dir']."/cron.log; done", + "30 00 * * * ".$install_dir."/server/cron_daily.sh 2>&1 > /dev/null | while read line; do echo `/bin/date` \"\$line\" >> ".$conf['ispconfig_log_dir']."/cron.log; done" ); if ($conf['nginx']['installed'] == true) { diff --git a/install/lib/mysql.lib.php b/install/lib/mysql.lib.php index 0dc8f4bbbd9ba0e5589654122ed73d7d303ee009..b7f1ae8726373e0913d66b71f2b5c91505d0765f 100644 --- a/install/lib/mysql.lib.php +++ b/install/lib/mysql.lib.php @@ -35,7 +35,7 @@ class db var $dbUser = ""; // database authorized user var $dbPass = ""; // user's password var $dbCharset = ""; // what charset comes and goes to mysql: utf8 / latin1 - var $linkId = 0; // last result of mysql_connect() + var $linkId = false; // last result of mysql_connect() var $queryId = 0; // last result of mysql_query() var $record = array(); // last record fetched var $autoCommit = 1; // Autocommit Transactions @@ -61,8 +61,8 @@ class db // error handler function updateError($location) { - $this->errorNumber = mysql_errno(); - $this->errorMessage = mysql_error(); + $this->errorNumber = mysqli_errno($this->linkId); + $this->errorMessage = mysqli_error($this->linkId); $this->errorLocation = $location; if($this->errorNumber && $this->show_error_messages) { @@ -73,16 +73,16 @@ class db function connect() { - if($this->linkId == 0) + if(!$this->linkId) { - $this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass); + $this->linkId = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass); if(!$this->linkId) { - $this->updateError('DB::connect()
mysql_connect'); + $this->updateError('DB::connect()
mysqli_connect'); return false; } - $this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId); + $this->queryId = @mysqli_query($this->linkId, 'SET NAMES '.$this->dbCharset); } return true; } @@ -94,14 +94,14 @@ class db return false; } if($this->dbName != '') { - if(!mysql_select_db($this->dbName, $this->linkId)) + if(!mysqli_select_db($this->linkId, $this->dbName)) { - $this->updateError('DB::connect()
mysql_select_db'); + $this->updateError('DB::connect()
mysqli_select_db'); return false; } } - $this->queryId = @mysql_query($queryString, $this->linkId); - $this->updateError('DB::query('.$queryString.')
mysql_query'); + $this->queryId = @mysqli_query($this->linkId, $queryString); + $this->updateError('DB::query('.$queryString.')
mysqli_query'); if(!$this->queryId) { return false; @@ -138,8 +138,8 @@ class db // returns the next record in an array function nextRecord() { - $this->record = mysql_fetch_assoc($this->queryId); - $this->updateError('DB::nextRecord()
mysql_fetch_array'); + $this->record = mysqli_fetch_assoc($this->queryId); + $this->updateError('DB::nextRecord()
mysqli_fetch_array'); if(!$this->record || !is_array($this->record)) { return false; @@ -151,18 +151,18 @@ class db // returns number of rows returned by the last select query function numRows() { - return mysql_num_rows($this->queryId); + return mysqli_num_rows($this->queryId); } function affectedRows() { - return mysql_affected_rows($this->linkId); + return mysqli_affected_rows($this->linkId); } // returns mySQL insert id function insertID() { - return mysql_insert_id($this->linkId); + return mysqli_insert_id($this->linkId); } // Check der variablen @@ -175,7 +175,7 @@ class db // Check der variablen function quote($formfield) { - return mysql_real_escape_string($formfield); + return mysqli_real_escape_string($this->linkId, $formfield); } // Check der variablen @@ -359,11 +359,22 @@ class db if($database_name == ''){ $database_name = $this->dbName; } - $result = mysql_query("SHOW TABLES FROM `$database_name`"); + + $tables = $this->queryAllRecords("SHOW TABLES FROM `$database_name`"); + $tb_names = array(); + if(is_array($tables) && !empty($tables)){ + for($i = 0; $i < sizeof($tables); $i++){ + $tb_names[$i] = $tables[$i]['Tables_in_'.$database_name]; + } + } + + /* + $result = mysqli_query("SHOW TABLES FROM `$database_name`"); $tb_names = array(); - for ($i = 0; $i < mysql_num_rows($result); $i++) { + for ($i = 0; $i < mysqli_num_rows($result); $i++) { $tb_names[$i] = mysql_tablename($result, $i); } + */ return $tb_names; } @@ -438,35 +449,7 @@ class db } else { return false; } - - - //$this->createTable('tester',$columns); - - /* - $result = mysql_list_fields($go_info["server"]["db_name"],$table_name); - $fields = mysql_num_fields ($result); - $i = 0; - $table = mysql_field_table ($result, $i); - while ($i < $fields) { - $name = mysql_field_name ($result, $i); - $type = mysql_field_type ($result, $i); - $len = mysql_field_len ($result, $i); - $flags = mysql_field_flags ($result, $i); - print_r($flags); - - $columns = array(name => $name, - type => "", - defaultValue => "", - isnull => 1, - option => ""); - $returnvar[] = $columns; - - $i++; - } - */ - - - + } function mapType($metaType,$typeValue) { diff --git a/install/sql/incremental/upd_0055.sql b/install/sql/incremental/upd_0055.sql index 7bcfa71f3f558b3966ea93a1dd9c16505f312398..3a7c5d58638f1166ea43118a79a9525505161d5d 100644 --- a/install/sql/incremental/upd_0055.sql +++ b/install/sql/incremental/upd_0055.sql @@ -1,2 +1,3 @@ ALTER TABLE `web_backup` CHANGE `backup_type` `backup_type` enum('web','mongodb','mysql') NOT NULL DEFAULT 'web'; ALTER TABLE `web_database_user` ADD `database_password_mongo` varchar(32) DEFAULT NULL AFTER `database_password`; +ALTER TABLE `sys_datalog` ADD `error` MEDIUMTEXT NULL DEFAULT NULL; diff --git a/install/sql/incremental/upd_0056.sql b/install/sql/incremental/upd_0056.sql new file mode 100644 index 0000000000000000000000000000000000000000..c7cb5285cec66cbe19fa2c507668a09cf4aebb6d --- /dev/null +++ b/install/sql/incremental/upd_0056.sql @@ -0,0 +1,12 @@ +CREATE TABLE `client_template_assigned` ( + `assigned_template_id` bigint(20) NOT NULL auto_increment, + `client_id` bigint(11) NOT NULL DEFAULT '0', + `client_template_id` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`assigned_template_id`), + KEY `client_id` (`client_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +ALTER TABLE `client` ADD `gender` enum('','m','f') NOT NULL DEFAULT '' AFTER `company_id`, + ADD `locked` enum('n','y') NOT NULL DEFAULT 'n' AFTER `created_at`, + ADD `canceled` enum('n','y') NOT NULL DEFAULT 'n' AFTER `locked`, + ADD `tmp_data` mediumblob AFTER `canceled` ; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index e9bdf953172b4086bd57334fd4e6e8fbe310ab7f..8480e764481b16a4b88b2cea4a5c0aa60d4096b9 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -145,6 +145,7 @@ CREATE TABLE `client` ( `sys_perm_other` varchar(5) DEFAULT NULL, `company_name` varchar(64) DEFAULT NULL, `company_id` varchar(30) DEFAULT NULL, + `gender` enum('','m','f') NOT NULL DEFAULT '', `contact_name` varchar(64) DEFAULT NULL, `customer_no` varchar(64) DEFAULT NULL, `vat_id` varchar(64) DEFAULT NULL, @@ -225,6 +226,9 @@ CREATE TABLE `client` ( `template_master` int(11) unsigned NOT NULL DEFAULT '0', `template_additional` text NOT NULL DEFAULT '', `created_at` bigint(20) DEFAULT NULL, + `locked` enum('n','y') NOT NULL DEFAULT 'n', + `canceled` enum('n','y') NOT NULL DEFAULT 'n', + `tmp_data` mediumblob, `id_rsa` varchar(2000) NOT NULL DEFAULT '', `ssh_rsa` varchar(600) NOT NULL DEFAULT '', PRIMARY KEY (`client_id`) @@ -315,6 +319,19 @@ CREATE TABLE `client_template` ( -- -------------------------------------------------------- +-- +-- Table structure for table `client_template_assigned` +-- + +CREATE TABLE `client_template_assigned` ( + `assigned_template_id` bigint(20) NOT NULL auto_increment, + `client_id` bigint(11) NOT NULL DEFAULT '0', + `client_template_id` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`assigned_template_id`), + KEY `client_id` (`client_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +-- -------------------------------------------------------- + -- -- Table structure for table `country` -- @@ -1428,6 +1445,7 @@ CREATE TABLE `sys_datalog` ( `user` varchar(255) NOT NULL default '', `data` longtext NOT NULL, `status` set('pending','ok','warning','error') NOT NULL default 'ok', + `error` mediumtext, PRIMARY KEY (`datalog_id`), KEY `server_id` (`server_id`,`status`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; @@ -2179,6 +2197,6 @@ INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`, -- Dumping data for table `sys_config` -- -INSERT INTO sys_config VALUES ('1','db','db_version','3.0.5.2'); +INSERT INTO sys_config VALUES ('1','db','db_version','3.0.5.3'); SET FOREIGN_KEY_CHECKS = 1; diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master index 1c967327b59834db312157710e3f226e8cfd3532..8c8bedd2b73dde2a4ac8fadbdc12e8f59f7655a2 100644 --- a/install/tpl/config.inc.php.master +++ b/install/tpl/config.inc.php.master @@ -56,7 +56,7 @@ $revision = str_replace(array('Revision:','$',' '), '', $svn_revision); //** Application define('ISPC_APP_TITLE', 'ISPConfig'); -define('ISPC_APP_VERSION', '3.0.5.2'); +define('ISPC_APP_VERSION', '3.0.5.3'); define('DEVSYSTEM', 0); diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index 24f7eba57355ced7fe800049d9cfb9461a71afdd..abb89311cda7c023659b22e2001974e36ced87e6 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -41,3 +41,9 @@ tab_change_warning=n use_loadindicator=y use_combobox=y maintenance_mode=n +admin_dashlets_left= +admin_dashlets_right= +reseller_dashlets_left= +reseller_dashlets_right= +client_dashlets_left= +client_dashlets_right= diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php index d8e641d9ab01a37229f6fe06df89560d4f56d117..5a5cbe9a7e13b0d29a7841ee690d8b21380eb209 100644 --- a/interface/lib/classes/aps_guicontroller.inc.php +++ b/interface/lib/classes/aps_guicontroller.inc.php @@ -1,846 +1,846 @@ -getDocNamespaces(true); - foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url); - - return $sxe; - } - - /** - * Applies a RegEx pattern onto a location path in order to secure it against - * code injections and invalid input - * - * @param $location_unfiltered the file path to secure - * @return $location - */ - private function secureLocation($location_unfiltered) - { - // Filter invalid slashes from string - $location = preg_replace(array('#/+#', '#\.+#', '#\0+#', '#\\\\+#'), - array('/', '', '', '/'), - $location_unfiltered); - - // Remove a beginning or trailing slash - if(substr($location, -1) == '/') $location = substr($location, 0, strlen($location) - 1); - if(substr($location, 0, 1) == '/') $location = substr($location, 1); - - return $location; - } - - /** - * Gets the CustomerID (ClientID) which belongs to a specific domain - * - * @param $domain the domain - * @return $customerid - */ - private function getCustomerIDFromDomain($domain) - { - global $app; - $customerid = 0; - - $customerdata = $app->db->queryOneRecord("SELECT client_id FROM sys_group, web_domain - WHERE web_domain.sys_groupid = sys_group.groupid - AND web_domain.domain = '".$app->db->quote($domain)."';"); - if(!empty($customerdata)) $customerid = $customerdata['client_id']; - - return $customerid; - } - - /** - * Returns the server_id for an already installed instance. Is actually - * just a little helper method to avoid redundant code - * - * @param $instanceid the instance to process - * @return $webserver_id the server_id - */ - private function getInstanceDataForDatalog($instanceid) - { - global $app; - $webserver_id = ''; - - $websrv = $app->db->queryOneRecord("SELECT server_id FROM web_domain - WHERE domain = (SELECT value FROM aps_instances_settings - WHERE name = 'main_domain' AND instance_id = ".$app->db->quote($instanceid).");"); - - // If $websrv is empty, an error has occured. Domain no longer existing? Settings table damaged? - // Anyhow, remove this instance record because it's not useful at all - if(empty($websrv)) - { - $app->db->query("DELETE FROM aps_instances WHERE id = ".$app->db->quote($instanceid).";"); - $app->db->query("DELETE FROM aps_instances_settings WHERE instance_id = ".$app->db->quote($instanceid).";"); - } - else $webserver_id = $websrv['server_id']; - - return $webserver_id; - } - - /** - * Finds out if there is a newer package version for - * a given (possibly valid) package ID - * - * @param $id the ID to check - * @return $newer_pkg_id the newer package ID - */ - public function getNewestPackageID($id) - { - global $app; - - if(preg_match('/^[0-9]+$/', $id) != 1) return 0; - - $result = $app->db->queryOneRecord("SELECT id, name, - CONCAT(version, '-', CAST(`release` AS CHAR)) AS current_version - FROM aps_packages - WHERE name = (SELECT name FROM aps_packages WHERE id = ".$app->db->quote($id).") - ORDER BY REPLACE(version, '.', '')+0 DESC, `release` DESC"); - - if(!empty($result) && ($id != $result['id'])) return $result['id']; - - return 0; - } - - /** - * Validates a given package ID - * - * @param $id the ID to check - * @param $is_admin a flag to allow locked IDs too (for admin calls) - * @return boolean - */ - public function isValidPackageID($id, $is_admin = false) - { - global $app; - - if(preg_match('/^[0-9]+$/', $id) != 1) return false; - - $sql_ext = (!$is_admin) ? - 'package_status = '.PACKAGE_ENABLED.' AND' : - '(package_status = '.PACKAGE_ENABLED.' OR package_status = '.PACKAGE_LOCKED.') AND'; - - $result = $app->db->queryOneRecord("SELECT id FROM aps_packages WHERE ".$sql_ext." id = ".$app->db->quote($id).";"); - if(!$result) return false; - - return true; - } - - /** - * Validates a given instance ID - * - * @param $id the ID to check - * @param $client_id the calling client ID - * @param $is_admin a flag to ignore the client ID check for admins - * @return boolean - */ - public function isValidInstanceID($id, $client_id, $is_admin = false) - { - global $app; - - if(preg_match('/^[0-9]+$/', $id) != 1) return false; - - // Only filter if not admin - $sql_ext = (!$is_admin) ? 'customer_id = '.$app->db->quote($client_id).' AND' : ''; - - $result = $app->db->queryOneRecord('SELECT id FROM aps_instances WHERE '.$sql_ext.' id = '.$app->db->quote($id).';'); - if(!$result) return false; - - return true; - } - - /** - * Creates a new database record for the package instance and - * an install task - * - * @param $settings the settings to enter into the DB - * @param $packageid the PackageID - */ - public function createPackageInstance($settings, $packageid) - { - global $app; - - $app->uses('tools_sites'); - - $webserver_id = 0; - $websrv = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain = '".$app->db->quote($settings['main_domain'])."';"); - if(!empty($websrv)) $webserver_id = $websrv['server_id']; - $customerid = $this->getCustomerIDFromDomain($settings['main_domain']); - - if(empty($settings) || empty($webserver_id)) return false; - - //* Get server config of the web server - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($app->functions->intval($websrv["server_id"]),'web'); - - //* Set PHP mode to php-fcgi and enable suexec in website on apache servers / set PHP mode to PHP-FPM on nginx servers - if($web_config['server_type'] == 'apache') { - if(($websrv['php'] != 'fast-cgi' || $websrv['suexec'] != 'y') && $websrv['php'] != 'php-fpm') { - $app->db->datalogUpdate('web_domain', "php = 'fast-cgi', suexec = 'y'", 'domain_id', $websrv['domain_id']); - } - } else { - // nginx - if($websrv['php'] != 'php-fpm' && $websrv['php'] != 'fast-cgi') { - $app->db->datalogUpdate('web_domain', "php = 'php-fpm'", 'domain_id', $websrv['domain_id']); - } - } - - - //* Create the MySQL database for the application - $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($packageid).';'); - $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml'; - $sxe = $this->readInMetaFile($metafile); - - $db_id = parent::getXPathValue($sxe, '//db:id'); - if (!empty($db_id)) { - $global_config = $app->getconf->get_global_config('sites'); - - $tmp = array(); - $tmp['parent_domain_id'] = $websrv['domain_id']; - $tmp['sys_groupid'] = $websrv['sys_groupid']; - $dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $tmp); - $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $tmp); - unset($tmp); - - // get information if the webserver is a db server, too - $web_server = $app->db->queryOneRecord("SELECT server_id,server_name,db_server FROM server WHERE server_id = ".$websrv['server_id']); - if($web_server['db_server'] == 1) { - // create database on "localhost" (webserver) - $mysql_db_server_id = $websrv['server_id']; - $mysql_db_host = 'localhost'; - $mysql_db_remote_access = 'n'; - $mysql_db_remote_ips = ''; - } else { - //* get the default database server of the client - $client = $app->db->queryOneRecord("SELECT default_dbserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ".$websrv['sys_groupid']); - if(is_array($client) && $client['default_dbserver'] > 0 && $client['default_dbserver'] != $websrv['server_id']) { - $mysql_db_server_id = $client['default_dbserver']; - $dbserver_config = $web_config = $app->getconf->get_server_config($app->functions->intval($mysql_db_server_id),'server'); - $mysql_db_host = $dbserver_config['ip_address']; - $mysql_db_remote_access = 'y'; - $webserver_config = $app->getconf->get_server_config($app->functions->intval($websrv['server_id']),'server'); - $mysql_db_remote_ips = $webserver_config['ip_address']; - } else { - /* I left this in place for a fallback that should NEVER! happen. - * if we reach this point it means that there is NO default db server for the client - * AND the webserver has NO db service enabled. - * We have to abort the aps installation here... so I added a return false - * although this does not present any error message to the user. - */ - return false; - - /*$mysql_db_server_id = $websrv['server_id']; - $mysql_db_host = 'localhost'; - $mysql_db_remote_access = 'n'; - $mysql_db_remote_ips = '';*/ - } - } - - //* Find a free db name for the app - for($n = 1; $n <= 1000; $n++) { - $mysql_db_name = ($dbname_prefix != '' ? $dbname_prefix.'aps'.$n : uniqid('aps')); - $tmp = $app->db->queryOneRecord("SELECT count(database_id) as number FROM web_database WHERE database_name = '".$app->db->quote($mysql_db_name)."'"); - if($tmp['number'] == 0) break; - } - //* Find a free db username for the app - for($n = 1; $n <= 1000; $n++) { - $mysql_db_user = ($dbuser_prefix != '' ? $dbuser_prefix.'aps'.$n : uniqid('aps')); - $tmp = $app->db->queryOneRecord("SELECT count(database_user_id) as number FROM web_database_user WHERE database_user = '".$app->db->quote($mysql_db_user)."'"); - if($tmp['number'] == 0) break; - } - - $mysql_db_password = $settings['main_database_password']; - - //* Create the mysql database user - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `database_user`, `database_user_prefix`, `database_password`) - VALUES( ".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', 0, '$mysql_db_user', '".$app->db->quote($dbuser_prefix) . "', PASSWORD('$mysql_db_password'))"; - $mysql_db_user_id = $app->db->datalogInsert('web_database_user', $insert_data, 'database_user_id'); - - //* Create the mysql database - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `parent_domain_id`, `type`, `database_name`, `database_name_prefix`, `database_user_id`, `database_ro_user_id`, `database_charset`, `remote_access`, `remote_ips`, `backup_copies`, `active`, `backup_interval`) - VALUES( ".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', $mysql_db_server_id, ".$websrv['domain_id'].", 'mysql', '$mysql_db_name', '" . $app->db->quote($dbname_prefix) . "', '$mysql_db_user_id', 0, '', '$mysql_db_remote_access', '$mysql_db_remote_ips', ".$websrv['backup_copies'].", 'y', '".$websrv['backup_interval']."')"; - $app->db->datalogInsert('web_database', $insert_data, 'database_id'); - - //* Add db details to package settings - $settings['main_database_host'] = $mysql_db_host; - $settings['main_database_name'] = $mysql_db_name; - $settings['main_database_login'] = $mysql_db_user; - - } - - //* Insert new package instance - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', ".$app->db->quote($webserver_id).",".$app->db->quote($customerid).", ".$app->db->quote($packageid).", ".INSTANCE_PENDING.")"; - $InstanceID = $app->db->datalogInsert('aps_instances', $insert_data, 'id'); - - //* Insert all package settings - if(is_array($settings)) { - foreach($settings as $key => $value) { - $insert_data = "(server_id, instance_id, name, value) VALUES (".$app->db->quote($webserver_id).",".$app->db->quote($InstanceID).", '".$app->db->quote($key)."', '".$app->db->quote($value)."')"; - $app->db->datalogInsert('aps_instances_settings', $insert_data, 'id'); - } - } - - //* Set package status to install afetr we inserted the settings - $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $InstanceID); - } - - /** - * Sets the status of an instance to "should be removed" and creates a - * datalog entry to give the ISPConfig server a real removal advice - * - * @param $instanceid the instance to delete - */ - public function deleteInstance($instanceid) - { - global $app; - /* - $app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_REMOVE." WHERE id = ".$instanceid.";"); - - $webserver_id = $this->getInstanceDataForDatalog($instanceid); - if($webserver_id == '') return; - - // Create a sys_datalog entry for deletion - $datalog = array('Instance_id' => $instanceid, 'server_id' => $webserver_id); - $app->db->datalogSave('aps', 'DELETE', 'id', $instanceid, array(), $datalog); - */ - - $sql = "SELECT web_database.database_id as database_id, web_database.database_user_id as `database_user_id` FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.value = aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1"; - $tmp = $app->db->queryOneRecord($sql); - if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']); - - $database_user = $tmp['database_user_id']; - $tmp = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `database_user_id` = '" . $app->functions->intval($database_user) . "' OR `database_ro_user_id` = '" . $app->functions->intval($database_user) . "'"); - if($tmp['cnt'] < 1) $app->db->datalogDelete('web_database_user', 'database_user_id', $database_user); - - $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_REMOVE, 'id', $instanceid); - - } - - /** - * Sets the status of an instance to "installation planned" and creates a - * datalog entry to re-install the package. The existing package is simply overwritten. - * - * @param $instanceid the instance to delete - */ - public function reinstallInstance($instanceid) - { - global $app; - - /* - $app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_INSTALL." WHERE id = ".$instanceid.";"); - - $webserver_id = $this->getInstanceDataForDatalog($instanceid); - if($webserver_id == '') return; - - // Create a sys_datalog entry for re-installation - $datalog = array('instance_id' => $instanceid, 'server_id' => $webserver_id); - $app->db->datalogSave('aps', 'INSERT', 'id', $instanceid, array(), $datalog); - */ - - $sql = "SELECT web_database.database_id as database_id FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.value = aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1"; - $tmp = $app->db->queryOneRecord($sql); - if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']); - - $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $instanceid); - } - - /** - * Read the settings to be filled when installing - * - * @param $id the internal ID of the package - * @return array - */ - public function getPackageSettings($id) - { - global $app; - - $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';'); - - // Load in meta file if existing and register its namespaces - $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml'; - if(!file_exists($metafile)) - return array('error' => 'The metafile for '.$settings['Name'].' couldn\'t be found'); - - $sxe = $this->readInMetaFile($metafile); - - $groupsettings = parent::getXPathValue($sxe, '//settings/group/setting', true); - if(empty($groupsettings)) return array(); - - $settings = array(); - foreach($groupsettings as $setting) - { - $setting_id = strval($setting['id']); - - if($setting['type'] == 'string' || $setting['type'] == 'email' || $setting['type'] == 'integer' - || $setting['type'] == 'float' || $setting['type'] == 'domain-name') - { - $settings[] = array('SettingID' => $setting_id, - 'SettingName' => $setting->name, - 'SettingDescription' => $setting->description, - 'SettingType' => $setting['type'], - 'SettingInputType' => 'string', - 'SettingDefaultValue' => strval($setting['default-value']), - 'SettingRegex' => $setting['regex'], - 'SettingMinLength' => $setting['min-length'], - 'SettingMaxLength' => $setting['max-length']); - } - else if($setting['type'] == 'password') - { - $settings[] = array('SettingID' => $setting_id, - 'SettingName' => $setting->name, - 'SettingDescription' => $setting->description, - 'SettingType' => 'password', - 'SettingInputType' => 'password', - 'SettingDefaultValue' => '', - 'SettingRegex' => $setting['regex'], - 'SettingMinLength' => $setting['min-length'], - 'SettingMaxLength' => $setting['max-length']); - } - else if($setting['type'] == 'boolean') - { - $settings[] = array('SettingID' => $setting_id, - 'SettingName' => $setting->name, - 'SettingDescription' => $setting->description, - 'SettingType' => 'boolean', - 'SettingInputType' => 'checkbox', - 'SettingDefaultValue' => strval($setting['default-value'])); - } - else if($setting['type'] == 'enum') - { - $choices = array(); - foreach($setting->choice as $choice) - { - $choices[] = array('EnumID' => strval($choice['id']), - 'EnumName' => $choice->name); - } - $settings[] = array('SettingID' => $setting_id, - 'SettingName' => $setting->name, - 'SettingDescription' => $setting->description, - 'SettingType' => 'enum', - 'SettingInputType' => 'select', - 'SettingDefaultValue' => strval($setting['default-value']), - 'SettingChoices' => $choices); - } - } - - return $settings; - } - - /** - * Validates the user input according to the settings array and - * delivers errors if occurring - * - * @param $input the user $_POST array - * @param $pkg_details the package details - * @param $settings the package settings array - * @return array in this structure: - * array(2) { - * ["input"]=> ... - * ["errors"]=> ... - * } - */ - public function validateInstallerInput($postinput, $pkg_details, $domains, $settings = array()) - { - global $app; - - $ret = array(); - $input = array(); - $error = array(); - - // Main domain (obligatory) - if(isset($postinput['main_domain'])) - { - if(!in_array($postinput['main_domain'], $domains)) $error[] = $app->lng('error_main_domain'); - else $input['main_domain'] = $postinput['main_domain']; - } - else $error[] = $app->lng('error_main_domain'); - - // Main location (not obligatory but must be supplied) - if(isset($postinput['main_location'])) - { - $temp_errstr = ''; - // It can be empty but if the user did write something, check it - $userinput = false; - if(strlen($postinput['main_location']) > 0) $userinput = true; - - // Filter invalid input slashes (twice!) - $main_location = $this->secureLocation($postinput['main_location']); - $main_location = $this->secureLocation($main_location); - // Only allow digits, words, / and - - $main_location = preg_replace("/[^\d\w\/\-]/i", "", $main_location); - if($userinput && (strlen($main_location) == 0)) $temp_errstr = $app->lng('error_inv_main_location'); - - // Find out document_root and make sure no apps are installed twice to one location - if(in_array($postinput['main_domain'], $domains)) - { - $docroot = $app->db->queryOneRecord("SELECT document_root FROM web_domain - WHERE domain = '".$app->db->quote($postinput['main_domain'])."';"); - $new_path = $docroot['document_root']; - if(substr($new_path, -1) != '/') $new_path .= '/'; - $new_path .= $main_location; - - // Get the $customerid which belongs to the selected domain - $customerid = $this->getCustomerIDFromDomain($postinput['main_domain']); - - // First get all domains used for an install, then their loop them - // and get the corresponding document roots as well as the defined - // locations. If an existing doc_root + location matches with the - // new one -> error - $instance_domains = $app->db->queryAllRecords("SELECT instance_id, s.value AS domain - FROM aps_instances AS i, aps_instances_settings AS s - WHERE i.id = s.instance_id AND s.name = 'main_domain' - AND i.customer_id = '".$app->db->quote($customerid)."';"); - for($i = 0; $i < count($instance_domains); $i++) - { - $used_path = ''; - - $doc_root = $app->db->queryOneRecord("SELECT document_root FROM web_domain - WHERE domain = '".$app->db->quote($instance_domains[$i]['domain'])."';"); - - // Probably the domain settings were changed later, so make sure the doc_root - // is not empty for further validation - if(!empty($doc_root)) - { - $used_path = $doc_root['document_root']; - if(substr($used_path, -1) != '/') $used_path .= '/'; - - $location_for_domain = $app->db->queryOneRecord("SELECT value - FROM aps_instances_settings WHERE name = 'main_location' - AND instance_id = '".$app->db->quote($instance_domains[$i]['instance_id'])."';"); - - // The location might be empty but the DB return must not be false! - if($location_for_domain) $used_path .= $location_for_domain['value']; - - if($new_path == $used_path) - { - $temp_errstr = $app->lng('error_used_location'); - break; - } - } - } - } - else $temp_errstr = $app->lng('error_main_domain'); - - if($temp_errstr == '') $input['main_location'] = htmlspecialchars($main_location); - else $error[] = $temp_errstr; - } - else $error[] = $app->lng('error_no_main_location'); - - // License (the checkbox must be set) - if(isset($pkg_details['License need agree']) - && $pkg_details['License need agree'] == 'true') - { - if(isset($postinput['license']) && $postinput['license'] == 'on') $input['license'] = 'true'; - else $error[] = $app->lng('error_license_agreement'); - } - - // Database - if(isset($pkg_details['Requirements Database']) - && $pkg_details['Requirements Database'] != '') - { - if(isset($postinput['main_database_password'])) - { - if($postinput['main_database_password'] == '') $error[] = $app->lng('error_no_database_pw'); - else if(strlen($postinput['main_database_password']) > 8) - $input['main_database_password'] = htmlspecialchars($postinput['main_database_password']); - else $error[] = $app->lng('error_short_database_pw'); - } - else $error[] = $app->lng('error_no_database_pw'); - } - - // Validate the package settings - foreach($settings as $setting) - { - $temp_errstr = ''; - $setting_id = strval($setting['SettingID']); - - // We assume that every setting must be set - if((isset($postinput[$setting_id]) && ($postinput[$setting_id] != '')) - || ($setting['SettingType'] == 'boolean')) - { - if($setting['SettingType'] == 'string' || $setting['SettingType'] == 'password') - { - if($app->functions->intval($setting['SettingMinLength'], true) != 0 - && strlen($postinput[$setting_id]) < $app->functions->intval($setting['SettingMinLength'], true)) - $temp_errstr = sprintf($app->lng('error_short_value_for'), $setting['setting_name']); - - if($app->functions->intval($setting['SettingMaxLength'], true) != 0 - && strlen($postinput[$setting_id]) > $app->functions->intval($setting['SettingMaxLength'], true)) - $temp_errstr = sprintf($app->lng('error_long_value_for'), $setting['setting_name']); - - if(isset($setting['SettingRegex']) - && !preg_match("/".$setting['SettingRegex']."/", $postinput[$setting_id])) - $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['setting_name']); - } - else if($setting['SettingType'] == 'email') - { - if(filter_var(strtolower($postinput[$setting_id]), FILTER_VALIDATE_EMAIL) === false) - $temp_errstr = sprintf($app->lng('error_inv_email_for'), $setting['setting_name']); - } - else if($setting['SettingType'] == 'domain-name') - { - if(!preg_match("^(http|https)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*$", - $postinput[$setting_id])) - $temp_errstr = sprintf($app->lng('error_inv_domain_for'), $setting['setting_name']); - } - else if($setting['SettingType'] == 'integer') - { - if(filter_var($postinput[$setting_id], FILTER_VALIDATE_INT) === false) - $temp_errstr = sprintf($app->lng('error_inv_integer_for'), $setting['setting_name']); - } - else if($setting['SettingType'] == 'float') - { - if(filter_var($postinput[$setting_id], FILTER_VALIDATE_FLOAT) === false) - $temp_errstr = sprintf($app->lng('error_inv_float_for'), $setting['setting_name']); - } - else if($setting['SettingType'] == 'boolean') - { - // If we have a boolean value set, it must be either true or false - if(!isset($postinput[$setting_id])) $postinput[$setting_id] = 'false'; - else if(isset($postinput[$setting_id]) && $postinput[$setting_id] != 'true') - $postinput[$setting_id] = 'true'; - } - else if($setting['SettingType'] == 'enum') - { - $found = false; - for($i = 0; $i < count($setting['SettingChoices']); $i++) - { - if($setting['SettingChoices'][$i]['EnumID'] == $postinput[$setting_id]) - $found = true; - } - if(!$found) $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['SettingName']); - } - - if($temp_errstr == '') $input[$setting_id] = $postinput[$setting_id]; - else $error[] = $temp_errstr; - } - else $error[] = sprintf($app->lng('error_no_value_for'), $setting['SettingName']); - } - - $ret['input'] = $input; - $ret['error'] = array_unique($error); - - return $ret; - } - - /** - * Read the metadata of a package and returns some content - * - * @param $id the internal ID of the package - * @return array - */ - public function getPackageDetails($id) - { - global $app; - - $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';'); - - // Load in meta file if existing and register its namespaces - $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml'; - if(!file_exists($metafile)) - return array('error' => 'The metafile for '.$pkg['name'].' couldn\'t be found'); - - $metadata = file_get_contents($metafile); - $metadata = str_replace("xmlns=", "ns=", $metadata); - $sxe = new SimpleXMLElement($metadata); - $namespaces = $sxe->getDocNamespaces(true); - foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url); - - $pkg['Summary'] = htmlspecialchars(parent::getXPathValue($sxe, '//summary')); - $pkg['Homepage'] = parent::getXPathValue($sxe, '//homepage'); - $pkg['Description'] = nl2br(htmlspecialchars(trim(parent::getXPathValue($sxe, '//description')))); - $pkg['Config script'] = strtoupper(parent::getXPathValue($sxe, '//configuration-script-language')); - $installed_size = parent::getXPathValue($sxe, '//installed-size'); - $pkg['Installed Size'] = (!empty($installed_size)) ? parent::convertSize((int)$installed_size) : ''; - - // License - $pkg['License need agree'] = parent::getXPathValue($sxe, '//license/@must-accept'); - $pkg['License name'] = parent::getXPathValue($sxe, '//license/text/name'); // might be empty - $pkg['License type'] = 'file'; // default type - $pkg['License content'] = ''; // default license filename on local system - $license_url = parent::getXPathValue($sxe, '//license/text/url'); - if(!empty($license_url)) - { - $pkg['License type'] = 'url'; - $pkg['License content'] = htmlspecialchars($license_url); - } - else - { - $lic = @file_get_contents($this->interface_pkg_dir.'/'.$pkg['path'].'/LICENSE'); - $pkg['License content'] = htmlentities($lic, ENT_QUOTES, 'ISO-8859-1'); - } - - // Languages - $languages = parent::getXPathValue($sxe, '//languages/language', true); - $pkg['Languages'] = (is_array($languages)) ? implode(' ', $languages) : ''; - - // Icon - $icon = parent::getXPathValue($sxe, '//icon/@path'); - if(!empty($icon)) - { - // Using parse_url() to filter malformed URLs - $path = dirname(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH)).'/'. - basename($this->interface_pkg_dir).'/'.$pkg['path'].'/'.basename((string)$icon); - // nginx: if $_SERVER['PHP_SELF'] is doubled, remove /sites/aps_packagedetails_show.php from beginning of path - $path = preg_replace('@^/sites/aps_packagedetails_show.php(.*)@', '$1', $path); - - $pkg['Icon'] = $path; - } - else $pkg['Icon'] = ''; - - // Screenshots - $screenshots = parent::getXPathValue($sxe, '//screenshot', true); - if(!empty($screenshots)) - { - foreach($screenshots as $screen) - { - // Using parse_url() to filter malformed URLs - $path = dirname(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH)).'/'. - basename($this->interface_pkg_dir).'/'.$pkg['path'].'/'.basename((string)$screen['path']); - // nginx: if $_SERVER['PHP_SELF'] is doubled, remove /sites/aps_packagedetails_show.php from beginning of path - $path = preg_replace('@^/sites/aps_packagedetails_show.php(.*)@', '$1', $path); - - $pkg['Screenshots'][] = array('ScreenPath' => $path, - 'ScreenDescription' => htmlspecialchars(trim((string)$screen->description))); - } - } - else $pkg['Screenshots'] = ''; // if no screenshots are available, set the variable though - - // Changelog - $changelog = parent::getXPathValue($sxe, '//changelog/version', true); - if(!empty($changelog)) - { - foreach($changelog as $change) - { - $entries = array(); - foreach($change->entry as $entry) $entries[] = htmlspecialchars(trim((string)$entry)); - - $pkg['Changelog'][] = array('ChangelogVersion' => (string)$change['version'], - 'ChangelogDescription' => implode('
', $entries)); - } - } - - else $pkg['Changelog'] = ''; - - // PHP extensions - $php_extensions = parent::getXPathValue($sxe, '//php:extension', true); - $php_ext = ''; - if(!empty($php_extensions)) - { - foreach($php_extensions as $extension) - { - if(strtolower($extension) == 'php') continue; - $php_ext .= $extension.' '; - } - } - $pkg['Requirements PHP extensions'] = trim($php_ext); - - // PHP bool options - $pkg['Requirements PHP settings'] = ''; - $php_bool_options = array('allow-url-fopen', 'file-uploads', 'magic-quotes-gpc', - 'register-globals', 'safe-mode', 'short-open-tag'); - foreach($php_bool_options as $option) - { - $value = parent::getXPathValue($sxe, '//php:'.$option); - if(!empty($value)) - { - $option = str_replace('-', '_', $option); - $value = str_replace(array('false', 'true'), array('off', 'on'), $value); - $pkg['Requirements PHP settings'][] = array('PHPSettingName' => $option, - 'PHPSettingValue' => $value); - } - } - - // PHP integer value settings - $memory_limit = parent::getXPathValue($sxe, '//php:memory-limit'); - if(!empty($memory_limit)) - $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'memory_limit', - 'PHPSettingValue' => parent::convertSize((int)$memory_limit)); - - $max_exec_time = parent::getXPathValue($sxe, '//php:max-execution-time'); - if(!empty($max_exec_time)) - $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'max-execution-time', - 'PHPSettingValue' => $max_exec_time); - - $post_max_size = parent::getXPathValue($sxe, '//php:post-max-size'); - if(!empty($post_max_size)) - $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'post_max_size', - 'PHPSettingValue' => parent::convertSize((int)$post_max_size)); - - // Get supported PHP versions - $pkg['Requirements Supported PHP versions'] = ''; - $php_min_version = parent::getXPathValue($sxe, '//php:version/@min'); - $php_max_not_including = parent::getXPathValue($sxe, '//php:version/@max-not-including'); - if(!empty($php_min_version) && !empty($php_max_not_including)) - $pkg['Requirements Supported PHP versions'] = $php_min_version.' - '.$php_max_not_including; - else if(!empty($php_min_version)) - $pkg['Requirements Supported PHP versions'] = '> '.$php_min_version; - else if(!empty($php_max_not_including)) - $pkg['Requirements Supported PHP versions'] = '< '.$php_min_version; - - // Database - $db_id = parent::getXPathValue($sxe, '//db:id'); - $db_server_type = parent::getXPathValue($sxe, '//db:server-type'); - $db_min_version = parent::getXPathValue($sxe, '//db:server-min-version'); - if(!empty($db_id)) - { - $db_server_type = str_replace('postgresql', 'PostgreSQL', $db_server_type); - $db_server_type = str_replace('microsoft:sqlserver', 'MSSQL', $db_server_type); - $db_server_type = str_replace('mysql', 'MySQL', $db_server_type); - - $pkg['Requirements Database'] = $db_server_type; - if(!empty($db_min_version)) $pkg['Requirements Database'] .= ' > '.$db_min_version; - } - else $pkg['Requirements Database'] = ''; - - return $pkg; - } -} -?> +getDocNamespaces(true); + foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url); + + return $sxe; + } + + /** + * Applies a RegEx pattern onto a location path in order to secure it against + * code injections and invalid input + * + * @param $location_unfiltered the file path to secure + * @return $location + */ + private function secureLocation($location_unfiltered) + { + // Filter invalid slashes from string + $location = preg_replace(array('#/+#', '#\.+#', '#\0+#', '#\\\\+#'), + array('/', '', '', '/'), + $location_unfiltered); + + // Remove a beginning or trailing slash + if(substr($location, -1) == '/') $location = substr($location, 0, strlen($location) - 1); + if(substr($location, 0, 1) == '/') $location = substr($location, 1); + + return $location; + } + + /** + * Gets the CustomerID (ClientID) which belongs to a specific domain + * + * @param $domain the domain + * @return $customerid + */ + private function getCustomerIDFromDomain($domain) + { + global $app; + $customerid = 0; + + $customerdata = $app->db->queryOneRecord("SELECT client_id FROM sys_group, web_domain + WHERE web_domain.sys_groupid = sys_group.groupid + AND web_domain.domain = '".$app->db->quote($domain)."';"); + if(!empty($customerdata)) $customerid = $customerdata['client_id']; + + return $customerid; + } + + /** + * Returns the server_id for an already installed instance. Is actually + * just a little helper method to avoid redundant code + * + * @param $instanceid the instance to process + * @return $webserver_id the server_id + */ + private function getInstanceDataForDatalog($instanceid) + { + global $app; + $webserver_id = ''; + + $websrv = $app->db->queryOneRecord("SELECT server_id FROM web_domain + WHERE domain = (SELECT value FROM aps_instances_settings + WHERE name = 'main_domain' AND instance_id = ".$app->db->quote($instanceid).");"); + + // If $websrv is empty, an error has occured. Domain no longer existing? Settings table damaged? + // Anyhow, remove this instance record because it's not useful at all + if(empty($websrv)) + { + $app->db->query("DELETE FROM aps_instances WHERE id = ".$app->db->quote($instanceid).";"); + $app->db->query("DELETE FROM aps_instances_settings WHERE instance_id = ".$app->db->quote($instanceid).";"); + } + else $webserver_id = $websrv['server_id']; + + return $webserver_id; + } + + /** + * Finds out if there is a newer package version for + * a given (possibly valid) package ID + * + * @param $id the ID to check + * @return $newer_pkg_id the newer package ID + */ + public function getNewestPackageID($id) + { + global $app; + + if(preg_match('/^[0-9]+$/', $id) != 1) return 0; + + $result = $app->db->queryOneRecord("SELECT id, name, + CONCAT(version, '-', CAST(`release` AS CHAR)) AS current_version + FROM aps_packages + WHERE name = (SELECT name FROM aps_packages WHERE id = ".$app->db->quote($id).") + ORDER BY REPLACE(version, '.', '')+0 DESC, `release` DESC"); + + if(!empty($result) && ($id != $result['id'])) return $result['id']; + + return 0; + } + + /** + * Validates a given package ID + * + * @param $id the ID to check + * @param $is_admin a flag to allow locked IDs too (for admin calls) + * @return boolean + */ + public function isValidPackageID($id, $is_admin = false) + { + global $app; + + if(preg_match('/^[0-9]+$/', $id) != 1) return false; + + $sql_ext = (!$is_admin) ? + 'package_status = '.PACKAGE_ENABLED.' AND' : + '(package_status = '.PACKAGE_ENABLED.' OR package_status = '.PACKAGE_LOCKED.') AND'; + + $result = $app->db->queryOneRecord("SELECT id FROM aps_packages WHERE ".$sql_ext." id = ".$app->db->quote($id).";"); + if(!$result) return false; + + return true; + } + + /** + * Validates a given instance ID + * + * @param $id the ID to check + * @param $client_id the calling client ID + * @param $is_admin a flag to ignore the client ID check for admins + * @return boolean + */ + public function isValidInstanceID($id, $client_id, $is_admin = false) + { + global $app; + + if(preg_match('/^[0-9]+$/', $id) != 1) return false; + + // Only filter if not admin + $sql_ext = (!$is_admin) ? 'customer_id = '.$app->db->quote($client_id).' AND' : ''; + + $result = $app->db->queryOneRecord('SELECT id FROM aps_instances WHERE '.$sql_ext.' id = '.$app->db->quote($id).';'); + if(!$result) return false; + + return true; + } + + /** + * Creates a new database record for the package instance and + * an install task + * + * @param $settings the settings to enter into the DB + * @param $packageid the PackageID + */ + public function createPackageInstance($settings, $packageid) + { + global $app; + + $app->uses('tools_sites'); + + $webserver_id = 0; + $websrv = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain = '".$app->db->quote($settings['main_domain'])."';"); + if(!empty($websrv)) $webserver_id = $websrv['server_id']; + $customerid = $this->getCustomerIDFromDomain($settings['main_domain']); + + if(empty($settings) || empty($webserver_id)) return false; + + //* Get server config of the web server + $app->uses("getconf"); + $web_config = $app->getconf->get_server_config($app->functions->intval($websrv["server_id"]),'web'); + + //* Set PHP mode to php-fcgi and enable suexec in website on apache servers / set PHP mode to PHP-FPM on nginx servers + if($web_config['server_type'] == 'apache') { + if(($websrv['php'] != 'fast-cgi' || $websrv['suexec'] != 'y') && $websrv['php'] != 'php-fpm') { + $app->db->datalogUpdate('web_domain', "php = 'fast-cgi', suexec = 'y'", 'domain_id', $websrv['domain_id']); + } + } else { + // nginx + if($websrv['php'] != 'php-fpm' && $websrv['php'] != 'fast-cgi') { + $app->db->datalogUpdate('web_domain', "php = 'php-fpm'", 'domain_id', $websrv['domain_id']); + } + } + + + //* Create the MySQL database for the application + $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($packageid).';'); + $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml'; + $sxe = $this->readInMetaFile($metafile); + + $db_id = parent::getXPathValue($sxe, '//db:id'); + if (!empty($db_id)) { + $global_config = $app->getconf->get_global_config('sites'); + + $tmp = array(); + $tmp['parent_domain_id'] = $websrv['domain_id']; + $tmp['sys_groupid'] = $websrv['sys_groupid']; + $dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $tmp); + $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $tmp); + unset($tmp); + + // get information if the webserver is a db server, too + $web_server = $app->db->queryOneRecord("SELECT server_id,server_name,db_server FROM server WHERE server_id = ".$websrv['server_id']); + if($web_server['db_server'] == 1) { + // create database on "localhost" (webserver) + $mysql_db_server_id = $websrv['server_id']; + $mysql_db_host = 'localhost'; + $mysql_db_remote_access = 'n'; + $mysql_db_remote_ips = ''; + } else { + //* get the default database server of the client + $client = $app->db->queryOneRecord("SELECT default_dbserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ".$websrv['sys_groupid']); + if(is_array($client) && $client['default_dbserver'] > 0 && $client['default_dbserver'] != $websrv['server_id']) { + $mysql_db_server_id = $client['default_dbserver']; + $dbserver_config = $web_config = $app->getconf->get_server_config($app->functions->intval($mysql_db_server_id),'server'); + $mysql_db_host = $dbserver_config['ip_address']; + $mysql_db_remote_access = 'y'; + $webserver_config = $app->getconf->get_server_config($app->functions->intval($websrv['server_id']),'server'); + $mysql_db_remote_ips = $webserver_config['ip_address']; + } else { + /* I left this in place for a fallback that should NEVER! happen. + * if we reach this point it means that there is NO default db server for the client + * AND the webserver has NO db service enabled. + * We have to abort the aps installation here... so I added a return false + * although this does not present any error message to the user. + */ + return false; + + /*$mysql_db_server_id = $websrv['server_id']; + $mysql_db_host = 'localhost'; + $mysql_db_remote_access = 'n'; + $mysql_db_remote_ips = '';*/ + } + } + + //* Find a free db name for the app + for($n = 1; $n <= 1000; $n++) { + $mysql_db_name = ($dbname_prefix != '' ? $dbname_prefix.'aps'.$n : uniqid('aps')); + $tmp = $app->db->queryOneRecord("SELECT count(database_id) as number FROM web_database WHERE database_name = '".$app->db->quote($mysql_db_name)."'"); + if($tmp['number'] == 0) break; + } + //* Find a free db username for the app + for($n = 1; $n <= 1000; $n++) { + $mysql_db_user = ($dbuser_prefix != '' ? $dbuser_prefix.'aps'.$n : uniqid('aps')); + $tmp = $app->db->queryOneRecord("SELECT count(database_user_id) as number FROM web_database_user WHERE database_user = '".$app->db->quote($mysql_db_user)."'"); + if($tmp['number'] == 0) break; + } + + $mysql_db_password = $settings['main_database_password']; + + //* Create the mysql database user + $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `database_user`, `database_user_prefix`, `database_password`) + VALUES( ".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', 0, '$mysql_db_user', '".$app->db->quote($dbuser_prefix) . "', PASSWORD('$mysql_db_password'))"; + $mysql_db_user_id = $app->db->datalogInsert('web_database_user', $insert_data, 'database_user_id'); + + //* Create the mysql database + $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `parent_domain_id`, `type`, `database_name`, `database_name_prefix`, `database_user_id`, `database_ro_user_id`, `database_charset`, `remote_access`, `remote_ips`, `backup_copies`, `active`, `backup_interval`) + VALUES( ".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', $mysql_db_server_id, ".$websrv['domain_id'].", 'mysql', '$mysql_db_name', '" . $app->db->quote($dbname_prefix) . "', '$mysql_db_user_id', 0, '', '$mysql_db_remote_access', '$mysql_db_remote_ips', ".$websrv['backup_copies'].", 'y', '".$websrv['backup_interval']."')"; + $app->db->datalogInsert('web_database', $insert_data, 'database_id'); + + //* Add db details to package settings + $settings['main_database_host'] = $mysql_db_host; + $settings['main_database_name'] = $mysql_db_name; + $settings['main_database_login'] = $mysql_db_user; + + } + + //* Insert new package instance + $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', ".$app->db->quote($webserver_id).",".$app->db->quote($customerid).", ".$app->db->quote($packageid).", ".INSTANCE_PENDING.")"; + $InstanceID = $app->db->datalogInsert('aps_instances', $insert_data, 'id'); + + //* Insert all package settings + if(is_array($settings)) { + foreach($settings as $key => $value) { + $insert_data = "(server_id, instance_id, name, value) VALUES (".$app->db->quote($webserver_id).",".$app->db->quote($InstanceID).", '".$app->db->quote($key)."', '".$app->db->quote($value)."')"; + $app->db->datalogInsert('aps_instances_settings', $insert_data, 'id'); + } + } + + //* Set package status to install afetr we inserted the settings + $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $InstanceID); + } + + /** + * Sets the status of an instance to "should be removed" and creates a + * datalog entry to give the ISPConfig server a real removal advice + * + * @param $instanceid the instance to delete + */ + public function deleteInstance($instanceid) + { + global $app; + /* + $app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_REMOVE." WHERE id = ".$instanceid.";"); + + $webserver_id = $this->getInstanceDataForDatalog($instanceid); + if($webserver_id == '') return; + + // Create a sys_datalog entry for deletion + $datalog = array('Instance_id' => $instanceid, 'server_id' => $webserver_id); + $app->db->datalogSave('aps', 'DELETE', 'id', $instanceid, array(), $datalog); + */ + + $sql = "SELECT web_database.database_id as database_id, web_database.database_user_id as `database_user_id` FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1"; + $tmp = $app->db->queryOneRecord($sql); + if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']); + + $database_user = $tmp['database_user_id']; + $tmp = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `database_user_id` = '" . $app->functions->intval($database_user) . "' OR `database_ro_user_id` = '" . $app->functions->intval($database_user) . "'"); + if($tmp['cnt'] < 1) $app->db->datalogDelete('web_database_user', 'database_user_id', $database_user); + + $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_REMOVE, 'id', $instanceid); + + } + + /** + * Sets the status of an instance to "installation planned" and creates a + * datalog entry to re-install the package. The existing package is simply overwritten. + * + * @param $instanceid the instance to delete + */ + public function reinstallInstance($instanceid) + { + global $app; + + /* + $app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_INSTALL." WHERE id = ".$instanceid.";"); + + $webserver_id = $this->getInstanceDataForDatalog($instanceid); + if($webserver_id == '') return; + + // Create a sys_datalog entry for re-installation + $datalog = array('instance_id' => $instanceid, 'server_id' => $webserver_id); + $app->db->datalogSave('aps', 'INSERT', 'id', $instanceid, array(), $datalog); + */ + + $sql = "SELECT web_database.database_id as database_id FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.value = aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1"; + $tmp = $app->db->queryOneRecord($sql); + if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']); + + $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $instanceid); + } + + /** + * Read the settings to be filled when installing + * + * @param $id the internal ID of the package + * @return array + */ + public function getPackageSettings($id) + { + global $app; + + $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';'); + + // Load in meta file if existing and register its namespaces + $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml'; + if(!file_exists($metafile)) + return array('error' => 'The metafile for '.$settings['Name'].' couldn\'t be found'); + + $sxe = $this->readInMetaFile($metafile); + + $groupsettings = parent::getXPathValue($sxe, '//settings/group/setting', true); + if(empty($groupsettings)) return array(); + + $settings = array(); + foreach($groupsettings as $setting) + { + $setting_id = strval($setting['id']); + + if($setting['type'] == 'string' || $setting['type'] == 'email' || $setting['type'] == 'integer' + || $setting['type'] == 'float' || $setting['type'] == 'domain-name') + { + $settings[] = array('SettingID' => $setting_id, + 'SettingName' => $setting->name, + 'SettingDescription' => $setting->description, + 'SettingType' => $setting['type'], + 'SettingInputType' => 'string', + 'SettingDefaultValue' => strval($setting['default-value']), + 'SettingRegex' => $setting['regex'], + 'SettingMinLength' => $setting['min-length'], + 'SettingMaxLength' => $setting['max-length']); + } + else if($setting['type'] == 'password') + { + $settings[] = array('SettingID' => $setting_id, + 'SettingName' => $setting->name, + 'SettingDescription' => $setting->description, + 'SettingType' => 'password', + 'SettingInputType' => 'password', + 'SettingDefaultValue' => '', + 'SettingRegex' => $setting['regex'], + 'SettingMinLength' => $setting['min-length'], + 'SettingMaxLength' => $setting['max-length']); + } + else if($setting['type'] == 'boolean') + { + $settings[] = array('SettingID' => $setting_id, + 'SettingName' => $setting->name, + 'SettingDescription' => $setting->description, + 'SettingType' => 'boolean', + 'SettingInputType' => 'checkbox', + 'SettingDefaultValue' => strval($setting['default-value'])); + } + else if($setting['type'] == 'enum') + { + $choices = array(); + foreach($setting->choice as $choice) + { + $choices[] = array('EnumID' => strval($choice['id']), + 'EnumName' => $choice->name); + } + $settings[] = array('SettingID' => $setting_id, + 'SettingName' => $setting->name, + 'SettingDescription' => $setting->description, + 'SettingType' => 'enum', + 'SettingInputType' => 'select', + 'SettingDefaultValue' => strval($setting['default-value']), + 'SettingChoices' => $choices); + } + } + + return $settings; + } + + /** + * Validates the user input according to the settings array and + * delivers errors if occurring + * + * @param $input the user $_POST array + * @param $pkg_details the package details + * @param $settings the package settings array + * @return array in this structure: + * array(2) { + * ["input"]=> ... + * ["errors"]=> ... + * } + */ + public function validateInstallerInput($postinput, $pkg_details, $domains, $settings = array()) + { + global $app; + + $ret = array(); + $input = array(); + $error = array(); + + // Main domain (obligatory) + if(isset($postinput['main_domain'])) + { + if(!in_array($postinput['main_domain'], $domains)) $error[] = $app->lng('error_main_domain'); + else $input['main_domain'] = $postinput['main_domain']; + } + else $error[] = $app->lng('error_main_domain'); + + // Main location (not obligatory but must be supplied) + if(isset($postinput['main_location'])) + { + $temp_errstr = ''; + // It can be empty but if the user did write something, check it + $userinput = false; + if(strlen($postinput['main_location']) > 0) $userinput = true; + + // Filter invalid input slashes (twice!) + $main_location = $this->secureLocation($postinput['main_location']); + $main_location = $this->secureLocation($main_location); + // Only allow digits, words, / and - + $main_location = preg_replace("/[^\d\w\/\-]/i", "", $main_location); + if($userinput && (strlen($main_location) == 0)) $temp_errstr = $app->lng('error_inv_main_location'); + + // Find out document_root and make sure no apps are installed twice to one location + if(in_array($postinput['main_domain'], $domains)) + { + $docroot = $app->db->queryOneRecord("SELECT document_root FROM web_domain + WHERE domain = '".$app->db->quote($postinput['main_domain'])."';"); + $new_path = $docroot['document_root']; + if(substr($new_path, -1) != '/') $new_path .= '/'; + $new_path .= $main_location; + + // Get the $customerid which belongs to the selected domain + $customerid = $this->getCustomerIDFromDomain($postinput['main_domain']); + + // First get all domains used for an install, then their loop them + // and get the corresponding document roots as well as the defined + // locations. If an existing doc_root + location matches with the + // new one -> error + $instance_domains = $app->db->queryAllRecords("SELECT instance_id, s.value AS domain + FROM aps_instances AS i, aps_instances_settings AS s + WHERE i.id = s.instance_id AND s.name = 'main_domain' + AND i.customer_id = '".$app->db->quote($customerid)."';"); + for($i = 0; $i < count($instance_domains); $i++) + { + $used_path = ''; + + $doc_root = $app->db->queryOneRecord("SELECT document_root FROM web_domain + WHERE domain = '".$app->db->quote($instance_domains[$i]['domain'])."';"); + + // Probably the domain settings were changed later, so make sure the doc_root + // is not empty for further validation + if(!empty($doc_root)) + { + $used_path = $doc_root['document_root']; + if(substr($used_path, -1) != '/') $used_path .= '/'; + + $location_for_domain = $app->db->queryOneRecord("SELECT value + FROM aps_instances_settings WHERE name = 'main_location' + AND instance_id = '".$app->db->quote($instance_domains[$i]['instance_id'])."';"); + + // The location might be empty but the DB return must not be false! + if($location_for_domain) $used_path .= $location_for_domain['value']; + + if($new_path == $used_path) + { + $temp_errstr = $app->lng('error_used_location'); + break; + } + } + } + } + else $temp_errstr = $app->lng('error_main_domain'); + + if($temp_errstr == '') $input['main_location'] = htmlspecialchars($main_location); + else $error[] = $temp_errstr; + } + else $error[] = $app->lng('error_no_main_location'); + + // License (the checkbox must be set) + if(isset($pkg_details['License need agree']) + && $pkg_details['License need agree'] == 'true') + { + if(isset($postinput['license']) && $postinput['license'] == 'on') $input['license'] = 'true'; + else $error[] = $app->lng('error_license_agreement'); + } + + // Database + if(isset($pkg_details['Requirements Database']) + && $pkg_details['Requirements Database'] != '') + { + if(isset($postinput['main_database_password'])) + { + if($postinput['main_database_password'] == '') $error[] = $app->lng('error_no_database_pw'); + else if(strlen($postinput['main_database_password']) > 8) + $input['main_database_password'] = htmlspecialchars($postinput['main_database_password']); + else $error[] = $app->lng('error_short_database_pw'); + } + else $error[] = $app->lng('error_no_database_pw'); + } + + // Validate the package settings + foreach($settings as $setting) + { + $temp_errstr = ''; + $setting_id = strval($setting['SettingID']); + + // We assume that every setting must be set + if((isset($postinput[$setting_id]) && ($postinput[$setting_id] != '')) + || ($setting['SettingType'] == 'boolean')) + { + if($setting['SettingType'] == 'string' || $setting['SettingType'] == 'password') + { + if($app->functions->intval($setting['SettingMinLength'], true) != 0 + && strlen($postinput[$setting_id]) < $app->functions->intval($setting['SettingMinLength'], true)) + $temp_errstr = sprintf($app->lng('error_short_value_for'), $setting['setting_name']); + + if($app->functions->intval($setting['SettingMaxLength'], true) != 0 + && strlen($postinput[$setting_id]) > $app->functions->intval($setting['SettingMaxLength'], true)) + $temp_errstr = sprintf($app->lng('error_long_value_for'), $setting['setting_name']); + + if(isset($setting['SettingRegex']) + && !preg_match("/".$setting['SettingRegex']."/", $postinput[$setting_id])) + $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['setting_name']); + } + else if($setting['SettingType'] == 'email') + { + if(filter_var(strtolower($postinput[$setting_id]), FILTER_VALIDATE_EMAIL) === false) + $temp_errstr = sprintf($app->lng('error_inv_email_for'), $setting['setting_name']); + } + else if($setting['SettingType'] == 'domain-name') + { + if(!preg_match("^(http|https)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*$", + $postinput[$setting_id])) + $temp_errstr = sprintf($app->lng('error_inv_domain_for'), $setting['setting_name']); + } + else if($setting['SettingType'] == 'integer') + { + if(filter_var($postinput[$setting_id], FILTER_VALIDATE_INT) === false) + $temp_errstr = sprintf($app->lng('error_inv_integer_for'), $setting['setting_name']); + } + else if($setting['SettingType'] == 'float') + { + if(filter_var($postinput[$setting_id], FILTER_VALIDATE_FLOAT) === false) + $temp_errstr = sprintf($app->lng('error_inv_float_for'), $setting['setting_name']); + } + else if($setting['SettingType'] == 'boolean') + { + // If we have a boolean value set, it must be either true or false + if(!isset($postinput[$setting_id])) $postinput[$setting_id] = 'false'; + else if(isset($postinput[$setting_id]) && $postinput[$setting_id] != 'true') + $postinput[$setting_id] = 'true'; + } + else if($setting['SettingType'] == 'enum') + { + $found = false; + for($i = 0; $i < count($setting['SettingChoices']); $i++) + { + if($setting['SettingChoices'][$i]['EnumID'] == $postinput[$setting_id]) + $found = true; + } + if(!$found) $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['SettingName']); + } + + if($temp_errstr == '') $input[$setting_id] = $postinput[$setting_id]; + else $error[] = $temp_errstr; + } + else $error[] = sprintf($app->lng('error_no_value_for'), $setting['SettingName']); + } + + $ret['input'] = $input; + $ret['error'] = array_unique($error); + + return $ret; + } + + /** + * Read the metadata of a package and returns some content + * + * @param $id the internal ID of the package + * @return array + */ + public function getPackageDetails($id) + { + global $app; + + $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';'); + + // Load in meta file if existing and register its namespaces + $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml'; + if(!file_exists($metafile)) + return array('error' => 'The metafile for '.$pkg['name'].' couldn\'t be found'); + + $metadata = file_get_contents($metafile); + $metadata = str_replace("xmlns=", "ns=", $metadata); + $sxe = new SimpleXMLElement($metadata); + $namespaces = $sxe->getDocNamespaces(true); + foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url); + + $pkg['Summary'] = htmlspecialchars(parent::getXPathValue($sxe, '//summary')); + $pkg['Homepage'] = parent::getXPathValue($sxe, '//homepage'); + $pkg['Description'] = nl2br(htmlspecialchars(trim(parent::getXPathValue($sxe, '//description')))); + $pkg['Config script'] = strtoupper(parent::getXPathValue($sxe, '//configuration-script-language')); + $installed_size = parent::getXPathValue($sxe, '//installed-size'); + $pkg['Installed Size'] = (!empty($installed_size)) ? parent::convertSize((int)$installed_size) : ''; + + // License + $pkg['License need agree'] = parent::getXPathValue($sxe, '//license/@must-accept'); + $pkg['License name'] = parent::getXPathValue($sxe, '//license/text/name'); // might be empty + $pkg['License type'] = 'file'; // default type + $pkg['License content'] = ''; // default license filename on local system + $license_url = parent::getXPathValue($sxe, '//license/text/url'); + if(!empty($license_url)) + { + $pkg['License type'] = 'url'; + $pkg['License content'] = htmlspecialchars($license_url); + } + else + { + $lic = @file_get_contents($this->interface_pkg_dir.'/'.$pkg['path'].'/LICENSE'); + $pkg['License content'] = htmlentities($lic, ENT_QUOTES, 'ISO-8859-1'); + } + + // Languages + $languages = parent::getXPathValue($sxe, '//languages/language', true); + $pkg['Languages'] = (is_array($languages)) ? implode(' ', $languages) : ''; + + // Icon + $icon = parent::getXPathValue($sxe, '//icon/@path'); + if(!empty($icon)) + { + // Using parse_url() to filter malformed URLs + $path = dirname(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH)).'/'. + basename($this->interface_pkg_dir).'/'.$pkg['path'].'/'.basename((string)$icon); + // nginx: if $_SERVER['PHP_SELF'] is doubled, remove /sites/aps_packagedetails_show.php from beginning of path + $path = preg_replace('@^/sites/aps_packagedetails_show.php(.*)@', '$1', $path); + + $pkg['Icon'] = $path; + } + else $pkg['Icon'] = ''; + + // Screenshots + $screenshots = parent::getXPathValue($sxe, '//screenshot', true); + if(!empty($screenshots)) + { + foreach($screenshots as $screen) + { + // Using parse_url() to filter malformed URLs + $path = dirname(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH)).'/'. + basename($this->interface_pkg_dir).'/'.$pkg['path'].'/'.basename((string)$screen['path']); + // nginx: if $_SERVER['PHP_SELF'] is doubled, remove /sites/aps_packagedetails_show.php from beginning of path + $path = preg_replace('@^/sites/aps_packagedetails_show.php(.*)@', '$1', $path); + + $pkg['Screenshots'][] = array('ScreenPath' => $path, + 'ScreenDescription' => htmlspecialchars(trim((string)$screen->description))); + } + } + else $pkg['Screenshots'] = ''; // if no screenshots are available, set the variable though + + // Changelog + $changelog = parent::getXPathValue($sxe, '//changelog/version', true); + if(!empty($changelog)) + { + foreach($changelog as $change) + { + $entries = array(); + foreach($change->entry as $entry) $entries[] = htmlspecialchars(trim((string)$entry)); + + $pkg['Changelog'][] = array('ChangelogVersion' => (string)$change['version'], + 'ChangelogDescription' => implode('
', $entries)); + } + } + + else $pkg['Changelog'] = ''; + + // PHP extensions + $php_extensions = parent::getXPathValue($sxe, '//php:extension', true); + $php_ext = ''; + if(!empty($php_extensions)) + { + foreach($php_extensions as $extension) + { + if(strtolower($extension) == 'php') continue; + $php_ext .= $extension.' '; + } + } + $pkg['Requirements PHP extensions'] = trim($php_ext); + + // PHP bool options + $pkg['Requirements PHP settings'] = ''; + $php_bool_options = array('allow-url-fopen', 'file-uploads', 'magic-quotes-gpc', + 'register-globals', 'safe-mode', 'short-open-tag'); + foreach($php_bool_options as $option) + { + $value = parent::getXPathValue($sxe, '//php:'.$option); + if(!empty($value)) + { + $option = str_replace('-', '_', $option); + $value = str_replace(array('false', 'true'), array('off', 'on'), $value); + $pkg['Requirements PHP settings'][] = array('PHPSettingName' => $option, + 'PHPSettingValue' => $value); + } + } + + // PHP integer value settings + $memory_limit = parent::getXPathValue($sxe, '//php:memory-limit'); + if(!empty($memory_limit)) + $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'memory_limit', + 'PHPSettingValue' => parent::convertSize((int)$memory_limit)); + + $max_exec_time = parent::getXPathValue($sxe, '//php:max-execution-time'); + if(!empty($max_exec_time)) + $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'max-execution-time', + 'PHPSettingValue' => $max_exec_time); + + $post_max_size = parent::getXPathValue($sxe, '//php:post-max-size'); + if(!empty($post_max_size)) + $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'post_max_size', + 'PHPSettingValue' => parent::convertSize((int)$post_max_size)); + + // Get supported PHP versions + $pkg['Requirements Supported PHP versions'] = ''; + $php_min_version = parent::getXPathValue($sxe, '//php:version/@min'); + $php_max_not_including = parent::getXPathValue($sxe, '//php:version/@max-not-including'); + if(!empty($php_min_version) && !empty($php_max_not_including)) + $pkg['Requirements Supported PHP versions'] = $php_min_version.' - '.$php_max_not_including; + else if(!empty($php_min_version)) + $pkg['Requirements Supported PHP versions'] = '> '.$php_min_version; + else if(!empty($php_max_not_including)) + $pkg['Requirements Supported PHP versions'] = '< '.$php_min_version; + + // Database + $db_id = parent::getXPathValue($sxe, '//db:id'); + $db_server_type = parent::getXPathValue($sxe, '//db:server-type'); + $db_min_version = parent::getXPathValue($sxe, '//db:server-min-version'); + if(!empty($db_id)) + { + $db_server_type = str_replace('postgresql', 'PostgreSQL', $db_server_type); + $db_server_type = str_replace('microsoft:sqlserver', 'MSSQL', $db_server_type); + $db_server_type = str_replace('mysql', 'MySQL', $db_server_type); + + $pkg['Requirements Database'] = $db_server_type; + if(!empty($db_min_version)) $pkg['Requirements Database'] .= ' > '.$db_min_version; + } + else $pkg['Requirements Database'] = ''; + + return $pkg; + } +} +?> diff --git a/interface/lib/classes/client_templates.inc.php b/interface/lib/classes/client_templates.inc.php index c2ef0bb0ec3c46a0cffa9e8d3ddd11619aac31bf..cdd9ea952ba25ab5291c19c1ea1ea4b428675d29 100644 --- a/interface/lib/classes/client_templates.inc.php +++ b/interface/lib/classes/client_templates.inc.php @@ -9,7 +9,94 @@ class client_templates { - function apply_client_templates($clientId) { + /** + * - check for old-style templates and change to new style + * - update assigned templates + */ + function update_client_templates($clientId, $templates = array()) { + global $app, $conf; + + if(!is_array($templates)) return false; + + $new_tpl = array(); + $used_assigned = array(); + $needed_types = array(); + $old_style = true; + foreach($templates as $item) { + $item = trim($item); + if($item == '') continue; + + $tpl_id = 0; + $assigned_id = 0; + if(strpos($item, ':') === false) { + $tpl_id = $item; + } else { + $old_style = false; // has new-style assigns + list($assigned_id, $tpl_id) = explode(':', $item, 2); + if(substr($assigned_id, 0, 1) === 'n') $assigned_id = 0; // newly inserted items + } + if(array_key_exists($tpl_id, $needed_types) == false) $needed_types[$tpl_id] = 0; + $needed_types[$tpl_id]++; + + if($assigned_id > 0) { + $used_assigned[] = $assigned_id; // for comparison with database + } else { + $new_tpl[] = $tpl_id; + } + } + + if($old_style == true) { + // we have to take care of this in an other way + $in_db = $app->db->queryAllRecords('SELECT `assigned_template_id`, `client_template_id` FROM `client_template_assigned` WHERE `client_id` = ' . $clientId); + if(is_array($in_db) && count($in_db) > 0) { + foreach($in_db as $item) { + if(array_key_exists($item['client_template_id'], $needed_types) == false) $needed_types[$item['client_template_id']] = 0; + $needed_types[$item['client_template_id']]--; + } + } + + foreach($needed_types as $tpl_id => $count) { + if($count > 0) { + // add new template to client (includes those from old-style without assigned_template_id) + for($i = $count; $i > 0; $i--) { + $app->db->query('INSERT INTO `client_template_assigned` (`client_id`, `client_template_id`) VALUES (' . $clientId . ', ' . $tpl_id . ')'); + } + } elseif($count < 0) { + // remove old ones + for($i = $count; $i < 0; $i++) { + $app->db->query('DELETE FROM `client_template_assigned` WHERE client_id = ' . $clientId . ' AND client_template_id = ' . $tpl_id . ' LIMIT 1'); + } + } + } + } else { + // we have to take care of this in an other way + $in_db = $app->db->queryAllRecords('SELECT `assigned_template_id`, `client_template_id` FROM `client_template_assigned` WHERE `client_id` = ' . $clientId); + if(is_array($in_db) && count($in_db) > 0) { + // check which templates were removed from this client + foreach($in_db as $item) { + if(in_array($item['assigned_template_id'], $used_assigned) == false) { + // delete this one + $app->db->query('DELETE FROM `client_template_assigned` WHERE `assigned_template_id` = ' . $item['assigned_template_id']); + } + } + } + + if(count($new_tpl) > 0) { + foreach($new_tpl as $item) { + // add new template to client (includes those from old-style without assigned_template_id) + $app->db->query('INSERT INTO `client_template_assigned` (`client_id`, `client_template_id`) VALUES (' . $clientId . ', ' . $item . ')'); + } + } + } + + unset($new_tpl); + unset($in_db); + unset($templates); + unset($used_assigned); + return true; + } + + function apply_client_templates($clientId) { global $app; include('../client/form/client.tform.php'); @@ -20,8 +107,14 @@ class client_templates { $sql = "SELECT template_master, template_additional FROM client WHERE client_id = " . $app->functions->intval($clientId); $record = $app->db->queryOneRecord($sql); $masterTemplateId = $record['template_master']; - $additionalTemplateStr = $record['template_additional']; - + + if($record['template_additional'] != '') { + // we have to call the update_client_templates function + $templates = explode('/', $record['template_additional']); + $this->update_client_templates($clientId, $templates); + $app->db->query('UPDATE `client` SET `template_additional` = \'\' WHERE `client_id` = ' . $app->functions->intval($clientId)); + } + /* * if the master-Template is custom there is NO changing */ @@ -40,82 +133,82 @@ class client_templates { * if != -1) */ $addTpl = explode('/', $additionalTemplateStr); - foreach ($addTpl as $item){ - if (trim($item) != ''){ - $sql = "SELECT * FROM client_template WHERE template_id = " . $app->functions->intval($item); - $addLimits = $app->db->queryOneRecord($sql); - $app->log('Template processing subtemplate ' . $item . ' for client ' . $clientId, LOGLEVEL_DEBUG); - /* maybe the template is deleted in the meantime */ - if (is_array($addLimits)){ - foreach($addLimits as $k => $v){ - /* we can remove this condition, but it is easier to debug with it (don't add ids and other non-limit values) */ - if (strpos($k, 'limit') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec'){ - $app->log('Template processing key ' . $k . ' for client ' . $clientId, LOGLEVEL_DEBUG); + $addTpls = $app->db->queryAllRecords('SELECT `client_template_id` FROM `client_template_assigned` WHERE `client_id` = ' . $app->functions->intval($clientId)); + foreach ($addTpls as $addTpl){ + $item = $addTpl['client_template_id']; + $sql = "SELECT * FROM client_template WHERE template_id = " . $app->functions->intval($item); + $addLimits = $app->db->queryOneRecord($sql); + $app->log('Template processing subtemplate ' . $item . ' for client ' . $clientId, LOGLEVEL_DEBUG); + /* maybe the template is deleted in the meantime */ + if (is_array($addLimits)){ + foreach($addLimits as $k => $v){ + /* we can remove this condition, but it is easier to debug with it (don't add ids and other non-limit values) */ + if (strpos($k, 'limit') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec'){ + $app->log('Template processing key ' . $k . ' for client ' . $clientId, LOGLEVEL_DEBUG); - /* process the numerical limits */ - if (is_numeric($v)){ - /* switch for special cases */ - switch ($k){ - case 'limit_cron_frequency': - if ($v < $limits[$k]) $limits[$k] = $v; - /* silent adjustment of the minimum cron frequency to 1 minute */ - /* maybe this control test should be done via validator definition in tform.php file, but I don't know how */ - if ($limits[$k] < 1) $limits[$k] = 1; - break; + /* process the numerical limits */ + if (is_numeric($v)){ + /* switch for special cases */ + switch ($k){ + case 'limit_cron_frequency': + if ($v < $limits[$k]) $limits[$k] = $v; + /* silent adjustment of the minimum cron frequency to 1 minute */ + /* maybe this control test should be done via validator definition in tform.php file, but I don't know how */ + if ($limits[$k] < 1) $limits[$k] = 1; + break; - default: - if ($limits[$k] > -1){ - if ($v == -1){ - $limits[$k] = -1; - } - else { - $limits[$k] += $v; - } + default: + if ($limits[$k] > -1){ + if ($v == -1){ + $limits[$k] = -1; + } + else { + $limits[$k] += $v; } } } - /* process the string limits (CHECKBOXARRAY, SELECT etc.) */ - elseif (is_string($v)){ - switch ($form["tabs"]["limits"]["fields"][$k]['formtype']){ - case 'CHECKBOXARRAY': - if (!isset($limits[$k])){ - $limits[$k] = array(); - } + } + /* process the string limits (CHECKBOXARRAY, SELECT etc.) */ + elseif (is_string($v)){ + switch ($form["tabs"]["limits"]["fields"][$k]['formtype']){ + case 'CHECKBOXARRAY': + if (!isset($limits[$k])){ + $limits[$k] = array(); + } - $limits_values = $limits[$k]; - if (is_string($limits[$k])){ - $limits_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"],$limits[$k]); - } - $additional_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"],$v); - $app->log('Template processing key ' . $k . ' type CHECKBOXARRAY, lim / add: ' . implode(',', $limits_values) . ' / ' . implode(',', $additional_values) . ' for client ' . $clientId, LOGLEVEL_DEBUG); - /* unification of limits_values (master template) and additional_values (additional template) */ - $limits_unified = array(); - foreach($form["tabs"]["limits"]["fields"][$k]["value"] as $key => $val){ - if (in_array($key,$limits_values) || in_array($key,$additional_values)) $limits_unified[] = $key; + $limits_values = $limits[$k]; + if (is_string($limits[$k])){ + $limits_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"],$limits[$k]); + } + $additional_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"],$v); + $app->log('Template processing key ' . $k . ' type CHECKBOXARRAY, lim / add: ' . implode(',', $limits_values) . ' / ' . implode(',', $additional_values) . ' for client ' . $clientId, LOGLEVEL_DEBUG); + /* unification of limits_values (master template) and additional_values (additional template) */ + $limits_unified = array(); + foreach($form["tabs"]["limits"]["fields"][$k]["value"] as $key => $val){ + if (in_array($key,$limits_values) || in_array($key,$additional_values)) $limits_unified[] = $key; + } + $limits[$k] = implode($form["tabs"]["limits"]["fields"][$k]["separator"],$limits_unified); + break; + case 'CHECKBOX': + if($k == 'force_suexec') { + // 'n' is less limited than y + if (!isset($limits[$k])){ + $limits[$k] = 'y'; } - $limits[$k] = implode($form["tabs"]["limits"]["fields"][$k]["separator"],$limits_unified); - break; - case 'CHECKBOX': - if($k == 'force_suexec') { - // 'n' is less limited than y - if (!isset($limits[$k])){ - $limits[$k] = 'y'; - } - if($limits[$k] == 'n' || $v == 'n') $limits[$k] = 'n'; - } else { - // 'y' is less limited than n - if (!isset($limits[$k])){ - $limits[$k] = 'n'; - } - if($limits[$k] == 'y' || $v == 'y') $limits[$k] = 'y'; + if($limits[$k] == 'n' || $v == 'n') $limits[$k] = 'n'; + } else { + // 'y' is less limited than n + if (!isset($limits[$k])){ + $limits[$k] = 'n'; } - break; - case 'SELECT': - $limit_values = array_keys($form["tabs"]["limits"]["fields"][$k]["value"]); - /* choose the lower index of the two SELECT items */ - $limits[$k] = $limit_values[min(array_search($limits[$k], $limit_values), array_search($v, $limit_values))]; - break; + if($limits[$k] == 'y' || $v == 'y') $limits[$k] = 'y'; } + break; + case 'SELECT': + $limit_values = array_keys($form["tabs"]["limits"]["fields"][$k]["value"]); + /* choose the lower index of the two SELECT items */ + $limits[$k] = $limit_values[min(array_search($limits[$k], $limit_values), array_search($v, $limit_values))]; + break; } } } diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php index b3a59e930dcaa6f30bccde513c94fe1b1ab8aafa..197c406483ba9e01423b09a0a70a32062a803d27 100644 --- a/interface/lib/classes/listform.inc.php +++ b/interface/lib/classes/listform.inc.php @@ -193,11 +193,15 @@ class listform { public function getPagingSQL($sql_where = '1') { global $app, $conf; - - //* Add Global Limit from selectbox - if(!empty($_POST['search_limit']) AND $app->functions->intval($_POST['search_limit'])){ + + //* Add Global Limit from selectbox + if(!empty($_POST['search_limit']) AND $app->functions->intval($_POST['search_limit']) > 0){ $_SESSION['search']['limit'] = $app->functions->intval($_POST['search_limit']); } + + if(preg_match('{^[0-9]$}',$_SESSION['search']['limit'])){ + $_SESSION['search']['limit'] = 15; + } //* Get Config variables $list_name = $this->listDef['name']; diff --git a/interface/lib/classes/plugin_backuplist.inc.php b/interface/lib/classes/plugin_backuplist.inc.php index ad567b29ed4c8f35e7d8ce8e42602d0d885308aa..2e0fdc5d3baf78707770406a7d564358bd3efa18 100644 --- a/interface/lib/classes/plugin_backuplist.inc.php +++ b/interface/lib/classes/plugin_backuplist.inc.php @@ -55,6 +55,12 @@ class plugin_backuplist extends plugin_base { if(isset($_GET['backup_action'])) { $backup_id = $app->functions->intval($_GET['backup_id']); + //* check if the user is owner of the parent domain + $domain_backup = $app->db->queryOneRecord("SELECT parent_domain_id FROM web_backup WHERE backup_id = ".$backup_id); + if(!$app->tform->checkOwnerPermisssions($this->dataRecord["parent_domain_id"])){ + $app->error($app->tform->lng('no_domain_perm')); + } + if($_GET['backup_action'] == 'download' && $backup_id > 0) { $sql = "SELECT count(action_id) as number FROM sys_remoteaction WHERE action_state = 'pending' AND action_type = 'backup_download' AND action_param = '$backup_id'"; $tmp = $app->db->queryOneRecord($sql); diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php index 66ba90dbf124ed9983f7ad8b6f374cc38a8afad2..55759f4bcea49cb6790c7beb966513ede96c36bd 100644 --- a/interface/lib/classes/remoting.inc.php +++ b/interface/lib/classes/remoting.inc.php @@ -1103,7 +1103,40 @@ class remoting { } $app->uses('remoting_lib'); $app->remoting_lib->loadFormDef('../client/form/client.tform.php'); - return $app->remoting_lib->getDataRecord($client_id); + $data = $app->remoting_lib->getDataRecord($client_id); + + // we need to get the new-style templates for backwards-compatibility - maybe we remove this in a later version + if(is_array($data) && count($data) > 0) { + if(isset($data['client_id'])) { + // this is a single record + if($data['template_additional'] == '') { + $tpls = $app->db->queryAllRecords('SELECT CONCAT(`assigned_template_id`, \':\', `client_template_id`) as `item` FROM `client_template_assigned` WHERE `client_id` = ' . $data['client_id']); + $tpl_arr = array(); + if($tpls) { + foreach($tpls as $tpl) $tpl_arr[] = $tpl['item']; + } + $data['template_additional'] = implode('/', $tpl_arr); + unset($tpl_arr); + unset($tpls); + } + } elseif(isset($data[0]['client_id'])) { + // multiple client records + foreach($data as $index => $client) { + if($client['template_additional'] == '') { + $tpls = $app->db->queryAllRecords('SELECT CONCAT(`assigned_template_id`, \':\', `client_template_id`) as `item` FROM `client_template_assigned` WHERE `client_id` = ' . $client['client_id']); + $tpl_arr = array(); + if($tpls) { + foreach($tpls as $tpl) $tpl_arr[] = $tpl['item']; + } + $data[$index]['template_additional'] = implode('/', $tpl_arr); // dont use the $client array here - changes would not be returned to soap + } + unset($tpl_arr); + unset($tpls); + } + } + } + + return $data; } public function client_get_id($session_id, $sys_userid) @@ -1169,6 +1202,33 @@ class remoting { $this->server->fault('permission_denied','You do not have the permissions to access this function.'); return false; } + + $app->uses('remoting_lib'); + $app->remoting_lib->loadFormDef('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php'); + $old_rec = $app->remoting_lib->getDataRecord($client_id); + + // we need the previuos templates assigned here + $this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $client_id); + if(!is_array($this->oldTemplatesAssigned) || count($this->oldTemplatesAssigned) < 1) { + // check previous type of storing templates + $tpls = explode('/', $old_rec['template_additional']); + $this->oldTemplatesAssigned = array(); + foreach($tpls as $item) { + $item = trim($item); + if(!$item) continue; + $this->oldTemplatesAssigned[] = array('assigned_template_id' => 0, 'client_template_id' => $item, 'client_id' => $client_id); + } + unset($tpls); + } + if(isset($params['template_additional'])) { + $app->uses('client_templates'); + $templates = explode('/', $params['template_additional']); + $params['template_additional'] = ''; + $app->client_templates->update_client_templates($client_id, $templates); + unset($templates); + } + + if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id; $affected_rows = $this->updateQuery('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $client_id, $params, 'client:' . ($reseller_id ? 'reseller' : 'client') . ':on_after_update'); @@ -1176,7 +1236,120 @@ class remoting { return $affected_rows; } + + public function client_template_additional_get($session_id, $client_id) { + global $app; + if(!$this->checkPerm($session_id, 'client_get')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + if(@is_numeric($client_id)) { + $sql = "SELECT * FROM `client_template_assigned` WHERE `client_id` = ".$client_id; + return $app->db->queryOneRecord($sql); + } else { + $this->server->fault('The ID must be an integer.'); + return array(); + } + } + + private function _set_client_formdata($client_id) { + global $app; + + $this->id = $client_id; + $this->dataRecord = $app->db->queryOneRecord('SELECT * FROM `client` WHERE `client_id` = ' . $client_id); + $this->oldDataRecord = $this->dataRecord; + + $this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $client_id); + if(!is_array($this->oldTemplatesAssigned) || count($this->oldTemplatesAssigned) < 1) { + // check previous type of storing templates + $tpls = explode('/', $this->oldDataRecord['template_additional']); + $this->oldTemplatesAssigned = array(); + foreach($tpls as $item) { + $item = trim($item); + if(!$item) continue; + $this->oldTemplatesAssigned[] = array('assigned_template_id' => 0, 'client_template_id' => $item, 'client_id' => $client_id); + } + unset($tpls); + } + } + + public function client_template_additional_add($session_id, $client_id, $template_id) { + global $app; + + if(!$this->checkPerm($session_id, 'client_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + if(@is_numeric($client_id) && @is_numeric($template_id)) { + // check if client exists + $check = $app->db->queryOneRecord('SELECT `client_id` FROM `client` WHERE `client_id` = ' . $client_id); + if(!$check) { + $this->server->fault('Invalid client'); + return false; + } + // check if template exists + $check = $app->db->queryOneRecord('SELECT `template_id` FROM `client_template` WHERE `template_id` = ' . $template_id); + if(!$check) { + $this->server->fault('Invalid template'); + return false; + } + + // for the update event we have to cheat a bit + $this->_set_client_formdata($client_id); + + $sql = "INSERT INTO `client_template_assigned` (`client_id`, `client_template_id`) VALUES (" . $client_id . ", " . $template_id . ")"; + $app->db->query($sql); + $insert_id = $app->db->insertID(); + + $app->plugin->raiseEvent('client:client:on_after_update',$this); + + return $insert_id; + } else { + $this->server->fault('The IDs must be of type integer.'); + return false; + } + } + + public function client_template_additional_delete($session_id, $client_id, $assigned_template_id) { + global $app; + + if(!$this->checkPerm($session_id, 'client_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + if(@is_numeric($client_id) && @is_numeric($template_id)) { + // check if client exists + $check = $app->db->queryOneRecord('SELECT `client_id` FROM `client` WHERE `client_id` = ' . $client_id); + if(!$check) { + $this->server->fault('Invalid client'); + return false; + } + // check if template exists + $check = $app->db->queryOneRecord('SELECT `assigned_template_id` FROM `client_template_assigned` WHERE `assigned_template_id` = ' . $assigned_template_id); + if(!$check) { + $this->server->fault('Invalid template'); + return false; + } + + // for the update event we have to cheat a bit + $this->_set_client_formdata($client_id); + + $sql = "DELETE FROM `client_template_assigned` WHERE `assigned_template_id` = " . $template_id . " AND `client_id` = " . $client_id; + $app->db->query($sql); + $affected_rows = $app->db->affectedRows(); + + $app->plugin->raiseEvent('client:client:on_after_update',$this); + + return $affected_rows; + } else { + $this->server->fault('The IDs must be of type integer.'); + return false; + } + } public function client_delete($session_id,$client_id) { diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php index f9cf59d37c2c530bce252560ee4cced87c2f8c94..0c40a8626265db2f9f2cec2bdcffa65099d1d6fc 100644 --- a/interface/lib/classes/remoting_lib.inc.php +++ b/interface/lib/classes/remoting_lib.inc.php @@ -133,6 +133,8 @@ class remoting_lib { } } unset($form); + + $this->dateformat = $app->lng('conf_format_dateshort'); return true; } diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index d1fd373c5c119c2bccd0888590419116b35b6fe2..f4ea0d7de138876990e56abd9abf1b572d56160b 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -552,9 +552,10 @@ class tform { $new_record[$key] = $out; break; - case 'PASSWORD': - $new_record[$key] = ''; - break; + case 'PASSWORD': + //$new_record[$key] = ''; + $new_record[$key] = htmlspecialchars($field['default']); + break; case 'CHECKBOX': // $checked = (empty($field["default"]))?'':' CHECKED'; @@ -1257,7 +1258,7 @@ class tform { function getDataRecord($primary_id) { global $app; $escape = '`'; - $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; + $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id." AND ".$this->getAuthSQL('r',$this->formDef['db_table']); return $app->db->queryOneRecord($sql); } @@ -1267,7 +1268,7 @@ class tform { $app->db->datalogSave($this->formDef['db_table'], $action, $this->formDef['db_table_idx'], $primary_id, $record_old, $record_new); return true; - +<<<<<<< .mine /* // Add backticks for incomplete table names. if(stristr($this->formDef['db_table'],'.')) { @@ -1331,7 +1332,7 @@ class tform { return true; */ - } +=======>>>>>>> .theirs } function getAuthSQL($perm, $table = '') { if($_SESSION["s"]["user"]["typ"] == 'admin') { diff --git a/interface/lib/classes/tree.inc.php b/interface/lib/classes/tree.inc.php index a2bdfd2b027eb36c259f62ade291cb59f58b66fb..dcc2d61fd2a9f303540ddde67f4edcdeab594023 100644 --- a/interface/lib/classes/tree.inc.php +++ b/interface/lib/classes/tree.inc.php @@ -147,14 +147,14 @@ class tree function deltree($tree_id) { // lösche Einträge recursiv - $this->_deltree_recurse(&$this->obj[$this->root_id],$tree_id, 0); + $this->_deltree_recurse($this->obj[$this->root_id],$tree_id, 0); } /* Hilfsfunktion für deltree */ - function _deltree_recurse($myobj,$tree_id,$delete) { + function _deltree_recurse(&$myobj,$tree_id,$delete) { if(is_array($myobj->childs)) { foreach($myobj->childs as $val) { @@ -164,7 +164,7 @@ class tree } // recurse durch Objekte - $this->_deltree_recurse(&$val,$tree_id,$delete); + $this->_deltree_recurse($val,$tree_id,$delete); // lösche Eintrag if($delete == 1) { diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng index a49f6fb8547ab6ad6d240dba0d4c583275613f17..8bea2ecf890c3c9a7613d60171d20405ff5febd9 100644 --- a/interface/lib/lang/ar.lng +++ b/interface/lib/lang/ar.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng index 8b15a9a5067ab037e0a4a542dcf0619b3c7937a0..288701799c67778a7b810085e2a776e56bb69eaf 100644 --- a/interface/lib/lang/bg.lng +++ b/interface/lib/lang/bg.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng index ae65e871db476dea6554438ff70c5b7808c78652..0caeef495c9d8b5d17a52f71cb8570ec7facdf3c 100644 --- a/interface/lib/lang/br.lng +++ b/interface/lib/lang/br.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng index 4bff9bc2e58239d2cdc0d97ed1239fd26fafa2ea..0c3071926c61674ce591a2a9c30a5a9da14277fd 100644 --- a/interface/lib/lang/cz.lng +++ b/interface/lib/lang/cz.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_web_folder_user'] = 'Vytvoření uživatele pro adresáře $wb['datalog_status_u_web_folder_user'] = 'Aktualizace nastavení uživatele pro adresáře chráněné heslem'; $wb['datalog_status_d_web_folder_user'] = 'Odstranění uživatele pro adresáře chráněné heslem'; $wb['login_as_txt'] = 'Přihlaste se jako'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index 56b1c1be8598dd7372e3de6f3af5355434432325..328b5202d4cda6028dcca965c02b8210194d42ef 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_web_folder_user'] = 'Verzeichnisschutz Benutzer anlegen'; $wb['datalog_status_u_web_folder_user'] = 'Verzeichnisschutz Benutzer ändern'; $wb['datalog_status_d_web_folder_user'] = 'Verzeichnisschutz Benutzer löschen'; $wb['login_as_txt'] = 'Anmelden als'; +$wb['no_domain_perm'] = 'Sie haben keine Berechtigung für diese Domain.'; +$wb['no_destination_perm'] = 'Sie haben keine Berechtigung für dieses Ziel.'; ?> diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng index a85327db6f487f7a6bf853c69d40dc5f607a85f2..b633c1b86383e5b7ec214e03610471ba163caaf2 100644 --- a/interface/lib/lang/el.lng +++ b/interface/lib/lang/el.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng index 60e9bd30d14054f51dc58bfc7103c7e7ec9655b2..47b611586d55a4450e99b3bedeae87a8cebfbbcf 100644 --- a/interface/lib/lang/en.lng +++ b/interface/lib/lang/en.lng @@ -133,4 +133,6 @@ $wb['datalog_status_u_web_folder_user'] = 'Update folder protection user'; $wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user'; $wb['login_as_txt'] = 'Log in as'; +$wb["no_domain_perm"] = 'You have no permission for this domain.'; +$wb["no_destination_perm"] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng index 619ae97f1f4fe0f37c56548fb384c798a03ffe17..8d79fb91be9f9565c89ca20f1d3f352853326721 100644 --- a/interface/lib/lang/es.lng +++ b/interface/lib/lang/es.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_web_folder_user'] = 'Create folder protection user'; $wb['datalog_status_u_web_folder_user'] = 'Update folder protection user'; $wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng index 9b89ed1a6c7ddc2af7900f4f0d72ee8f72ab7f4a..01d89e23ce70e15a71fbb223a4345397c4957ae9 100755 --- a/interface/lib/lang/fi.lng +++ b/interface/lib/lang/fi.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng index c611a6a09ef13a26ddbc34c0b2125dbc50815de1..ff5f9ff55416b5c118d1192de7a08bdd052cfa79 100644 --- a/interface/lib/lang/fr.lng +++ b/interface/lib/lang/fr.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_web_folder_user'] = 'Create folder protection user'; $wb['datalog_status_u_web_folder_user'] = 'Update folder protection user'; $wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng index 8ba16f1b627a5ce275faca155052f46823544051..903e7270814a61d31752c50937549b3a4300c4a6 100644 --- a/interface/lib/lang/hr.lng +++ b/interface/lib/lang/hr.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng index 7ed92c5b7cd81d0a06c5ff14788adf76145629f1..da0302219b5ce949c58d93afe66433ac97bd5595 100644 --- a/interface/lib/lang/hu.lng +++ b/interface/lib/lang/hu.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng index 6313b8fa4770c3d0273ee15f3130e14c3f23cc75..83383e0dd235aa954e84939cb28af9a3982c2bef 100644 --- a/interface/lib/lang/id.lng +++ b/interface/lib/lang/id.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng index 4f05227b63787705d610e9655657849456a5b47a..a64b252cc96fab3215c67ce6034d393f18b08a7f 100644 --- a/interface/lib/lang/it.lng +++ b/interface/lib/lang/it.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng index e8493692dcccbdddb727151880ec3789393c70cf..df33aa89458c1ace8715e79f04e5d88de4079cbd 100644 --- a/interface/lib/lang/ja.lng +++ b/interface/lib/lang/ja.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng index d0d8d9e054f8e25334448204c486715bdd9b52ad..459de7fce0310351f97eb139784a6e3e7784fc73 100644 --- a/interface/lib/lang/nl.lng +++ b/interface/lib/lang/nl.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng index 7374ab6b886db0c4d6df20ade178a69ea061b9bc..338366167d86df0a9b328048a9116e57dbe4259f 100644 --- a/interface/lib/lang/pl.lng +++ b/interface/lib/lang/pl.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_web_folder_user'] = 'Utwórz konto dla zabezpieczonego fol $wb['datalog_status_u_web_folder_user'] = 'Edytuj konto zabezpieczonego folderu'; $wb['datalog_status_d_web_folder_user'] = 'Usuń konto zabezpieczonego folderu'; $wb['login_as_txt'] = 'Zaloguj jako'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng index cb16283c220ea3ace5465c6a58f03980382c7bcd..bc4a99cdb06be9a7f2f1eeaf2c42cfd1d77ce674 100644 --- a/interface/lib/lang/pt.lng +++ b/interface/lib/lang/pt.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng index c30a9b75b90d7bb8c1487a0c200b8618bb771d34..7c54cd2e699d4599d2e0b3f283a19d893d42fc16 100644 --- a/interface/lib/lang/ro.lng +++ b/interface/lib/lang/ro.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng index 039622403a33477fc4b953a22888fc3f8b8111d0..07a8118116a7152f675172bb751f08d0b5fcd35e 100644 --- a/interface/lib/lang/ru.lng +++ b/interface/lib/lang/ru.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index 712e415a37ee6e235369ea43f9702726047bc98b..8334a1f419c84c4790715e3803b515b9ee6bfdbb 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng index 15923d24643fd1b3ed951d7145eb56d74b884dcb..1c8781764fba10cbd74ffbc6ebe5dd8a070c0a79 100644 --- a/interface/lib/lang/sk.lng +++ b/interface/lib/lang/sk.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng index 55041acb565bf4f1f965337ca51df77553dbb9a3..71225191a76852afa0afc5b7ab361f6df046719b 100644 --- a/interface/lib/lang/tr.lng +++ b/interface/lib/lang/tr.lng @@ -131,4 +131,6 @@ $wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; $wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; $wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; $wb['login_as_txt'] = 'Log in as'; +$wb['no_domain_perm'] = 'You have no permission for this domain.'; +$wb['no_destination_perm'] = 'You have no permission for this destination.'; ?> diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index da67f6b0b3061b8b531eb18e3ed4e5862418150f..f09d4db2e1bf8f749c6972aacaae58416fa62c1b 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -433,6 +433,42 @@ $form["tabs"]['misc'] = array ( 'default' => 'n', 'value' => array(0 => 'n',1 => 'y') ), + 'admin_dashlets_left' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'admin_dashlets_right' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'reseller_dashlets_left' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'reseller_dashlets_right' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'client_dashlets_left' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'client_dashlets_right' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), ################################## # ENDE Datatable fields ################################## diff --git a/interface/web/admin/language_edit.php b/interface/web/admin/language_edit.php index f16ea683cfa249553bf03e10d9a92cb622e3f655..208f1ac94f939609437864b7cb6834884fd7e651 100644 --- a/interface/web/admin/language_edit.php +++ b/interface/web/admin/language_edit.php @@ -85,7 +85,7 @@ $app->tpl->setVar("file_path", $file_path); $keyword_list = array(); if(isset($wb) && is_array($wb)) { foreach($wb as $key => $val) { - $keyword_list[] = array('key' => $key, 'val' => $val); + $keyword_list[] = array('key' => $key, 'val' => htmlentities($val)); } $app->tpl->setLoop('records', $keyword_list); diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 618b69e47ace7f5ec9e069db39c55e5409eac2bd..1c21551a82bcaa7b066b1c885ee1a09d8892710b 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/ar_software_package.lng b/interface/web/admin/lib/lang/ar_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/ar_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/ar_software_package_list.lng b/interface/web/admin/lib/lang/ar_software_package_list.lng index 87b27fd50b16af5b4ffe42a716a33db748143e64..9fa53867bc70f653a4410da5dc70988beebfdcdb 100644 --- a/interface/web/admin/lib/lang/ar_software_package_list.lng +++ b/interface/web/admin/lib/lang/ar_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/ar_software_repo.lng b/interface/web/admin/lib/lang/ar_software_repo.lng index 574dd1162989badc8499f5af31451a43673bf4da..f2cbbb2c25776ab5f1794e7102ad264a98144049 100644 --- a/interface/web/admin/lib/lang/ar_software_repo.lng +++ b/interface/web/admin/lib/lang/ar_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'User (optional)'; $wb['repo_password_txt'] = 'Password (optional)'; $wb['active_txt'] = 'Active'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index 1cc07ec02b5f652a86bb9e4fd2136b2db81260ce..11604d343015457843094003a694a3d57a898229 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index 18cae752594c2128953766ba55afcac2beacdede..c050aad0298fea158f53c7824890f43b87b02f0f 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -171,4 +171,21 @@ $wb['website_autoalias_note_txt'] = 'Placeholders:'; $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/bg_software_package.lng b/interface/web/admin/lib/lang/bg_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/bg_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/bg_software_package_list.lng b/interface/web/admin/lib/lang/bg_software_package_list.lng index 6ff7b4a9aa8953a1808ad4bd5aabc23625a997e7..e251c95fbd2a3d9bd3f8d01e883e8111fd489813 100644 --- a/interface/web/admin/lib/lang/bg_software_package_list.lng +++ b/interface/web/admin/lib/lang/bg_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Пакети'; $wb['repoupdate_txt'] = 'Обновяване на пакетите '; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/bg_software_repo.lng b/interface/web/admin/lib/lang/bg_software_repo.lng index a69c741afd72d47d1c77b6ab5c96073aab754adc..f5156543451cdbd127b34dfed1798a2c6dc5c58c 100644 --- a/interface/web/admin/lib/lang/bg_software_repo.lng +++ b/interface/web/admin/lib/lang/bg_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Потребител (не е задължително)'; $wb['repo_password_txt'] = 'Парола (не е задължително)'; $wb['active_txt'] = 'Активен'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index b7b364bf0270c8aa2f327654b42f1633ebadb5b3..e3c6678b15971400e73d6e388fc3e991e032a941 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index 1f8e3f7622cfeb9029bd61a77a865e171902afa3..71288a9aa0fde1e4c73c53c542eb2a9dc549e56a 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/br_software_package.lng b/interface/web/admin/lib/lang/br_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/br_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/br_software_package_list.lng b/interface/web/admin/lib/lang/br_software_package_list.lng index 2adf5b8d4398805b173d3f2b0bbb75826a185bd2..fd4f41e6d05495997a03c2550f03ce7cd4549e97 100644 --- a/interface/web/admin/lib/lang/br_software_package_list.lng +++ b/interface/web/admin/lib/lang/br_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/br_software_repo.lng b/interface/web/admin/lib/lang/br_software_repo.lng index 5b54c3080a049d334f22d959cbb248462779963c..dc89937425e53e6dbeda054e66742fb815ee5723 100644 --- a/interface/web/admin/lib/lang/br_software_repo.lng +++ b/interface/web/admin/lib/lang/br_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Usuário (opcional)'; $wb['repo_password_txt'] = 'Senha (opcional)'; $wb['active_txt'] = 'Ativo'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 76d2c06ac8c4d2e38bac5ad674bcee6be7c237a4..3bc01721545f3775910f1a2d8f9f5527fad1bd4f 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/cz_remote_action.lng b/interface/web/admin/lib/lang/cz_remote_action.lng index 68da1c065db30c362e27992e58b5a53b755d6150..e1908e2d04fe0259ee7258ae0be1506dc6a7982c 100644 --- a/interface/web/admin/lib/lang/cz_remote_action.lng +++ b/interface/web/admin/lib/lang/cz_remote_action.lng @@ -2,9 +2,9 @@ $wb['select_server_txt'] = 'Zvolit server'; $wb['btn_do_txt'] = 'Provést akci'; $wb['do_osupdate_caption'] = 'Aktualizace operačního systému na vzdáleném serveru.'; -$wb['do_osupdate_desc'] = 'Tato akce provede \"aptitude -y\" aktualizaci na vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; +$wb['do_osupdate_desc'] = 'Tato akce provede \\"aptitude -y\\" aktualizaci na vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; $wb['do_ispcupdate_caption'] = 'Provedení ISPConfig 3 - aktualizace na vzdáleném serveru'; -$wb['do_ispcupdate_desc'] = 'Tato akce provede \"ISPConfig 3\" aktualizaci na vašem vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; +$wb['do_ispcupdate_desc'] = 'Tato akce provede \\"ISPConfig 3\\" aktualizaci na vašem vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; $wb['action_scheduled'] = 'Akce je naplánována na provedení'; $wb['select_all_server'] = 'Všechny servery'; $wb['ispconfig_update_title'] = 'ISPConfig pokyny k aktualizaci'; diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index c0e42402e34b3570234270a948234822bf2b4525..049da2272ee40996805314547d579a4e2faa92df 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Při překročení limitu přenesených dat, poslat oznámení adminovi'; $wb['overtraffic_notify_client_txt'] = 'Při překročení limitu přenesených dat, poslat oznámení klientovi'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/cz_software_package.lng b/interface/web/admin/lib/lang/cz_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/cz_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/cz_software_package_list.lng b/interface/web/admin/lib/lang/cz_software_package_list.lng index 7df837f0c1c11d61f8f9343fcde6d9f79fc3d14a..9d227acb2df30b0bd8f8021918c8d040e832a035 100644 --- a/interface/web/admin/lib/lang/cz_software_package_list.lng +++ b/interface/web/admin/lib/lang/cz_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Balíčky'; $wb['repoupdate_txt'] = 'Aktualizace seznamu balíků'; $wb['package_id_txt'] = 'místní App-ID'; $wb['no_packages_txt'] = 'Žádné balíčky nejsou k dispozici'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/cz_software_repo.lng b/interface/web/admin/lib/lang/cz_software_repo.lng index 64a190d9a1dddf174078dcdfcecb2f3f9c1cd34c..6e200d8d12f9a123559cdb80011746bc094feac7 100644 --- a/interface/web/admin/lib/lang/cz_software_repo.lng +++ b/interface/web/admin/lib/lang/cz_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Uživatel (volitelné)'; $wb['repo_password_txt'] = 'Heslo (volitelné)'; $wb['active_txt'] = 'Aktivní'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index 8073830ebd6c500e70012ee2a4e60f9508c616c6..167b933328150fb5c0ba61d1eb18069d10091b1d 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show Autoresponder tab in Mailbox detail'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show Mail Filter tab in Mailbox detail'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show Custom Rules tab in Mailbox detail'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 163fa3479be01da0323ab7c8480d9941f27639e2..217b95de8bf3b545de5793d082ad95765bc411db 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -52,4 +52,11 @@ $wb['mailbox_show_custom_rules_tab_txt'] = 'Zeige Benutzerregel Reiter in E-Mail $wb['reseller_can_use_options_txt'] = 'Reseller können den Optionen Reiter bei Webseiten verwenden'; $wb['phpmyadmin_url_note_txt'] = 'Platzhalter:'; $wb['webmail_url_note_txt'] = 'Platzhalter:'; +$wb['available_dashlets_note_txt'] = 'Verfügbare Dashlets:'; +$wb['admin_dashlets_left_txt'] = 'Admin-Dashlets links'; +$wb['admin_dashlets_right_txt'] = 'Admin-Dashlets rechts'; +$wb['reseller_dashlets_left_txt'] = 'Reseller-Dashlets links'; +$wb['reseller_dashlets_right_txt'] = 'Reseller-Dashlets rechts'; +$wb['client_dashlets_left_txt'] = 'Kunden-Dashlets links'; +$wb['client_dashlets_right_txt'] = 'Kunden-Dashlets rechts'; ?> diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index b9913e65eee075ab3aa94cc87cb9b099eb1031c1..99bdf6f2d265b324ed3a9862261d5c3173c2f9bf 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/el_software_package.lng b/interface/web/admin/lib/lang/el_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/el_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/el_software_package_list.lng b/interface/web/admin/lib/lang/el_software_package_list.lng index 1528928da3ecb4914741e62bc61f25add409d41a..1553ea1ceafeca4b43be5bd163c9b3fc47ae9864 100644 --- a/interface/web/admin/lib/lang/el_software_package_list.lng +++ b/interface/web/admin/lib/lang/el_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Πακέτα'; $wb['repoupdate_txt'] = 'Ενημέρωση λίστας πακκέτων'; $wb['package_id_txt'] = 'τοπικό App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/el_software_repo.lng b/interface/web/admin/lib/lang/el_software_repo.lng index 5b1e2228edb0f53c8b6b86d7be3f7b0bfc808469..3b12d3fd874fd4e1945f6ce2f234e2f3d619ae24 100644 --- a/interface/web/admin/lib/lang/el_software_repo.lng +++ b/interface/web/admin/lib/lang/el_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Χρήστης (Προαιρετικό)'; $wb['repo_password_txt'] = 'Συνθηματικό (Προαιρετικό)'; $wb['active_txt'] = 'Ενεργό'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index d85a0830c93e985f9dbc52adeda30709a700abc2..f69e58a83dcb36a0ddd19b895989dadb48465c45 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 2edd54307ee002d12c372314ca21ccd5cd335b14..7c5fe6eaf7231fa8656b66a69a8a082cf4b5f13c 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -55,4 +55,11 @@ $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail a $wb['webmail_url_error_regex'] = 'Invalid webmail URL'; $wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; $wb['webmail_url_note_txt'] = 'Placeholder:'; +$wb['available_dashlets_note_txt'] = 'Available Dashlets:'; +$wb['admin_dashlets_left_txt'] = 'Left Admin Dashlets'; +$wb['admin_dashlets_right_txt'] = 'Right Admin Dashlets'; +$wb['reseller_dashlets_left_txt'] = 'Left Reseller Dashlets'; +$wb['reseller_dashlets_right_txt'] = 'Right Reseller Dashlets'; +$wb['client_dashlets_left_txt'] = 'Left Client Dashlets'; +$wb['client_dashlets_right_txt'] = 'Right Client Dashlets'; ?> diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 92d9b45bd851e90a5436f8102938f9d6affc2f9f..1987c5145e729c2458d3db3ff8166b830e3a59a1 100644 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/es_software_package.lng b/interface/web/admin/lib/lang/es_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/es_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/es_software_package_list.lng b/interface/web/admin/lib/lang/es_software_package_list.lng index 103260991e66858bec7bdcee76e639a44a465a1a..3986ef87056f0c9770762082cc47d44d54b1141a 100644 --- a/interface/web/admin/lib/lang/es_software_package_list.lng +++ b/interface/web/admin/lib/lang/es_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/es_software_repo.lng b/interface/web/admin/lib/lang/es_software_repo.lng index 3b9a89e88a233267935796debc6b78d7d55d9ea9..b8487cfbfa7703e3723c7d1db0b41b5ae2a05f17 100644 --- a/interface/web/admin/lib/lang/es_software_repo.lng +++ b/interface/web/admin/lib/lang/es_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Usuario (opcional)'; $wb['repo_password_txt'] = 'Contraseña (opcional)'; $wb['active_txt'] = 'Activar'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index f4ed53ca4807066edb0548b1d98fb92d21dbbc74..118a0dfae82608926a6988378cb46671deee5716 100644 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index 0bddcc7d8639547380e7160fbf209ca797a06566..efa122033c8a22c75675bb5c2caaaf377f186a79 100755 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/fi_software_package.lng b/interface/web/admin/lib/lang/fi_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/fi_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/fi_software_package_list.lng b/interface/web/admin/lib/lang/fi_software_package_list.lng index 85e31f904b0793332126a27efbf11e039e855b25..87a9e193b5af46ab72dd14323f5d181e74e9907a 100755 --- a/interface/web/admin/lib/lang/fi_software_package_list.lng +++ b/interface/web/admin/lib/lang/fi_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/fi_software_repo.lng b/interface/web/admin/lib/lang/fi_software_repo.lng index c89969445fe5bfdddf0369b72c1934b578b0b7f8..f875f428b61f390155ef162d7e27f404328627b2 100755 --- a/interface/web/admin/lib/lang/fi_software_repo.lng +++ b/interface/web/admin/lib/lang/fi_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'Varaston internetosoite'; $wb['repo_username_txt'] = 'Käyttäjätunnus (valinnainen)'; $wb['repo_password_txt'] = 'Salasana (valinnnainen)'; $wb['active_txt'] = 'Käytössä'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index 1ed39352bcf01c375758fc3b252a0df220309b7f..c2c1dab75beda91dfb16bc72646f073cabf3096a 100755 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index c74d89ec1cd92f9858d483843e9656ca29732b68..eabca449d80d7fc7426ee13bfa531bf17c244214 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/fr_software_package.lng b/interface/web/admin/lib/lang/fr_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/fr_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/fr_software_package_list.lng b/interface/web/admin/lib/lang/fr_software_package_list.lng index d6e1d14d4863471e0a6abdf94ddf5d8c07fe3a83..405b9e296fb191f3b337bf4f54ee0a8213748d4a 100644 --- a/interface/web/admin/lib/lang/fr_software_package_list.lng +++ b/interface/web/admin/lib/lang/fr_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Mettre à jour la liste des paquets'; $wb['package_id_txt'] = 'App-ID locale'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/fr_software_repo.lng b/interface/web/admin/lib/lang/fr_software_repo.lng index 7b3ec481a2867b3d383dd73d2f04f76b4fd1a48f..f65c955d52d18927304af8fd78f1148091496408 100644 --- a/interface/web/admin/lib/lang/fr_software_repo.lng +++ b/interface/web/admin/lib/lang/fr_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Utilisateur (optionnel)'; $wb['repo_password_txt'] = 'Mot de passe (optionnel)'; $wb['active_txt'] = 'Actif'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 7a404d629cb92e8f496c684b422ca17a0f48384f..561a5d7274cbd521807b0b934d47c7962de1d007 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index 27168f2c4dba3049699e8ef3eb761ca8e385126b..a441f968ade3df8d3657640581bd0954cc67a9eb 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/hr_software_package.lng b/interface/web/admin/lib/lang/hr_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/hr_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/hr_software_package_list.lng b/interface/web/admin/lib/lang/hr_software_package_list.lng index 66ee959b9182d0e7b92ae3fa2a3e8e5fa6f965d9..8381110feaa13a605efaecbc05e685749d5ea7a3 100644 --- a/interface/web/admin/lib/lang/hr_software_package_list.lng +++ b/interface/web/admin/lib/lang/hr_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Paketi'; $wb['repoupdate_txt'] = 'Obnovi listu paketa'; $wb['package_id_txt'] = 'lokalni App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/hr_software_repo.lng b/interface/web/admin/lib/lang/hr_software_repo.lng index 42064a130e9a4b9bc188fab9bd062e675790ed5b..bbfb2e2db29084c137cfd29804fc6be4ea2960ca 100644 --- a/interface/web/admin/lib/lang/hr_software_repo.lng +++ b/interface/web/admin/lib/lang/hr_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Korisničko ime (opcionalno)'; $wb['repo_password_txt'] = 'Šifra (opcionalno)'; $wb['active_txt'] = 'Aktivno'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index 210a18b00f13d8ae535ad1876d0e67a15b6afe4e..2ff0cbc9fd479ccc436293a7e6380c9d4864f24d 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index 53496080fbc2fec4ad4f5f737e4b08683283d09a..0be61efd12652147da16ba0948338ba905abedc9 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/hu_software_package.lng b/interface/web/admin/lib/lang/hu_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/hu_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/hu_software_package_list.lng b/interface/web/admin/lib/lang/hu_software_package_list.lng index d4749f0de2c14a0ba5f14ccc4f9d84b317f98f5f..430583ce8a807b7741947c3a561baa6ef165b74d 100644 --- a/interface/web/admin/lib/lang/hu_software_package_list.lng +++ b/interface/web/admin/lib/lang/hu_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Csomagok'; $wb['repoupdate_txt'] = 'Csomaglista frissítése'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/hu_software_repo.lng b/interface/web/admin/lib/lang/hu_software_repo.lng index f05284f14a8e29e1d95cb9470f14f8c43a5b92b8..3c578e3694e64e0bb61e2042a7af189fbb633b8b 100644 --- a/interface/web/admin/lib/lang/hu_software_repo.lng +++ b/interface/web/admin/lib/lang/hu_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'Cím'; $wb['repo_username_txt'] = 'Felhasználó (opcionális)'; $wb['repo_password_txt'] = 'Jelszó (opcionális)'; $wb['active_txt'] = 'Aktív'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index f18d12f4cd23a4d8fc822c48949f294abcb2c52f..ee5f429e2f92937aae345d437a04814a63975fc8 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index 39217c392ff885e079ba0a1b5a6e4dce95f95211..54a4493226e8c1580c076732c522e986d2445a29 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/id_software_package.lng b/interface/web/admin/lib/lang/id_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/id_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/id_software_package_list.lng b/interface/web/admin/lib/lang/id_software_package_list.lng index a7e4987ed6ba6dd896473268aae3fb52e61894ba..02642be6e2c75183a8a08800207bf82f36424fb5 100644 --- a/interface/web/admin/lib/lang/id_software_package_list.lng +++ b/interface/web/admin/lib/lang/id_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Paket'; $wb['repoupdate_txt'] = 'Mutakhirkan daftar paket'; $wb['package_id_txt'] = 'App-ID lokal'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/id_software_repo.lng b/interface/web/admin/lib/lang/id_software_repo.lng index a5647bc8cdda0debb334e302806e7ac78003a315..1c3b0305b4f25e5b09952507b4eb9c200dbc71bd 100644 --- a/interface/web/admin/lib/lang/id_software_repo.lng +++ b/interface/web/admin/lib/lang/id_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Pengguna (opsional)'; $wb['repo_password_txt'] = 'Sandi (opsional)'; $wb['active_txt'] = 'Aktif'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index c68bc676c169dc82f04789b19a99e16e5c66c5cc..ecbf3c72c22684cca870dc50ba46a8fa46bf148e 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index 6bea4d2ecfb6e215518b60ed85200faf52d9a6c7..d04076804781aef0e8be0ac067a03330eebe3ab1 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/it_software_package.lng b/interface/web/admin/lib/lang/it_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/it_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/it_software_package_list.lng b/interface/web/admin/lib/lang/it_software_package_list.lng index 87b27fd50b16af5b4ffe42a716a33db748143e64..9fa53867bc70f653a4410da5dc70988beebfdcdb 100644 --- a/interface/web/admin/lib/lang/it_software_package_list.lng +++ b/interface/web/admin/lib/lang/it_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/it_software_repo.lng b/interface/web/admin/lib/lang/it_software_repo.lng index 28ac8754b509afcd8c4e193be51af0d189b52445..7adc6b086304d11629ef981cc486238a0f5a3752 100644 --- a/interface/web/admin/lib/lang/it_software_repo.lng +++ b/interface/web/admin/lib/lang/it_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Utente (facoltativo)'; $wb['repo_password_txt'] = 'Password (facoltativa)'; $wb['active_txt'] = 'Attivo'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index 60512a412ef28919f647d2e6d6a54d246c1fea40..8ba0b9fcb7bc0284cdd8d83849905168ff43cc48 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index ce8803643eab0f374d19522c8e34831a2beaf7f2..890bb568b98fcc3058fdbb8550fce1ed78f85246 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/ja_software_package.lng b/interface/web/admin/lib/lang/ja_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/ja_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/ja_software_package_list.lng b/interface/web/admin/lib/lang/ja_software_package_list.lng index fb587767c87013cd08b17214964037219f15bb3a..e5352e91e7cf91fe7472f0797853dc7d9b77c1d9 100644 --- a/interface/web/admin/lib/lang/ja_software_package_list.lng +++ b/interface/web/admin/lib/lang/ja_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/ja_software_repo.lng b/interface/web/admin/lib/lang/ja_software_repo.lng index fba63e9985d77f2df3ab21cc1724be59098165cc..c95399a54ebba86be6c0d10e24e1bdecb0f737cb 100644 --- a/interface/web/admin/lib/lang/ja_software_repo.lng +++ b/interface/web/admin/lib/lang/ja_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'ユーザー(必要があれば)'; $wb['repo_password_txt'] = 'パスワード(必要があれば)'; $wb['active_txt'] = '有効'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index f58ce702a9c92d42e79743e70a8f8ce6d6027bc9..842b65f3e76e1a14b3a27abd58f3137a7f4674ea 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index c3b3ce0499c7bd101537d15bd3d97dfca6174eca..5d08e91f0bacab4214446c36c3440b7c52e6c3ae 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/nl_software_package.lng b/interface/web/admin/lib/lang/nl_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/nl_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/nl_software_package_list.lng b/interface/web/admin/lib/lang/nl_software_package_list.lng index ee5516a15e70b155636d76a372c0009a31eee356..33e66022bc33e6348d962c81aa34f4e3d4c1eb29 100644 --- a/interface/web/admin/lib/lang/nl_software_package_list.lng +++ b/interface/web/admin/lib/lang/nl_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Pakketten'; $wb['repoupdate_txt'] = 'Update pakketlijst'; $wb['package_id_txt'] = 'locaal App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/nl_software_repo.lng b/interface/web/admin/lib/lang/nl_software_repo.lng index 91f060de9d9ec5130064d6df7e47e874d03f66b1..665c4197a24af7dd5caa4cc89e2e599f4a9a953e 100644 --- a/interface/web/admin/lib/lang/nl_software_repo.lng +++ b/interface/web/admin/lib/lang/nl_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'User (optionieel)'; $wb['repo_password_txt'] = 'Password (optionieel)'; $wb['active_txt'] = 'Actief'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index 65ed315cdd400f0b8400403b76370ee4e10acfb1..fe3b85e5e93e156b6224c29982600d57a7e8b7f7 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -52,4 +52,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index 175c9bedc31993892ce23add683ad4c88e6d137b..32c4c00e5d973350023cf3f8766757e8bf5bbc73 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Prześlij informacje o przekroczeniu transferu do admina'; $wb['overtraffic_notify_client_txt'] = 'Prześlij informacje o przekroczeniu transferu do klienta'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/pl_software_package.lng b/interface/web/admin/lib/lang/pl_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/pl_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/pl_software_package_list.lng b/interface/web/admin/lib/lang/pl_software_package_list.lng index 78c412c344818c823ee8e5d9b4fff8111b0e3782..cb47abc46d380b691323486a72343a62f531b3ce 100644 --- a/interface/web/admin/lib/lang/pl_software_package_list.lng +++ b/interface/web/admin/lib/lang/pl_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Pakiety'; $wb['repoupdate_txt'] = 'Aktualizuj listę pakietów'; $wb['package_id_txt'] = 'lokalny App-ID'; $wb['no_packages_txt'] = 'Brak dostępnych pakietów'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/pl_software_repo.lng b/interface/web/admin/lib/lang/pl_software_repo.lng index d11a1b3b330d331c507e129f195f3f6ada2874f5..1cc3dbb61c0846e040754b5462bb40ccf7cad308 100644 --- a/interface/web/admin/lib/lang/pl_software_repo.lng +++ b/interface/web/admin/lib/lang/pl_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Użytkownik (Opcjonalnie)'; $wb['repo_password_txt'] = 'Hasło (Opcjonalnie)'; $wb['active_txt'] = 'Aktywny'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index dbcd61ffa193d5b8f618c9f296dc44746a4d2f4a..9d4f6f59ba1b463d2927a10995f655cf215e96cb 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Wyłącz sprawdzanie nazwy klie $wb['mailbox_show_autoresponder_tab_txt'] = 'Pokaż zakładkę autorespondera w szczegółach konta email.'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Pokaż zakładkę filtra email w szczegółach konta email.'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Pokaż zakładkę własnych filtrów email w szczegółach konta email.'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index 25d19f302b9f0f858aeb6537b44cea01f419c0c2..e427ed91cbf135c45a35e3f72ff9a4c69c23723a 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/pt_software_package.lng b/interface/web/admin/lib/lang/pt_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/pt_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/pt_software_package_list.lng b/interface/web/admin/lib/lang/pt_software_package_list.lng index 80b0c2e2c0dff39bd55a5c4ce23babcc61997597..1ec77bdd15f5403cd7bae71e328b56c5666f21ae 100644 --- a/interface/web/admin/lib/lang/pt_software_package_list.lng +++ b/interface/web/admin/lib/lang/pt_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/pt_software_repo.lng b/interface/web/admin/lib/lang/pt_software_repo.lng index c0e8fd24c97239d66f9759e547817da6a56fbabc..436758e6871176d63b44f4eb812ebe2b945dc187 100644 --- a/interface/web/admin/lib/lang/pt_software_repo.lng +++ b/interface/web/admin/lib/lang/pt_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Utilizador (opcional)'; $wb['repo_password_txt'] = 'Senha (opcional)'; $wb['active_txt'] = 'Activo'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index 93389bbe9006ae353ab33874b0c87c5bb54a12cd..32ed93f26099ad84e27c8ea23ffe2396eb0eebed 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index d3247ac82cbf4e53a0385dbf77c3ec0565afe665..55b7355602bdb36d8b709a0eba07eff66656c9a5 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/ro_software_package.lng b/interface/web/admin/lib/lang/ro_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/ro_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/ro_software_package_list.lng b/interface/web/admin/lib/lang/ro_software_package_list.lng index 1eca7d4232d6c653c0d78c071011bdd78a2ce3e0..4a8dcbcbf09d1141554f5f73e6a0cea790911448 100644 --- a/interface/web/admin/lib/lang/ro_software_package_list.lng +++ b/interface/web/admin/lib/lang/ro_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/ro_software_repo.lng b/interface/web/admin/lib/lang/ro_software_repo.lng index 574dd1162989badc8499f5af31451a43673bf4da..f2cbbb2c25776ab5f1794e7102ad264a98144049 100644 --- a/interface/web/admin/lib/lang/ro_software_repo.lng +++ b/interface/web/admin/lib/lang/ro_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'User (optional)'; $wb['repo_password_txt'] = 'Password (optional)'; $wb['active_txt'] = 'Active'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index d8486c8b08291b041961bc57180eba03dd488dcd..d237d638af2929fd4175065dde2454688e1bb938 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index f9cea0ca262cf1fc47f1b939a31e6a0aad6b5fad..5ae21a926237e324dffde8648c78834b1056a6ec 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/ru_software_package.lng b/interface/web/admin/lib/lang/ru_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/ru_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/ru_software_package_list.lng b/interface/web/admin/lib/lang/ru_software_package_list.lng index 41ebca92deeb3fbfd0eedc0e6599451acad30765..028ef00408d46121048be573b3435e23303d9c49 100644 --- a/interface/web/admin/lib/lang/ru_software_package_list.lng +++ b/interface/web/admin/lib/lang/ru_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/ru_software_repo.lng b/interface/web/admin/lib/lang/ru_software_repo.lng index 74fb30e05d10bfb73f0f12e44936ad63ef224f25..5aec8763c173d4ac73419c725857b0978e1b8743 100644 --- a/interface/web/admin/lib/lang/ru_software_repo.lng +++ b/interface/web/admin/lib/lang/ru_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Логин (опционально)'; $wb['repo_password_txt'] = 'Пароль (опционально)'; $wb['active_txt'] = 'Активен?'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index 8d47e5fd2f77824b667ad6c63b93e0aee139be35..ee0fc50b077705443b61eba9e42c639537c84538 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index df557e206979b59cd1cf44cf2c73b2b690d9e55b..089e629be37fbd044f7ddd8d5fe7511e5f1c21e4 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/se_software_package.lng b/interface/web/admin/lib/lang/se_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/se_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/se_software_package_list.lng b/interface/web/admin/lib/lang/se_software_package_list.lng index 87b27fd50b16af5b4ffe42a716a33db748143e64..9fa53867bc70f653a4410da5dc70988beebfdcdb 100644 --- a/interface/web/admin/lib/lang/se_software_package_list.lng +++ b/interface/web/admin/lib/lang/se_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/se_software_repo.lng b/interface/web/admin/lib/lang/se_software_repo.lng index 574dd1162989badc8499f5af31451a43673bf4da..f2cbbb2c25776ab5f1794e7102ad264a98144049 100644 --- a/interface/web/admin/lib/lang/se_software_repo.lng +++ b/interface/web/admin/lib/lang/se_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'User (optional)'; $wb['repo_password_txt'] = 'Password (optional)'; $wb['active_txt'] = 'Active'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index d8486c8b08291b041961bc57180eba03dd488dcd..d237d638af2929fd4175065dde2454688e1bb938 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index 0ea3647f2438eb6b72c2a102847aa6d346e3a107..c01606bf04c98c6b2c01de87cc1c3b367a0d70ff 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -171,4 +171,21 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/sk_software_package.lng b/interface/web/admin/lib/lang/sk_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/sk_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/sk_software_package_list.lng b/interface/web/admin/lib/lang/sk_software_package_list.lng index d6cf51120b4af144f0e589f6e5bb839429f4e277..502a3a2237707e5c196a6b6523743c118fb02870 100644 --- a/interface/web/admin/lib/lang/sk_software_package_list.lng +++ b/interface/web/admin/lib/lang/sk_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/sk_software_repo.lng b/interface/web/admin/lib/lang/sk_software_repo.lng index 16e835014a64a1c5cac43a414a386e8ca28ada46..263614f50c2b62177cdaf21eb27de6d42b6adc64 100644 --- a/interface/web/admin/lib/lang/sk_software_repo.lng +++ b/interface/web/admin/lib/lang/sk_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Uživateľ (voliteľný)'; $wb['repo_password_txt'] = 'Heslo (voliteľné)'; $wb['active_txt'] = 'Aktivovať'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index bf2c0777f47755edd53acd2de8ea46d3ea582b84..3b8b68321e7ef49cd1408b94211236daaac7fb15 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index a94949020185fd8a7a2bf89cd27a4d49aa1a6311..81595ff565ecc71284e56bef719c49a4432e201b 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -170,4 +170,22 @@ $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)'; $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)'; $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; +$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; +$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin'; +$wb['overquota_notify_client_txt'] = 'Send quota warnings to client'; +$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/lib/lang/tr_software_package.lng b/interface/web/admin/lib/lang/tr_software_package.lng new file mode 100644 index 0000000000000000000000000000000000000000..62ef734079c5dd66dfb5b02390e23398a09233a8 --- /dev/null +++ b/interface/web/admin/lib/lang/tr_software_package.lng @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/interface/web/admin/lib/lang/tr_software_package_list.lng b/interface/web/admin/lib/lang/tr_software_package_list.lng index eb1812880550900b685a2d1b7972f2f1c71e6228..0f33d0a31c589d8a7ffba116462bccbf264b6d40 100644 --- a/interface/web/admin/lib/lang/tr_software_package_list.lng +++ b/interface/web/admin/lib/lang/tr_software_package_list.lng @@ -8,4 +8,6 @@ $wb['toolsarea_head_txt'] = 'Packages'; $wb['repoupdate_txt'] = 'Update package list'; $wb['package_id_txt'] = 'local App-ID'; $wb['no_packages_txt'] = 'No packages available'; +$wb['edit_txt'] = 'Edit'; +$wb['delete_txt'] = 'Delete'; ?> diff --git a/interface/web/admin/lib/lang/tr_software_repo.lng b/interface/web/admin/lib/lang/tr_software_repo.lng index 67ce387eb3c3d73eb0a9aab7825d600bd6f36188..08c443babd32bd7e1877bc800fa8554226a36cdc 100644 --- a/interface/web/admin/lib/lang/tr_software_repo.lng +++ b/interface/web/admin/lib/lang/tr_software_repo.lng @@ -4,4 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Kullanıcı (isteğe bağlı)'; $wb['repo_password_txt'] = 'Şifre (isteğe bağlı)'; $wb['active_txt'] = 'Aktif'; +$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index 70e4853c739fbc645980b9073b34915227abe97c..e538a313f98f30ebe3b960c6c397a2a9165ea40e 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -49,4 +49,7 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['webmail_url_error_regex'] = 'Invalid webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; +$wb['webmail_url_note_txt'] = 'Placeholder:'; ?> diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php index b83e704d4a1425ba551c6dfb7d85d67737bb2a40..c2702c78f74b42fc911035b63952b6df4bc847fc 100644 --- a/interface/web/admin/system_config_edit.php +++ b/interface/web/admin/system_config_edit.php @@ -78,6 +78,24 @@ class page_action extends tform_actions { $app->tpl->setVar($record); } + function onShowEnd() { + global $app, $conf; + + // available dashlets + $available_dashlets_txt = ''; + $handle = @opendir(ISPC_WEB_PATH.'/dashboard/dashlets'); + while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..' && !is_dir($file)) { + $available_dashlets_txt .= '['.substr($file,0,-4).'] '; + } + } + + if($available_dashlets_txt == '') $available_dashlets_txt = '------'; + $app->tpl->setVar("available_dashlets_txt",$available_dashlets_txt); + + parent::onShowEnd(); + } + function onSubmit() { global $app; @@ -135,8 +153,9 @@ class page_action extends tform_actions { $server_config_array[$section] = $new_config; $server_config_str = $app->ini_parser->get_ini_string($server_config_array); - $sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1"; - if($conf['demo_mode'] != true) $app->db->query($sql); + //$sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1"; + //if($conf['demo_mode'] != true) $app->db->query($sql); + if($conf['demo_mode'] != true) $app->db->datalogUpdate('sys_ini', "config = '".$app->db->quote($server_config_str)."'", 'sysini_id', 1); /* * If we should use the domain-module, we have to insert all existing domains into the table diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm index 16f6052c3022367344045d003188882fb3e5faa3..6538236ed823be06a6dfb56d6911f3f60a38426c 100644 --- a/interface/web/admin/templates/system_config_misc_edit.htm +++ b/interface/web/admin/templates/system_config_misc_edit.htm @@ -20,6 +20,30 @@
+
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"}

{tmpl_var name='tab_change_discard_txt'}

diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php index 2b72d8195374a1565bc2b0ee0625a2e1bf24544f..ab33d9e12669eeb839a384830d4936c75a06df60 100644 --- a/interface/web/client/client_edit.php +++ b/interface/web/client/client_edit.php @@ -49,8 +49,8 @@ $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); class page_action extends tform_actions { - - + var $_template_additional = array(); + function onShowNew() { global $app, $conf; @@ -92,8 +92,28 @@ class page_action extends tform_actions { } } } - - parent::onSubmit(); + + if($this->id != 0) { + $this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $this->id); + if(!is_array($this->oldTemplatesAssigned) || count($this->oldTemplatesAssigned) < 1) { + // check previous type of storing templates + $tpls = explode('/', $this->oldDataRecord['template_additional']); + $this->oldTemplatesAssigned = array(); + foreach($tpls as $item) { + $item = trim($item); + if(!$item) continue; + $this->oldTemplatesAssigned[] = array('assigned_template_id' => 0, 'client_template_id' => $item, 'client_id' => $this->id); + } + unset($tpls); + } + } else { + $this->oldTemplatesAssigned = array(); + } + + $this->_template_additional = explode('/', $this->dataRecord['template_additional']); + $this->dataRecord['template_additional'] = ''; + + parent::onSubmit(); } function onShowEnd() { @@ -110,16 +130,44 @@ class page_action extends tform_actions { } $app->tpl->setVar('tpl_add_select',$option); - $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id; - $result = $app->db->queryOneRecord($sql); - $tplAdd = explode("/", $result['template_additional']); - $text = ''; - foreach($tplAdd as $item){ - if (trim($item) != ''){ - if ($text != '') $text .= ''; - $text .= '
  • ' . $tpl[$item]. '
  • '; - } - } + // check for new-style records + $result = $app->db->queryAllRecords('SELECT assigned_template_id, client_template_id FROM client_template_assigned WHERE client_id = ' . $this->id); + if($result && count($result) > 0) { + // new style + $items = array(); + $text = ''; + foreach($result as $item){ + if (trim($item['client_template_id']) != ''){ + if ($text != '') $text .= ''; + $text .= '
  • ' . $tpl[$item['client_template_id']]; + $text .= ''; + $tmp = new stdClass(); + $tmp->id = $item['assigned_template_id']; + $tmp->data = ''; + $app->plugin->raiseEvent('get_client_template_details', $tmp); + if($tmp->data != '') $text .= '
    ' . $tmp->data . ''; + + $text .= '
  • '; + $items[] = $item['assigned_template_id'] . ':' . $item['client_template_id']; + } + } + + $tmprec = $app->tform->getHTML(array('template_additional' => implode('/', $items)), $this->active_tab, 'EDIT'); + $app->tpl->setVar('template_additional', $tmprec['template_additional']); + unset($tmprec); + } else { + // old style + $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id; + $result = $app->db->queryOneRecord($sql); + $tplAdd = explode("/", $result['template_additional']); + $text = ''; + foreach($tplAdd as $item){ + if (trim($item) != ''){ + if ($text != '') $text .= ''; + $text .= '
  • ' . $tpl[$item]. '
  • '; + } + } + } $app->tpl->setVar('template_additional_list', $text); $app->tpl->setVar('app_module','client'); @@ -127,7 +175,7 @@ class page_action extends tform_actions { parent::onShowEnd(); } - + /* This function is called automatically right after the data was successful inserted in the database. @@ -180,6 +228,10 @@ class page_action extends tform_actions { $sql = "UPDATE client SET default_mailserver = $default_mailserver, default_webserver = $default_webserver, default_dnsserver = $default_dnsserver, default_slave_dnsserver = $default_dnsserver, default_dbserver = $default_dbserver WHERE client_id = ".$this->id; $app->db->query($sql); + if(isset($this->dataRecord['template_master'])) { + $app->uses('client_templates'); + $app->client_templates->update_client_templates($this->id, $this->_template_additional); + } parent::onAfterInsert(); } @@ -218,6 +270,99 @@ class page_action extends tform_actions { $app->db->query($sql); } + if(!isset($this->dataRecord['locked'])) $this->dataRecord['locked'] = 'n'; + if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && $this->dataRecord["locked"] != $this->oldDataRecord['locked']) { + /** lock all the things like web, mail etc. - easy to extend */ + + // get tmp_data of client + $client_data = $app->db->queryOneRecord('SELECT `tmp_data` FROM `client` WHERE `client_id` = ' . $this->id); + + if($client_data['tmp_data'] == '') $tmp_data = array(); + else $tmp_data = unserialize($client_data['tmp_data']); + + if(!is_array($tmp_data)) $tmp_data = array(); + + // database tables with their primary key columns + $to_disable = array('cron' => 'id', + 'ftp_user' => 'ftp_user_id', + 'mail_domain' => 'domain_id', + 'mail_forwarding' => 'forwarding_id', + 'mail_get' => 'mailget_id', + 'openvz_vm' => 'vm_id', + 'shell_user' => 'shell_user_id', + 'webdav_user' => 'webdav_user_id', + 'web_database' => 'database_id', + 'web_domain' => 'domain_id', + 'web_folder' => 'web_folder_id', + 'web_folder_user' => 'web_folder_user_id' + ); + + $udata = $app->db->queryOneRecord('SELECT `userid` FROM `sys_user` WHERE `client_id` = ' . $this->id); + $gdata = $app->db->queryOneRecord('SELECT `groupid` FROM `sys_group` WHERE `client_id` = ' . $this->id); + $sys_groupid = $gdata['groupid']; + $sys_userid = $udata['userid']; + + $entries = array(); + if($this->dataRecord['locked'] == 'y') { + $prev_active = array(); + $prev_sysuser = array(); + foreach($to_disable as $current => $keycolumn) { + $prev_active[$current] = array(); + $prev_sysuser[$current] = array(); + + $entries = $app->db->queryAllRecords('SELECT `' . $keycolumn . '` as `id`, `sys_userid`, `active` FROM `' . $current . '` WHERE `sys_groupid` = ' . $sys_groupid); + foreach($entries as $item) { + + if($item['active'] != 'y') $prev_active[$current][$item['id']]['active'] = 'n'; + if($item['sys_userid'] != $sys_userid) $prev_sysuser[$current][$item['id']]['active'] = $item['sys_userid']; + // we don't have to store these if y, as everything without previous state gets enabled later + + $app->db->datalogUpdate($current, array('active' => 'n', 'sys_userid' => $_SESSION["s"]["user"]["userid"]), $keycolumn, $item['id']); + } + } + + $tmp_data['prev_active'] = $prev_active; + $tmp_data['prev_sys_userid'] = $prev_sysuser; + $app->db->query("UPDATE `client` SET `tmp_data` = '" . $app->db->quote(serialize($tmp_data)) . "' WHERE `client_id` = " . $this->id); + unset($prev_active); + unset($prev_sysuser); + } elseif($this->dataRecord['locked'] == 'n') { + foreach($to_disable as $current => $keycolumn) { + $entries = $app->db->queryAllRecords('SELECT `' . $keycolumn . '` as `id` FROM `' . $current . '` WHERE `sys_groupid` = ' . $sys_groupid); + foreach($entries as $item) { + $set_active = 'y'; + $set_sysuser = $sys_userid; + if(array_key_exists('prev_active', $tmp_data) == true + && array_key_exists($current, $tmp_data['prev_active']) == true + && array_key_exists($item['id'], $tmp_data['prev_active'][$current]) == true + && $tmp_data['prev_active'][$current][$item['id']] == 'n') $set_active = 'n'; + if(array_key_exists('prev_sysuser', $tmp_data) == true + && array_key_exists($current, $tmp_data['prev_sysuser']) == true + && array_key_exists($item['id'], $tmp_data['prev_sysuser'][$current]) == true + && $tmp_data['prev_sysuser'][$current][$item['id']] != $sys_userid) $set_sysuser = $tmp_data['prev_sysuser'][$current][$item['id']]; + + $app->db->datalogUpdate($current, array('active' => $set_active, 'sys_userid' => $set_sysuser), $keycolumn, $item['id']); + } + } + if(array_key_exists('prev_active', $tmp_data)) unset($tmp_data['prev_active']); + $app->db->query("UPDATE `client` SET `tmp_data` = '" . $app->db->quote(serialize($tmp_data)) . "' WHERE `client_id` = " . $this->id); + } + unset($tmp_data); + unset($entries); + unset($to_disable); + } + + if(!isset($this->dataRecord['canceled'])) $this->dataRecord['canceled'] = 'n'; + if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && $this->dataRecord["canceled"] != $this->oldDataRecord['canceled']) { + if($this->dataRecord['canceled'] == 'y') { + $sql = "UPDATE sys_user SET active = '0' WHERE client_id = " . $this->id; + $app->db->query($sql); + } elseif($this->dataRecord['canceled'] == 'n') { + $sql = "UPDATE sys_user SET active = '1' WHERE client_id = " . $this->id; + $app->db->query($sql); + } + } + // language changed if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) { $language = $app->db->quote($this->dataRecord["language"]); @@ -236,6 +381,11 @@ class page_action extends tform_actions { $app->db->query($sql); } + if(isset($this->dataRecord['template_master'])) { + $app->uses('client_templates'); + $app->client_templates->update_client_templates($this->id, $this->_template_additional); + } + parent::onAfterUpdate(); } } diff --git a/interface/web/client/client_template_del.php b/interface/web/client/client_template_del.php index dbe8639c077f9729afbd069144383a4821cb98a9..647ad7c54b328cedc697fa1ba696c3f7a6927e92 100644 --- a/interface/web/client/client_template_del.php +++ b/interface/web/client/client_template_del.php @@ -53,6 +53,13 @@ class page_action extends tform_actions { function onBeforeDelete() { global $app; + // check new style + $rec = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client_template_assigned WHERE client_template_id = ".$this->id); + if($rec['number'] > 0) { + $app->error($app->tform->lng('template_del_aborted_txt')); + } + + // check old style $rec = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE template_master = ".$this->id." OR template_additional like '%/".$this->id."/%'"); if($rec['number'] > 0) { $app->error($app->tform->lng('template_del_aborted_txt')); diff --git a/interface/web/client/client_template_edit.php b/interface/web/client/client_template_edit.php index a683800ae47d3ffbf17fcfee3e10bea270870529..bb2fd944b48bdd1dabad744c729127698672de87 100644 --- a/interface/web/client/client_template_edit.php +++ b/interface/web/client/client_template_edit.php @@ -81,7 +81,7 @@ class page_action extends tform_actions { if ($this->dataRecord["template_type"] == 'm'){ $sql = "SELECT client_id FROM client WHERE template_master = " . $this->id; } else { - $sql = "SELECT client_id FROM client WHERE template_additional LIKE '%/" . $this->id . "/%' OR template_additional LIKE '" . $this->id . "/%' OR template_additional LIKE '%/" . $this->id . "'"; + $sql = "SELECT client_id FROM client WHERE template_additional LIKE '%/" . $this->id . "/%' OR template_additional LIKE '" . $this->id . "/%' OR template_additional LIKE '%/" . $this->id . "' UNION SELECT client_id FROM client_template_assigned WHERE client_template_id = " . $this->id; } $clients = $app->db->queryAllRecords($sql); if (is_array($clients)){ diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php index b29a8316122b8b743f504c99f4cc7dc1bbb6c7f6..03624809510ccc2b82089258bd0b51d06025edec 100644 --- a/interface/web/client/form/client.tform.php +++ b/interface/web/client/form/client.tform.php @@ -100,6 +100,12 @@ $form["tabs"]['address'] = array ( 'cols' => '', 'searchable' => 2 ), + 'gender' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('' => '', 'm' => 'gender_m_txt', 'f' => 'gender_f_txt') + ), 'contact_name' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -454,6 +460,18 @@ $form["tabs"]['address'] = array ( 'cols' => '', 'searchable' => 2 ), + 'locked' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'canceled' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), ################################## # END Datatable fields ################################## diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php index a6c4bd95c3010a390aa35ff434d73e539a8503b0..c78ed8ea4211e93e6aafe21866fa1e115e8bffb3 100644 --- a/interface/web/client/form/reseller.tform.php +++ b/interface/web/client/form/reseller.tform.php @@ -100,6 +100,12 @@ $form["tabs"]['address'] = array ( 'cols' => '', 'searchable' => 2 ), + 'gender' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('' => '', 'm' => 'gender_m_txt', 'f' => 'gender_f_txt') + ), 'contact_name' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -451,6 +457,18 @@ $form["tabs"]['address'] = array ( 'cols' => '', 'searchable' => 2 ), + 'locked' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'canceled' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), ################################## # END Datatable fields ################################## diff --git a/interface/web/client/lib/lang/ar_client.lng b/interface/web/client/lib/lang/ar_client.lng index 42aeea1587875784d9cfb4be19b930fedcff38fe..0c1d0f636709535cef5842aea25ebb68c009d176 100644 --- a/interface/web/client/lib/lang/ar_client.lng +++ b/interface/web/client/lib/lang/ar_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/ar_client_del.lng b/interface/web/client/lib/lang/ar_client_del.lng index a826d64e146cd9085debb382f71c3357966bb1f6..0932e9568ac478948a00b84b0c50acaf2ce0c7c2 100644 --- a/interface/web/client/lib/lang/ar_client_del.lng +++ b/interface/web/client/lib/lang/ar_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirm action'; $wb['delete_explanation'] = 'This action will delete the following number of records associated with this client'; $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/ar_client_template_list.lng b/interface/web/client/lib/lang/ar_client_template_list.lng index b93a5f97bc98d1fa5883a22aa7909e442afa4410..0840184a9bafca2542318ec40c751362e105f931 100644 --- a/interface/web/client/lib/lang/ar_client_template_list.lng +++ b/interface/web/client/lib/lang/ar_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template name'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/ar_reseller.lng b/interface/web/client/lib/lang/ar_reseller.lng index 91025a9ea8c50f57ffe3367281cdcaafbd7797fc..32c9bb1c7c96c1b588bcfcec84f3a41702ac9fe8 100644 --- a/interface/web/client/lib/lang/ar_reseller.lng +++ b/interface/web/client/lib/lang/ar_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/bg_client.lng b/interface/web/client/lib/lang/bg_client.lng index 7d8a12a94c280114f8170e98a8e503e32b6a661a..229dace93a9efb048ad76cf2db9b79916c9b99fc 100644 --- a/interface/web/client/lib/lang/bg_client.lng +++ b/interface/web/client/lib/lang/bg_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/bg_client_del.lng b/interface/web/client/lib/lang/bg_client_del.lng index 8c5e36a73ee22a61fc19a5289436c4c429ed8f36..54d4831d776453b5ab0fbc3e143640a00e127f3d 100644 --- a/interface/web/client/lib/lang/bg_client_del.lng +++ b/interface/web/client/lib/lang/bg_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Потвърди действието'; $wb['delete_explanation'] = 'This action will delete the following number of records associated with this client'; $wb['btn_save_txt'] = 'Изтрии клиента'; $wb['btn_cancel_txt'] = 'Отказ, без изтриване на клиента'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/bg_client_template_list.lng b/interface/web/client/lib/lang/bg_client_template_list.lng index b93a5f97bc98d1fa5883a22aa7909e442afa4410..0840184a9bafca2542318ec40c751362e105f931 100644 --- a/interface/web/client/lib/lang/bg_client_template_list.lng +++ b/interface/web/client/lib/lang/bg_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template name'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/bg_reseller.lng b/interface/web/client/lib/lang/bg_reseller.lng index 6f57b527f32d14dcd295655f32772b2ce684c6e6..857e4a85a504d290f3ba17dc8d56103fdddfb11f 100644 --- a/interface/web/client/lib/lang/bg_reseller.lng +++ b/interface/web/client/lib/lang/bg_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng index 01b45f2dc9985d7436e9d2eb495d1c4a3b9c3a64..ae2c12280d627a11dc7340b979b1a1adabe859ec 100644 --- a/interface/web/client/lib/lang/br_client.lng +++ b/interface/web/client/lib/lang/br_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/br_client_del.lng b/interface/web/client/lib/lang/br_client_del.lng index 57788b035608359ddc35635998dd4c5f89da5a79..3b879b05d49218479ab332d149fb1064ad349772 100644 --- a/interface/web/client/lib/lang/br_client_del.lng +++ b/interface/web/client/lib/lang/br_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirmar ação'; $wb['delete_explanation'] = 'Atenção: está ação ira remover todos os objetos associados ao cliente!'; $wb['btn_save_txt'] = 'Remover o cliente'; $wb['btn_cancel_txt'] = 'Cancelar sem remover o cliente'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/br_client_template_list.lng b/interface/web/client/lib/lang/br_client_template_list.lng index 231f7fdea0ec51ca5cad4a6b7d6593c4f5901b1e..f5d9ee6d2526a5be8aeca83f78eb9823db9a6a78 100644 --- a/interface/web/client/lib/lang/br_client_template_list.lng +++ b/interface/web/client/lib/lang/br_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Gabarito de Cliente '; $wb['template_type_txt'] = 'Tipo'; $wb['template_name_txt'] = 'Nome do Gabarito'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/br_reseller.lng b/interface/web/client/lib/lang/br_reseller.lng index c565aec9896873e96c2f9ed21caa93b983d4f260..2fa5368591ba2b489240152c454b9be9962efc4f 100644 --- a/interface/web/client/lib/lang/br_reseller.lng +++ b/interface/web/client/lib/lang/br_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng index eb1273fdef858e5a63b2ab748ce7cb0b7476bb99..d5980d1bb09c35192d7f4269704031f89289f14f 100644 --- a/interface/web/client/lib/lang/cz_client.lng +++ b/interface/web/client/lib/lang/cz_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/cz_client_del.lng b/interface/web/client/lib/lang/cz_client_del.lng index 4515806be5d944c55947a9b0d91ea307f32cbf8b..ca1a13f8755cb2233aac2012a08a26324bbb8905 100644 --- a/interface/web/client/lib/lang/cz_client_del.lng +++ b/interface/web/client/lib/lang/cz_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Potvrdit akci'; $wb['delete_explanation'] = 'Tato akce smaže následující počet záznamů přidružených s tímto klientem'; $wb['btn_save_txt'] = 'Smazat klienta'; $wb['btn_cancel_txt'] = 'Zrušit bez smazání klienta'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/cz_client_template_list.lng b/interface/web/client/lib/lang/cz_client_template_list.lng index c3faae17c7100b156f28dbea53c5f43fcb3409d2..675da9508362141fa1aba6360b3a8502ca94d402 100644 --- a/interface/web/client/lib/lang/cz_client_template_list.lng +++ b/interface/web/client/lib/lang/cz_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Klientské šablony'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Název šablony'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng index 6e7fec6c0221809a31e5c9a388bd81c037033270..07af2a4a3ea6872aa3271cab5ab9d96083401f56 100644 --- a/interface/web/client/lib/lang/cz_reseller.lng +++ b/interface/web/client/lib/lang/cz_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng index 57310d8e4bbf08a35ffc77967d2bc20a217b032e..4aa8abdfcb315fee024e1c62ba077c343e63507c 100644 --- a/interface/web/client/lib/lang/de_client.lng +++ b/interface/web/client/lib/lang/de_client.lng @@ -144,4 +144,9 @@ $wb['aps_limits_txt'] = 'APS Installationsassistent Limits'; $wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen'; $wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.'; $wb['default_slave_dnsserver_txt'] = 'Standard Secondary DNS Server'; +$wb['locked_txt'] = 'Gesperrt (deaktiviert alle Webs, etc.)'; +$wb['canceled_txt'] = 'Gekündigt (verhindert Kundenlogin)'; +$wb['gender_txt'] = 'Anrede'; +$wb['gender_m_txt'] = 'Herr'; +$wb['gender_f_txt'] = 'Frau'; ?> diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng index 072d648e529994f48563fa9c572b03627615a006..9bc4d53780631645d0c7917a13a8ba92bf4109aa 100644 --- a/interface/web/client/lib/lang/de_reseller.lng +++ b/interface/web/client/lib/lang/de_reseller.lng @@ -143,4 +143,9 @@ $wb['aps_limits_txt'] = 'APS Installationsassistent Limits'; $wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen'; $wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.'; $wb['default_slave_dnsserver_txt'] = 'Standard Secondary DNS Server'; +$wb['locked_txt'] = 'Gesperrt'; +$wb['canceled_txt'] = 'Gekündigt'; +$wb['gender_m_txt'] = 'Herr'; +$wb['gender_f_txt'] = 'Frau'; +$wb['gender_txt'] = 'Anrede'; ?> diff --git a/interface/web/client/lib/lang/el_client.lng b/interface/web/client/lib/lang/el_client.lng index 6fdb9cfe9d4919a5181ced0e20967ad05a3605a8..ba5c6820b7a12b7795414b1dd2f483756ff16668 100644 --- a/interface/web/client/lib/lang/el_client.lng +++ b/interface/web/client/lib/lang/el_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/el_client_del.lng b/interface/web/client/lib/lang/el_client_del.lng index ef21bfe2189e6a366e6d3e06be6daf0d7e791fe1..60ebd617d0a8b76b79a0b805d0bc2b3f2e188682 100644 --- a/interface/web/client/lib/lang/el_client_del.lng +++ b/interface/web/client/lib/lang/el_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Επιβεβαίωση ενέργειας'; $wb['delete_explanation'] = 'Η ενέργεια θα διαγράψει τις παρακάτω εγγραφές που αφορούν τον πελάτη'; $wb['btn_save_txt'] = 'Διαγραφή πελάτη'; $wb['btn_cancel_txt'] = 'Ακύρωση χωρίς διαγραφή πελάτη'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/el_client_template_list.lng b/interface/web/client/lib/lang/el_client_template_list.lng index 1ce866d23cc534bae1b03e30b5f4b984645b27e8..175c2bfb8f3cc4a99ea135e27ae49c400541d9f8 100644 --- a/interface/web/client/lib/lang/el_client_template_list.lng +++ b/interface/web/client/lib/lang/el_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Πρότυπα Πελάτη'; $wb['template_type_txt'] = 'Τύπος'; $wb['template_name_txt'] = 'Όνομα Προτύπου'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/el_reseller.lng b/interface/web/client/lib/lang/el_reseller.lng index 2438cdad832136541d77d1856ae0db9f21755a1e..c920ab6d2150769e88b69dd9633f0e9728c82512 100644 --- a/interface/web/client/lib/lang/el_reseller.lng +++ b/interface/web/client/lib/lang/el_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng index 69574d8442c4b01884b7d93a551679b5343d4ab6..7c4ee2688448c31899ad012f80ee5effedab78ae 100644 --- a/interface/web/client/lib/lang/en_client.lng +++ b/interface/web/client/lib/lang/en_client.lng @@ -147,4 +147,9 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb["default_slave_dnsserver_txt"] = 'Default Secondary DNS Server'; +$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['canceled_txt'] = 'Canceled (disables client login)'; +$wb['gender_txt'] = 'Title'; +$wb['gender_m_txt'] = 'Mr.'; +$wb['gender_f_txt'] = 'Ms.'; ?> diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng index d936ddbcc19a1f11960065cd9177e3dd33b33e1d..4076dd5cb999bdad3ffc61a2f9c55c260e5ac00a 100644 --- a/interface/web/client/lib/lang/en_reseller.lng +++ b/interface/web/client/lib/lang/en_reseller.lng @@ -145,4 +145,9 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb["default_slave_dnsserver_txt"] = 'Default Secondary DNS Server'; +$wb['locked_txt'] = 'Locked'; +$wb['canceled_txt'] = 'Canceled'; +$wb['gender_m_txt'] = 'Mr.'; +$wb['gender_f_txt'] = 'Ms.'; +$wb['gender_txt'] = 'Title'; ?> diff --git a/interface/web/client/lib/lang/es_client.lng b/interface/web/client/lib/lang/es_client.lng index 751d8634f007352e4a5fed2dd5669143c0144347..d38b0b914872e5347452185122c43551a5b43f44 100644 --- a/interface/web/client/lib/lang/es_client.lng +++ b/interface/web/client/lib/lang/es_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/es_client_del.lng b/interface/web/client/lib/lang/es_client_del.lng index 8a3f580c4ece48b794d68c48e5a488f93ef77542..a40194b49c98e303ad72e909b567ab9b328d4aca 100644 --- a/interface/web/client/lib/lang/es_client_del.lng +++ b/interface/web/client/lib/lang/es_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirmar acción'; $wb['delete_explanation'] = 'Esta acción eliminara los siguientes registros asociados a este cliente'; $wb['btn_save_txt'] = 'Eliminar cliente'; $wb['btn_cancel_txt'] = 'Cancelar sin eliminar cliente'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/es_client_template_list.lng b/interface/web/client/lib/lang/es_client_template_list.lng index 9bbe98d0f135069c762184845cec216a4af2b9b2..66aefc783ae601bee714de6f5eb8952c47e54b96 100644 --- a/interface/web/client/lib/lang/es_client_template_list.lng +++ b/interface/web/client/lib/lang/es_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Plantillas de clientes'; $wb['template_type_txt'] = 'Tipo'; $wb['template_name_txt'] = 'Nombre'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/es_reseller.lng b/interface/web/client/lib/lang/es_reseller.lng index 6b809baf087823f62747c7134d50322212ea480b..ea07f21395a25b4145fea4d2073133b4e0e89bdd 100644 --- a/interface/web/client/lib/lang/es_reseller.lng +++ b/interface/web/client/lib/lang/es_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/fi_client.lng b/interface/web/client/lib/lang/fi_client.lng index c0b38cfa1c3e0445b21ffb8c7aa0b9fad3995ece..317c0244b7caabc1cc67db9f80f3235c8230e106 100755 --- a/interface/web/client/lib/lang/fi_client.lng +++ b/interface/web/client/lib/lang/fi_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/fi_client_del.lng b/interface/web/client/lib/lang/fi_client_del.lng index 6ddc1f14dd638c92fb0d7e6b30bc05e49b09d4b6..b87895b8c0496e4e9ca9e46f6076c67cad908b87 100644 --- a/interface/web/client/lib/lang/fi_client_del.lng +++ b/interface/web/client/lib/lang/fi_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Vahvista toiminto'; $wb['delete_explanation'] = 'Tämä toiminto alla olevan määrän tämän asiakkaan tietueita'; $wb['btn_save_txt'] = 'Poista käyttäjä'; $wb['btn_cancel_txt'] = 'Keskeytä poistamatta asiakasta'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/fi_client_template_list.lng b/interface/web/client/lib/lang/fi_client_template_list.lng index 094c3c70c93600556fa834ac9744ca59cd82e7ed..b3f310f131c899f27a5f724ca55ea866f2a32d23 100755 --- a/interface/web/client/lib/lang/fi_client_template_list.lng +++ b/interface/web/client/lib/lang/fi_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Asiakasmallit'; $wb['template_type_txt'] = 'Tyyppi'; $wb['template_name_txt'] = 'Asiakasmallin nimi'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/fi_reseller.lng b/interface/web/client/lib/lang/fi_reseller.lng index 25023da75f250e0b1551f81bf8202373cd61f993..ed9ebd1278832e97a4a8addf0161ecdbf43b9a29 100644 --- a/interface/web/client/lib/lang/fi_reseller.lng +++ b/interface/web/client/lib/lang/fi_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng index 13e15eff13a8aacec6079fa813490d7d05fdb2ca..84400ca1b39ad6f850f55fbec4d6f6666f5e3c2f 100644 --- a/interface/web/client/lib/lang/fr_client.lng +++ b/interface/web/client/lib/lang/fr_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/fr_client_del.lng b/interface/web/client/lib/lang/fr_client_del.lng index b4d7d5564ba80eb5b891519240f14c3fbc491398..de7757aceb488fbf70a693eddf37fa0ce93bd192 100644 --- a/interface/web/client/lib/lang/fr_client_del.lng +++ b/interface/web/client/lib/lang/fr_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirmer laction'; $wb['delete_explanation'] = 'Cette action va supprimer le nombre d\'enregistrements suivants associés avec le client'; $wb['btn_save_txt'] = 'Effacer le client'; $wb['btn_cancel_txt'] = 'Annuler sans effacer le client'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/fr_client_template_list.lng b/interface/web/client/lib/lang/fr_client_template_list.lng index 3405427d2090c175490ce98d5259c59793ee7fb3..571b8705b59a7277cff0f7d772dbf13420af3c17 100644 --- a/interface/web/client/lib/lang/fr_client_template_list.lng +++ b/interface/web/client/lib/lang/fr_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Modèles de clients'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Nom du modèle'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng index 7162656baf58326a000b7440fcae51a0d7d90ced..f00be206c6fae6e9efc685dc950b9e4502e47433 100644 --- a/interface/web/client/lib/lang/fr_reseller.lng +++ b/interface/web/client/lib/lang/fr_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/hr_client.lng b/interface/web/client/lib/lang/hr_client.lng index 38126136e947cb618042138a151465c42a170386..ed38e03ef4ed3ab938c85b49b5077ac6a55a51c0 100644 --- a/interface/web/client/lib/lang/hr_client.lng +++ b/interface/web/client/lib/lang/hr_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/hr_client_del.lng b/interface/web/client/lib/lang/hr_client_del.lng index 240f0c8e3e4d3d2c0a484b3b3759e1e702221dd4..939cc59fb6c411ab7e7e93ae21fbddfb705f54f6 100644 --- a/interface/web/client/lib/lang/hr_client_del.lng +++ b/interface/web/client/lib/lang/hr_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Potvrdi brisanje'; $wb['delete_explanation'] = 'Ukoliko potvrdite izbrisati će se svi zapisi povezani sa ovim klijentom'; $wb['btn_save_txt'] = 'Obriši klijenta'; $wb['btn_cancel_txt'] = 'Prekini i ne briši klijenta'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/hr_client_template_list.lng b/interface/web/client/lib/lang/hr_client_template_list.lng index d2c951813f68c23b5386af605fa1b3751775a308..cdc2f0006ae1e78a666f356ad765042df30e823a 100644 --- a/interface/web/client/lib/lang/hr_client_template_list.lng +++ b/interface/web/client/lib/lang/hr_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Predlošci za klijente'; $wb['template_type_txt'] = 'Vrsta'; $wb['template_name_txt'] = 'Naziv predloška'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/hr_reseller.lng b/interface/web/client/lib/lang/hr_reseller.lng index 5674d6ac2921366bdf52584bceb2ae8cfe4f6823..1de56c7db06e841a315c6ad47ebd9bd7623c2de8 100644 --- a/interface/web/client/lib/lang/hr_reseller.lng +++ b/interface/web/client/lib/lang/hr_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/hu_client.lng b/interface/web/client/lib/lang/hu_client.lng index b393ee76d79156f21ef3a34026f6fb0db2986dfe..7bcaccccb0cd2b76214158bcd2c571804f7d38f8 100644 --- a/interface/web/client/lib/lang/hu_client.lng +++ b/interface/web/client/lib/lang/hu_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/hu_client_del.lng b/interface/web/client/lib/lang/hu_client_del.lng index a826d64e146cd9085debb382f71c3357966bb1f6..0932e9568ac478948a00b84b0c50acaf2ce0c7c2 100644 --- a/interface/web/client/lib/lang/hu_client_del.lng +++ b/interface/web/client/lib/lang/hu_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirm action'; $wb['delete_explanation'] = 'This action will delete the following number of records associated with this client'; $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/hu_client_template_list.lng b/interface/web/client/lib/lang/hu_client_template_list.lng index 70e047fb74dbaf5c3614dfd5ec08738adaab173e..316de63143533a8fc3eb316e579d8dd6a7ce7074 100644 --- a/interface/web/client/lib/lang/hu_client_template_list.lng +++ b/interface/web/client/lib/lang/hu_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Ügyfél-Sablonok'; $wb['template_type_txt'] = 'típus'; $wb['template_name_txt'] = 'Sablon neve'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/hu_reseller.lng b/interface/web/client/lib/lang/hu_reseller.lng index 9c450936532b232ae515ee13bc07f86fcc7a99bc..019bbc132c04ab29cfd6be6b071ab54f5358c35f 100644 --- a/interface/web/client/lib/lang/hu_reseller.lng +++ b/interface/web/client/lib/lang/hu_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/id_client.lng b/interface/web/client/lib/lang/id_client.lng index 549493f794b34a3a450ae9ec797f9ea4cd6fe42a..339a310785bfc6a3936a3df741a9e4b2c5e9fbdd 100644 --- a/interface/web/client/lib/lang/id_client.lng +++ b/interface/web/client/lib/lang/id_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/id_client_del.lng b/interface/web/client/lib/lang/id_client_del.lng index c8b58ac4304d582b87dba5ef4c5946b2d43286b2..1adf18bd7d016c5c90f161daea0152305d6cf3bd 100644 --- a/interface/web/client/lib/lang/id_client_del.lng +++ b/interface/web/client/lib/lang/id_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Konfirmasi Tindakan'; $wb['delete_explanation'] = 'Tindakan ini akan menghapus sejumlah record yang terkait dengan klien ini'; $wb['btn_save_txt'] = 'Hapus Klien'; $wb['btn_cancel_txt'] = 'Batalkan Tanpa Menghapus Klien'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/id_client_template_list.lng b/interface/web/client/lib/lang/id_client_template_list.lng index b9ec9abb700d1ff04f082f5b0c58b997a82ca7c1..e0da97101a8f3f623f64962380f1d02fefc112f6 100644 --- a/interface/web/client/lib/lang/id_client_template_list.lng +++ b/interface/web/client/lib/lang/id_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Template Klien'; $wb['template_type_txt'] = 'Tipe'; $wb['template_name_txt'] = 'Nama Template'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/id_reseller.lng b/interface/web/client/lib/lang/id_reseller.lng index f558d514770ae73f70ec91ece961f63d77d1bdaa..3c49f0464a14a0d0d53bd527f39967b0b73a5e3e 100644 --- a/interface/web/client/lib/lang/id_reseller.lng +++ b/interface/web/client/lib/lang/id_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/it_client.lng b/interface/web/client/lib/lang/it_client.lng index a2e6f3ec514d346303d981164c0dd7271c648323..bb6b4e9f9b41c879c558460e1fe148d2e7236dfe 100644 --- a/interface/web/client/lib/lang/it_client.lng +++ b/interface/web/client/lib/lang/it_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/it_client_del.lng b/interface/web/client/lib/lang/it_client_del.lng index df74987ab2feff53504696ebbee79567836220a8..49811c377ea4cdb0ce3f3ba5c894c7083c2e3c1d 100644 --- a/interface/web/client/lib/lang/it_client_del.lng +++ b/interface/web/client/lib/lang/it_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Conferma operazione'; $wb['delete_explanation'] = 'Questa operazione cancellerà i seguenti record associati a questo cliente'; $wb['btn_save_txt'] = 'Cancella cliente'; $wb['btn_cancel_txt'] = 'Annulla senza cancellare il cliente'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/it_client_template_list.lng b/interface/web/client/lib/lang/it_client_template_list.lng index 03aa10e5c912eb9da59a1cd1c65c937e7363f72c..d78faf87789ad9536b6880ede51c6335e7c16f17 100644 --- a/interface/web/client/lib/lang/it_client_template_list.lng +++ b/interface/web/client/lib/lang/it_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Modelli cliente'; $wb['template_type_txt'] = 'Tipo'; $wb['template_name_txt'] = 'Nome modello'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/it_reseller.lng b/interface/web/client/lib/lang/it_reseller.lng index 91025a9ea8c50f57ffe3367281cdcaafbd7797fc..32c9bb1c7c96c1b588bcfcec84f3a41702ac9fe8 100644 --- a/interface/web/client/lib/lang/it_reseller.lng +++ b/interface/web/client/lib/lang/it_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/ja_client.lng b/interface/web/client/lib/lang/ja_client.lng index e11629fba817786910af9b0286f144a523fce4fe..85e35b9a50c7910267c558bf806f896e86a539ea 100644 --- a/interface/web/client/lib/lang/ja_client.lng +++ b/interface/web/client/lib/lang/ja_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/ja_client_del.lng b/interface/web/client/lib/lang/ja_client_del.lng index a826d64e146cd9085debb382f71c3357966bb1f6..0932e9568ac478948a00b84b0c50acaf2ce0c7c2 100644 --- a/interface/web/client/lib/lang/ja_client_del.lng +++ b/interface/web/client/lib/lang/ja_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirm action'; $wb['delete_explanation'] = 'This action will delete the following number of records associated with this client'; $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/ja_client_template_list.lng b/interface/web/client/lib/lang/ja_client_template_list.lng index 05d3358c4e4ec45c8dd7127ede4c1c2d95ee0385..8adca01b14bef778c75adca471fd1cb9440e7ad6 100644 --- a/interface/web/client/lib/lang/ja_client_template_list.lng +++ b/interface/web/client/lib/lang/ja_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'クライアントテンプレート'; $wb['template_type_txt'] = '種別'; $wb['template_name_txt'] = 'テンプレート名'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/ja_reseller.lng b/interface/web/client/lib/lang/ja_reseller.lng index 812dbf418bef426e31e1a791b640ff25c867fd97..9f3251df9a28523654a471068b83cc5fc475de2a 100644 --- a/interface/web/client/lib/lang/ja_reseller.lng +++ b/interface/web/client/lib/lang/ja_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/nl_client.lng b/interface/web/client/lib/lang/nl_client.lng index a86a887370d367613b78d021913604ef126db203..42bea6451d06abfc7ca99f86dc25f387f00f2ac9 100644 --- a/interface/web/client/lib/lang/nl_client.lng +++ b/interface/web/client/lib/lang/nl_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/nl_client_del.lng b/interface/web/client/lib/lang/nl_client_del.lng index 00b7c2fd26a529f9b14a17227571d3c9b93635b7..6a6b3b6ce3e475da2eaa7d5860fcc1976f8c7107 100644 --- a/interface/web/client/lib/lang/nl_client_del.lng +++ b/interface/web/client/lib/lang/nl_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Bevestig actie'; $wb['delete_explanation'] = 'Deze actie verwijderd het volgende aantal aan records die geassocieerd zijn met deze klant'; $wb['btn_save_txt'] = 'Verwijder de klant'; $wb['btn_cancel_txt'] = 'Annuleren zonder de klant te verwijderen'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/nl_client_template_list.lng b/interface/web/client/lib/lang/nl_client_template_list.lng index 228f19515072bbd8796cc82a02d3f3dfa92ba4f5..8bbe7a5a0fc82366cb1104901f0edda4228b39e6 100644 --- a/interface/web/client/lib/lang/nl_client_template_list.lng +++ b/interface/web/client/lib/lang/nl_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template naam'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/nl_reseller.lng b/interface/web/client/lib/lang/nl_reseller.lng index bf3eedcf5315ea3d2b9a200c35900ee5a5305bfc..cf871575527255536d2acd9c0afae120c68840e0 100644 --- a/interface/web/client/lib/lang/nl_reseller.lng +++ b/interface/web/client/lib/lang/nl_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/pl_client.lng b/interface/web/client/lib/lang/pl_client.lng index 3607bff1712a17ee5e5507d8eb2dbc64cad9fc53..3f8ac0c750fdb54597de2eea660bb57f6c20e550 100644 --- a/interface/web/client/lib/lang/pl_client.lng +++ b/interface/web/client/lib/lang/pl_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'Limity Instalatora APS'; $wb['limit_aps_txt'] = 'Maks. liczba instalacji APS'; $wb['limit_aps_error_notint'] = 'Limit instalacji APS musi być liczbą'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/pl_client_del.lng b/interface/web/client/lib/lang/pl_client_del.lng index 666e12a24c4b9ab7fdd9bb55307ab138071bf818..429c61b4c72b3d22814c5659ef1cbe46d86fcf62 100644 --- a/interface/web/client/lib/lang/pl_client_del.lng +++ b/interface/web/client/lib/lang/pl_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Potwierdź akcję'; $wb['delete_explanation'] = 'Ta akcja usunie następującą liczbę rekordów powiązanych z klientem'; $wb['btn_save_txt'] = 'Usuń klienta'; $wb['btn_cancel_txt'] = 'Anuluj bez usuwania klienta'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/pl_client_template_list.lng b/interface/web/client/lib/lang/pl_client_template_list.lng index 06a39761f9af7d4a0191b4ed73b0b3a22b0d5541..d6bd952d0bd7d427172e287b67ab6ddebd0dd04f 100644 --- a/interface/web/client/lib/lang/pl_client_template_list.lng +++ b/interface/web/client/lib/lang/pl_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Szablon klienta'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Nazwa szablonu'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/pl_reseller.lng b/interface/web/client/lib/lang/pl_reseller.lng index 64bd81325336f65fd2e19d57fb5a18de928fd3b8..63e4c23896042a8177fb86336bdaaed022631d0d 100644 --- a/interface/web/client/lib/lang/pl_reseller.lng +++ b/interface/web/client/lib/lang/pl_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'Limit instalacji APS'; $wb['limit_aps_txt'] = 'Maks. liczba instancji APS'; $wb['limit_aps_error_notint'] = 'Limit instancji APS musi być liczbą'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/pt_client.lng b/interface/web/client/lib/lang/pt_client.lng index 5798a0051280600e5d2a280e5fbbee7c2a72035e..9e43b0fb3f8f0f32bbad75a1cc942185ab8a987d 100644 --- a/interface/web/client/lib/lang/pt_client.lng +++ b/interface/web/client/lib/lang/pt_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/pt_client_del.lng b/interface/web/client/lib/lang/pt_client_del.lng index ba2425d36a42402e2ff09269aa77cc1044f91a24..ef71fa91e5e0436c4cc3f38f65652c003a815905 100644 --- a/interface/web/client/lib/lang/pt_client_del.lng +++ b/interface/web/client/lib/lang/pt_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirmar acção'; $wb['delete_explanation'] = 'Atenção: está acção ira remover todos os objectos associados ao cliente!'; $wb['btn_save_txt'] = 'Remover o cliente'; $wb['btn_cancel_txt'] = 'Cancelar sem remover o cliente'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/pt_client_template_list.lng b/interface/web/client/lib/lang/pt_client_template_list.lng index cd57886ba2601f389d9803390085ace7cab453d5..d5f451111a9fd9c63356ba4e54854cd67042f7af 100644 --- a/interface/web/client/lib/lang/pt_client_template_list.lng +++ b/interface/web/client/lib/lang/pt_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Templates de Cliente '; $wb['template_type_txt'] = 'Tipo'; $wb['template_name_txt'] = 'Nome da template'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/pt_reseller.lng b/interface/web/client/lib/lang/pt_reseller.lng index 7e466004de8583611f2794189e8b03afdfa420af..d2f34e9682e43ccba698e15eade050a7bd3db8e7 100644 --- a/interface/web/client/lib/lang/pt_reseller.lng +++ b/interface/web/client/lib/lang/pt_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/ro_client.lng b/interface/web/client/lib/lang/ro_client.lng index 5651460a1365d4a8b0cc86b6289279dc0e72b76c..50dd005d66cba593b3925912d4f1da24ec8b2f1b 100644 --- a/interface/web/client/lib/lang/ro_client.lng +++ b/interface/web/client/lib/lang/ro_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/ro_client_del.lng b/interface/web/client/lib/lang/ro_client_del.lng index a826d64e146cd9085debb382f71c3357966bb1f6..0932e9568ac478948a00b84b0c50acaf2ce0c7c2 100644 --- a/interface/web/client/lib/lang/ro_client_del.lng +++ b/interface/web/client/lib/lang/ro_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirm action'; $wb['delete_explanation'] = 'This action will delete the following number of records associated with this client'; $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/ro_client_template_list.lng b/interface/web/client/lib/lang/ro_client_template_list.lng index b19f5d43cd3a16d9366b5be4a9c066738cfc9cd3..17fbf995b976646e62c30392ded171ad71573dbb 100644 --- a/interface/web/client/lib/lang/ro_client_template_list.lng +++ b/interface/web/client/lib/lang/ro_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Template client'; $wb['template_type_txt'] = 'Tp'; $wb['template_name_txt'] = 'Nume Template'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/ro_reseller.lng b/interface/web/client/lib/lang/ro_reseller.lng index 91025a9ea8c50f57ffe3367281cdcaafbd7797fc..32c9bb1c7c96c1b588bcfcec84f3a41702ac9fe8 100644 --- a/interface/web/client/lib/lang/ro_reseller.lng +++ b/interface/web/client/lib/lang/ro_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/ru_client.lng b/interface/web/client/lib/lang/ru_client.lng index b927418b8101c6a4ecbd8d8b6beea573e85834ef..1bd8e590a3a9e8f328b287a2dd16f9f6501688e3 100644 --- a/interface/web/client/lib/lang/ru_client.lng +++ b/interface/web/client/lib/lang/ru_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/ru_client_del.lng b/interface/web/client/lib/lang/ru_client_del.lng index 96a5774b82e5cb58844d72cad070c45b8fb1f4bc..8fae0aa448f8faa7d498fc2674a354d8fc036389 100644 --- a/interface/web/client/lib/lang/ru_client_del.lng +++ b/interface/web/client/lib/lang/ru_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Подтверждение выполнения'; $wb['delete_explanation'] = 'Это действие удалит следующее число записей сопоставленных с этим клиентом'; $wb['btn_save_txt'] = 'Удалить клиента'; $wb['btn_cancel_txt'] = 'Отменить без удаления'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/ru_client_template_list.lng b/interface/web/client/lib/lang/ru_client_template_list.lng index b1a90d85f8a9825abffb6988ee8705094fc896a2..dbdde0e06109c6881b57b0930e6a0e4a60f90752 100644 --- a/interface/web/client/lib/lang/ru_client_template_list.lng +++ b/interface/web/client/lib/lang/ru_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Шаблоны клиентов'; $wb['template_type_txt'] = 'Тип'; $wb['template_name_txt'] = 'Имя шаблона'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/ru_reseller.lng b/interface/web/client/lib/lang/ru_reseller.lng index 3c24b30de45b3f0569ec3e9def93c1efdfd204fe..29975f2d1a3430f3e9b95caefacbff85bddcc0b3 100644 --- a/interface/web/client/lib/lang/ru_reseller.lng +++ b/interface/web/client/lib/lang/ru_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng index cbc9917b1f47a51b801414c95ca912284bd929bd..c2a31de36a21beed0542d419b191ee4f4e3d7a9f 100644 --- a/interface/web/client/lib/lang/se_client.lng +++ b/interface/web/client/lib/lang/se_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/se_client_del.lng b/interface/web/client/lib/lang/se_client_del.lng index a826d64e146cd9085debb382f71c3357966bb1f6..0932e9568ac478948a00b84b0c50acaf2ce0c7c2 100644 --- a/interface/web/client/lib/lang/se_client_del.lng +++ b/interface/web/client/lib/lang/se_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirm action'; $wb['delete_explanation'] = 'This action will delete the following number of records associated with this client'; $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/se_client_template_list.lng b/interface/web/client/lib/lang/se_client_template_list.lng index b93a5f97bc98d1fa5883a22aa7909e442afa4410..0840184a9bafca2542318ec40c751362e105f931 100644 --- a/interface/web/client/lib/lang/se_client_template_list.lng +++ b/interface/web/client/lib/lang/se_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template name'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/se_reseller.lng b/interface/web/client/lib/lang/se_reseller.lng index 91025a9ea8c50f57ffe3367281cdcaafbd7797fc..32c9bb1c7c96c1b588bcfcec84f3a41702ac9fe8 100644 --- a/interface/web/client/lib/lang/se_reseller.lng +++ b/interface/web/client/lib/lang/se_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/sk_client.lng b/interface/web/client/lib/lang/sk_client.lng index 7dea61a9b5d8b4c4434a9624b32b4d01a71931be..42e0f3ca0a5208f8e9bcf226860f79312411f08f 100644 --- a/interface/web/client/lib/lang/sk_client.lng +++ b/interface/web/client/lib/lang/sk_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/sk_client_del.lng b/interface/web/client/lib/lang/sk_client_del.lng index a826d64e146cd9085debb382f71c3357966bb1f6..0932e9568ac478948a00b84b0c50acaf2ce0c7c2 100644 --- a/interface/web/client/lib/lang/sk_client_del.lng +++ b/interface/web/client/lib/lang/sk_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'Confirm action'; $wb['delete_explanation'] = 'This action will delete the following number of records associated with this client'; $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/sk_client_template_list.lng b/interface/web/client/lib/lang/sk_client_template_list.lng index b3b5de85e214c9db866b22cf3e29561862e4fd22..ac25b8f3a9685b37651893ac39ec870c2302e543 100644 --- a/interface/web/client/lib/lang/sk_client_template_list.lng +++ b/interface/web/client/lib/lang/sk_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Klient-Šablóny'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Meno šablóny'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/sk_reseller.lng b/interface/web/client/lib/lang/sk_reseller.lng index 792c1313914bcd4ca3e0df733a65b70a25a0f929..ab954301adf3f51d70e9909cd4dde7021ab1c73d 100644 --- a/interface/web/client/lib/lang/sk_reseller.lng +++ b/interface/web/client/lib/lang/sk_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng index 13bb60e21a332bf38bcd482af49500d04ddc3d43..e3c5c5348bbfc1db8b3b164241046f2457376d48 100644 --- a/interface/web/client/lib/lang/tr_client.lng +++ b/interface/web/client/lib/lang/tr_client.lng @@ -143,4 +143,5 @@ $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any ma $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/tr_client_del.lng b/interface/web/client/lib/lang/tr_client_del.lng index 91c8198c50b5fbfc8d9fe3440f1b5f4f70eadfb6..62e7876b27fc22ec212de61febf7a2a244078f3b 100644 --- a/interface/web/client/lib/lang/tr_client_del.lng +++ b/interface/web/client/lib/lang/tr_client_del.lng @@ -3,4 +3,5 @@ $wb['confirm_action_txt'] = 'İşlemi onaylayın'; $wb['delete_explanation'] = 'Bu işlem ilgili müşteri ile alakalı bütün kayıtları silecektir.'; $wb['btn_save_txt'] = 'Müşteriyi sil'; $wb['btn_cancel_txt'] = 'İptal et'; +$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> diff --git a/interface/web/client/lib/lang/tr_client_template_list.lng b/interface/web/client/lib/lang/tr_client_template_list.lng index af5c1c74e590497ac55b8e97510053658929fc09..ea918615aed5fe2829fd468c694a075fca2324ac 100644 --- a/interface/web/client/lib/lang/tr_client_template_list.lng +++ b/interface/web/client/lib/lang/tr_client_template_list.lng @@ -2,4 +2,5 @@ $wb['list_head_txt'] = 'Müşteri-Şablon'; $wb['template_type_txt'] = 'Çeşit'; $wb['template_name_txt'] = 'Şablon adı'; +$wb['template_id_txt'] = 'Template ID'; ?> diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng index ce687c509bc7e97e1271fb4bdf275e2cde2d9dd6..f04edbf5c5e05d52734809b542cbbcf4743968fd 100644 --- a/interface/web/client/lib/lang/tr_reseller.lng +++ b/interface/web/client/lib/lang/tr_reseller.lng @@ -142,4 +142,5 @@ $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/reseller_edit.php b/interface/web/client/reseller_edit.php index 1d02237daf129210870921b21d06cddef9942534..ca2780cea8d5cdb35063952ad185a9cc42243b61 100644 --- a/interface/web/client/reseller_edit.php +++ b/interface/web/client/reseller_edit.php @@ -113,16 +113,30 @@ class page_action extends tform_actions { } $app->tpl->setVar('tpl_add_select',$option); - $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id; - $result = $app->db->queryOneRecord($sql); - $tplAdd = explode("/", $result['template_additional']); - $text = ''; - foreach($tplAdd as $item){ - if (trim($item) != ''){ - if ($text != '') $text .= '
    '; - $text .= $tpl[$item]; - } - } + // check for new-style records + $result = $app->db->queryAllRecords('SELECT assigned_template_id, client_template_id FROM client_template_assigned WHERE client_id = ' . $this->id); + if($result && count($result) > 0) { + // new style + $text = ''; + foreach($result as $item){ + if (trim($item['client_template_id']) != ''){ + if ($text != '') $text .= ''; + $text .= '
  • ' . $tpl[$item['client_template_id']]. '
  • '; + } + } + } else { + // old style + $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id; + $result = $app->db->queryOneRecord($sql); + $tplAdd = explode("/", $result['template_additional']); + $text = ''; + foreach($tplAdd as $item){ + if (trim($item) != ''){ + if ($text != '') $text .= ''; + $text .= '
  • ' . $tpl[$item]. '
  • '; + } + } + } $app->tpl->setVar('template_additional_list', $text); diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm index f9d96f0a3912ee62456cf92bb025350e8c495304..018d1d5b6e3de4af9d88700566e3286392d69160 100644 --- a/interface/web/client/templates/client_edit_address.htm +++ b/interface/web/client/templates/client_edit_address.htm @@ -9,6 +9,12 @@
    +
    + + +
    @@ -134,6 +140,18 @@
    +
    +

    {tmpl_var name='locked_txt'}

    +
    + {tmpl_var name='locked'} +
    +
    +
    +

    {tmpl_var name='canceled_txt'}

    +
    + {tmpl_var name='canceled'} +
    +
    {tmpl_var name='required_fields_txt'} diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm index 2e8100236fd2ff9e394e74e26464f360d161b52b..ba349b6bb6cb338677184300e61c9b45ed790013 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -8,7 +8,6 @@
    {tmpl_var name="toolsarea_head_txt"}
    -
    @@ -309,6 +308,11 @@ function custom_template_selected() { return ($('#template_master').val() == '0' ? true : false); } +jQuery('#template_additional_list').find('li > a').click(function(e) { + e.preventDefault(); + delAdditionalTemplate($(this).parent().attr('rel')); +}); + jQuery('div.panel_client') .find('div.pnl_formsarea') .find('fieldset') diff --git a/interface/web/client/templates/reseller_edit_address.htm b/interface/web/client/templates/reseller_edit_address.htm index 67eabbea234863c6e28c51f3c74e17364d3138ee..4ffd78a83dfbc8362ec4be88444aa4ef28760666 100644 --- a/interface/web/client/templates/reseller_edit_address.htm +++ b/interface/web/client/templates/reseller_edit_address.htm @@ -9,6 +9,12 @@ +
    + + +
    @@ -134,6 +140,18 @@
    +
    +

    {tmpl_var name='locked_txt'}

    +
    + {tmpl_var name='locked'} +
    +
    +
    +

    {tmpl_var name='canceled_txt'}

    +
    + {tmpl_var name='canceled'} +
    +
    {tmpl_var name='required_fields_txt'} diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php index dae00f8169abba44fe85e7ee287cbbc10106aa9f..0626758d01b08fbe46b929bbbcbd0da13332cf69 100644 --- a/interface/web/dashboard/dashboard.php +++ b/interface/web/dashboard/dashboard.php @@ -157,8 +157,36 @@ while ($file = @readdir ($handle)) { /* Which dashlets in which column */ /******************************************************************************/ -$leftcol_dashlets = array('modules','invoices','quota','mailquota'); -$rightcol_dashlets = array('limits'); +$default_leftcol_dashlets = array('modules','invoices','quota','mailquota'); +$default_rightcol_dashlets = array('limits'); + +$app->uses('getconf'); +$dashlets_config = $app->getconf->get_global_config('misc'); +//* Client: If the logged in user is not admin and has no sub clients (no reseller) +if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $role = 'client'; +//* Reseller: If the logged in user is not admin and has sub clients (is a reseller) +} elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $role = 'reseller'; +//* Admin: If the logged in user is admin +} else { + $role = 'admin'; +} +$dashlets_config[$role.'_dashlets_left'] = trim($dashlets_config[$role.'_dashlets_left']); +$dashlets_config[$role.'_dashlets_right'] = trim($dashlets_config[$role.'_dashlets_right']); + +if($dashlets_config[$role.'_dashlets_left'] != ''){ + preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_left'], $matches); + $leftcol_dashlets = $matches[1]; +} else { + $leftcol_dashlets = $default_leftcol_dashlets; +} +if($dashlets_config[$role.'_dashlets_right'] != ''){ + preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_right'], $matches); + $rightcol_dashlets = $matches[1]; +} else { + $rightcol_dashlets = $default_rightcol_dashlets; +} /******************************************************************************/ diff --git a/interface/web/dashboard/dashlets/templates/mailquota.htm b/interface/web/dashboard/dashlets/templates/mailquota.htm index 25ee9d7e1369ad3c3a9bafd01697e34ced409bcc..a239c48babcff5fea8a8b8fcb111884ab095178a 100644 --- a/interface/web/dashboard/dashlets/templates/mailquota.htm +++ b/interface/web/dashboard/dashlets/templates/mailquota.htm @@ -1,6 +1,6 @@

    {tmpl_var name='mailquota_txt'}

    -
    +
    diff --git a/interface/web/dashboard/dashlets/templates/quota.htm b/interface/web/dashboard/dashlets/templates/quota.htm index 3cf40e73e272759046cab8e7fa7551718f931660..feb8e1f5b07d1dd262d35acdcd8eda8a09773aba 100644 --- a/interface/web/dashboard/dashlets/templates/quota.htm +++ b/interface/web/dashboard/dashlets/templates/quota.htm @@ -1,6 +1,6 @@

    {tmpl_var name='quota_txt'}

    -
    +
    diff --git a/interface/web/dashboard/lib/lang/ar_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/ar_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/ar_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/ar_dashlet_quota.lng b/interface/web/dashboard/lib/lang/ar_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/ar_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/bg_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/bg_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/bg_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/bg_dashlet_quota.lng b/interface/web/dashboard/lib/lang/bg_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/bg_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/br_dashlet_quota.lng b/interface/web/dashboard/lib/lang/br_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/br_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng index 2fb3f6d44513ccf6963c353529f5447b04ad7d21..92168811936d835f41d660899cfea011015efa1f 100644 --- a/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng +++ b/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng @@ -1,8 +1,8 @@ \ No newline at end of file +$wb['mailquota_txt'] = 'Mailbox-Speicherplatz'; +$wb['email_txt'] = 'E-Mail-Adresse'; +$wb['name_txt'] = 'Name'; +$wb['used_txt'] = 'Verwendet'; +$wb['quota_txt'] = 'Verfügbar'; +$wb['no_email_accounts_txt'] = 'Kein E-Mail-Konto gefunden.'; +?> diff --git a/interface/web/dashboard/lib/lang/de_dashlet_quota.lng b/interface/web/dashboard/lib/lang/de_dashlet_quota.lng index 6050e105f264272faf2eb27cfdbfa281867e176c..c694f1ecf3b0ad590e30b56355fe5100356c92ab 100644 --- a/interface/web/dashboard/lib/lang/de_dashlet_quota.lng +++ b/interface/web/dashboard/lib/lang/de_dashlet_quota.lng @@ -1,8 +1,8 @@ \ No newline at end of file +$wb['quota_txt'] = 'Webseiten-Speicherplatz'; +$wb['domain_txt'] = 'Domain / Webseite'; +$wb['used_txt'] = 'Verwendet'; +$wb['hard_txt'] = 'Hard Limit'; +$wb['soft_txt'] = 'Soft Limit'; +$wb['no_sites_txt'] = 'Keine Webseite gefunden.'; +?> diff --git a/interface/web/dashboard/lib/lang/el_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/el_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/el_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/el_dashlet_quota.lng b/interface/web/dashboard/lib/lang/el_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/el_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/es_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/es_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/es_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/es_dashlet_quota.lng b/interface/web/dashboard/lib/lang/es_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/es_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/fi_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/fi_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/fi_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/fi_dashlet_quota.lng b/interface/web/dashboard/lib/lang/fi_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/fi_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/fr_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/fr_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/fr_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/fr_dashlet_quota.lng b/interface/web/dashboard/lib/lang/fr_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/fr_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/hr_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/hr_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/hr_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/hr_dashlet_quota.lng b/interface/web/dashboard/lib/lang/hr_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/hr_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/hu_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/hu_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/hu_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/hu_dashlet_quota.lng b/interface/web/dashboard/lib/lang/hu_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/hu_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/id_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/id_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/id_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/id_dashlet_quota.lng b/interface/web/dashboard/lib/lang/id_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/id_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/it_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/it_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/it_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/it_dashlet_quota.lng b/interface/web/dashboard/lib/lang/it_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/it_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/ja_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/ja_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/ja_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/ja_dashlet_quota.lng b/interface/web/dashboard/lib/lang/ja_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/ja_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/nl_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/nl_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng b/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/pl_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/pl_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/pl_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/pl_dashlet_quota.lng b/interface/web/dashboard/lib/lang/pl_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/pl_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/pt_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/pt_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/pt_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/pt_dashlet_quota.lng b/interface/web/dashboard/lib/lang/pt_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/pt_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/ro_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/ro_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/ro_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/ro_dashlet_quota.lng b/interface/web/dashboard/lib/lang/ro_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/ro_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/ru_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/ru_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/ru_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/ru_dashlet_quota.lng b/interface/web/dashboard/lib/lang/ru_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/ru_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/se_dashlet_quota.lng b/interface/web/dashboard/lib/lang/se_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/se_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/sk_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/sk_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/sk_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/sk_dashlet_quota.lng b/interface/web/dashboard/lib/lang/sk_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/sk_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng new file mode 100644 index 0000000000000000000000000000000000000000..2c2b6cd7ae1ee489bcc69c5d5716383a9442634a --- /dev/null +++ b/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng b/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng new file mode 100644 index 0000000000000000000000000000000000000000..8b2e3d43d00117f0bb31345990c2a13fd386721a --- /dev/null +++ b/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/interface/web/dashboard/templates/dashboard.htm b/interface/web/dashboard/templates/dashboard.htm index 4d68fbd64567cc3d5f5a43bf06ea7425767fa630..c8c314598319cc339829dddbd092660d5f6015cc 100644 --- a/interface/web/dashboard/templates/dashboard.htm +++ b/interface/web/dashboard/templates/dashboard.htm @@ -41,7 +41,7 @@ -
    +
    {tmpl_var name='content'} diff --git a/interface/web/dns/lib/lang/tr_dns_mx.lng b/interface/web/dns/lib/lang/tr_dns_mx.lng index 201f686ec5df19b0f27e6e99204a580632ce2ed6..abdf7a40ef43697cf36aaacce49e0ab00d297fad 100644 --- a/interface/web/dns/lib/lang/tr_dns_mx.lng +++ b/interface/web/dns/lib/lang/tr_dns_mx.lng @@ -13,4 +13,5 @@ $wb['name_error_empty'] = 'Hostname boş.'; $wb['name_error_regex'] = 'Hostname yanlış formatta.'; $wb['data_error_empty'] = 'Mail sunucusu hostname boş'; $wb['data_error_regex'] = 'Mail sunucusu hostname geçersiz formatta'; +$wb['duplicate_mx_record_txt'] = 'Duplicate MX record.'; ?> diff --git a/interface/web/help/lib/lang/ar_support_message.lng b/interface/web/help/lib/lang/ar_support_message.lng index 59816c68d7c9f10c65c8a81be2d7bf6fe91e6a5d..bcc50ac465c416e103dbf7a8ca11a198e1e531bb 100644 --- a/interface/web/help/lib/lang/ar_support_message.lng +++ b/interface/web/help/lib/lang/ar_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Subject'; $wb['message_txt'] = 'Message'; $wb['tstamp_txt'] = 'Timestamp'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/ar_support_message_list.lng b/interface/web/help/lib/lang/ar_support_message_list.lng index d6bc2aac339b1ece715b3343e209c2621de220aa..719f4b04c69e45af84acfc80f0e0fc2b08b28ddb 100644 --- a/interface/web/help/lib/lang/ar_support_message_list.lng +++ b/interface/web/help/lib/lang/ar_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Support Messages'; $wb['sender_id_txt'] = 'Sender'; $wb['subject_txt'] = 'Subject'; $wb['add_new_record_txt'] = 'Create new support message'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/bg_support_message.lng b/interface/web/help/lib/lang/bg_support_message.lng index 5c7c067d6ea1801ad4875d9c4bedbf09ac89b4c7..fb109257e520b651f2a6d5bc6bad6bd20c8daa3f 100644 --- a/interface/web/help/lib/lang/bg_support_message.lng +++ b/interface/web/help/lib/lang/bg_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Тема'; $wb['message_txt'] = 'Съобщение'; $wb['tstamp_txt'] = 'Дата'; $wb['reply_txt'] = 'Отговори'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/bg_support_message_list.lng b/interface/web/help/lib/lang/bg_support_message_list.lng index 1a5c21c50cc7b0c6720890b94cca4d4940447936..8f313ebd3ac7de97966d419a68e92d98693435ab 100644 --- a/interface/web/help/lib/lang/bg_support_message_list.lng +++ b/interface/web/help/lib/lang/bg_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Съобщения до поддръжката'; $wb['sender_id_txt'] = 'Подател'; $wb['subject_txt'] = 'Тема'; $wb['add_new_record_txt'] = 'Ново съобщение'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/br_support_message.lng b/interface/web/help/lib/lang/br_support_message.lng index bce2c353ae89b9bbb207927973d7ffdcfdee3ab0..84a60d89913c983c015b0afaba6076921c3b2592 100644 --- a/interface/web/help/lib/lang/br_support_message.lng +++ b/interface/web/help/lib/lang/br_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Assunto'; $wb['message_txt'] = 'Mensagem'; $wb['tstamp_txt'] = 'Dados'; $wb['reply_txt'] = 'Responder'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/br_support_message_list.lng b/interface/web/help/lib/lang/br_support_message_list.lng index d5ba958293d5dbfcc22e1600fcb5a8fb8b3e8ba4..734dd281a32b881581169dda60d2fb86e776bc8a 100644 --- a/interface/web/help/lib/lang/br_support_message_list.lng +++ b/interface/web/help/lib/lang/br_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Mensagens de Suporte'; $wb['sender_id_txt'] = 'De'; $wb['subject_txt'] = 'Assunto'; $wb['add_new_record_txt'] = 'Crie uma nova mensagem de suporte'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/cz_support_message.lng b/interface/web/help/lib/lang/cz_support_message.lng index 6c27284432b73dbc9246504a12961fbe11d02620..a6afd5adb5c44827e8717226ff17e9e20b8b1725 100644 --- a/interface/web/help/lib/lang/cz_support_message.lng +++ b/interface/web/help/lib/lang/cz_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Předmět'; $wb['message_txt'] = 'Zpráva'; $wb['tstamp_txt'] = 'Časové razítko'; $wb['reply_txt'] = 'Odpovědět'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/cz_support_message_list.lng b/interface/web/help/lib/lang/cz_support_message_list.lng index 8629a2f8a1ec899b6b411fd00c18960b7201e4b6..c4c43eb8728aee1c59ca73980bba6642aa209aca 100644 --- a/interface/web/help/lib/lang/cz_support_message_list.lng +++ b/interface/web/help/lib/lang/cz_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Zprávy pro podporu'; $wb['sender_id_txt'] = 'Odesílatel'; $wb['subject_txt'] = 'Předmět'; $wb['add_new_record_txt'] = 'Vytvořit zprávu pro podporu'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/el_support_message.lng b/interface/web/help/lib/lang/el_support_message.lng index 4810e084fe712817e2cba9bf9c679bf0866c9077..1c277cac81ded28b64b380cae64529ee964b6bc4 100644 --- a/interface/web/help/lib/lang/el_support_message.lng +++ b/interface/web/help/lib/lang/el_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Θέμα'; $wb['message_txt'] = 'Μήνυμα'; $wb['tstamp_txt'] = 'Ημερομηνία/Ώρα'; $wb['reply_txt'] = 'Απάντηση'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/el_support_message_list.lng b/interface/web/help/lib/lang/el_support_message_list.lng index e8b2cf33818eabc2c20b2e8b84b3b89d8de7a313..46ea54cbc5711b884fc1ce3a8e4c60f905d09ef1 100644 --- a/interface/web/help/lib/lang/el_support_message_list.lng +++ b/interface/web/help/lib/lang/el_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Μηνύματα Υποστήριξης'; $wb['sender_id_txt'] = 'Αποστολέας'; $wb['subject_txt'] = 'Θέμα'; $wb['add_new_record_txt'] = 'Νέο μήνυμα υποστήριξης'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/es_support_message.lng b/interface/web/help/lib/lang/es_support_message.lng index 4f6c552a21a6a18d99d08048119efce5aef800d0..d0b8d0454df7f6d60c5ecbde24fba57cbad7b249 100644 --- a/interface/web/help/lib/lang/es_support_message.lng +++ b/interface/web/help/lib/lang/es_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Asunto'; $wb['message_txt'] = 'Mensaje'; $wb['tstamp_txt'] = 'Marca de tiempo'; $wb['reply_txt'] = 'Responder'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/es_support_message_list.lng b/interface/web/help/lib/lang/es_support_message_list.lng index 0ff8eb931ff8ca07cce4b34c9dfa269abfa6f8b0..9db4de7e6343689b0926ec37bdba83601058c715 100644 --- a/interface/web/help/lib/lang/es_support_message_list.lng +++ b/interface/web/help/lib/lang/es_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Mensajes de soporte'; $wb['sender_id_txt'] = 'Remitente'; $wb['subject_txt'] = 'Asunto'; $wb['add_new_record_txt'] = 'Crear nuevo mensaje de soporte'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/fi_support_message.lng b/interface/web/help/lib/lang/fi_support_message.lng index 3995f2da70ce5eecf2c9ccfdd830864744db83bf..0e0c517f223f17e32ed070e44cfac61eacef9549 100755 --- a/interface/web/help/lib/lang/fi_support_message.lng +++ b/interface/web/help/lib/lang/fi_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Tukipyynnön aihe'; $wb['message_txt'] = 'Tukipyyntö'; $wb['tstamp_txt'] = 'Päiväys'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/fi_support_message_list.lng b/interface/web/help/lib/lang/fi_support_message_list.lng index 4bbc1de7997da15cacbb0cf6aa0d108d0df5a39e..0b50a2fac4442b1eba46477f11c513ed26d3337a 100755 --- a/interface/web/help/lib/lang/fi_support_message_list.lng +++ b/interface/web/help/lib/lang/fi_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Tukipyynnöt'; $wb['sender_id_txt'] = 'Tukipyynnön lähettäjä'; $wb['subject_txt'] = 'Tukipyynnön aihe'; $wb['add_new_record_txt'] = 'Lähetä uusi tukipyyntö'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/fr_support_message.lng b/interface/web/help/lib/lang/fr_support_message.lng index 6d64344834152533475e8cf1f74f2df344e79c32..9f9dbe81ad622dcb57e0004c8984287c18086c7c 100644 --- a/interface/web/help/lib/lang/fr_support_message.lng +++ b/interface/web/help/lib/lang/fr_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Sujet'; $wb['message_txt'] = 'Message'; $wb['tstamp_txt'] = 'Timestamp'; $wb['reply_txt'] = 'Répondre'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/fr_support_message_list.lng b/interface/web/help/lib/lang/fr_support_message_list.lng index ac63d3f6e2a919f8e5e8b44f41f6a9c65f9c36c6..271f9dcf932b0a01ee92f1b917c73d0a81fc9f72 100644 --- a/interface/web/help/lib/lang/fr_support_message_list.lng +++ b/interface/web/help/lib/lang/fr_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Messages de support'; $wb['sender_id_txt'] = 'Expéditeur'; $wb['subject_txt'] = 'Sujet'; $wb['add_new_record_txt'] = 'Créer un nouveau message de support'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/hr_support_message.lng b/interface/web/help/lib/lang/hr_support_message.lng index 2576d1834682c4a11ba2e464be1263462ee0a9f3..fca139b9956031705902d6819226724c24e41e30 100644 --- a/interface/web/help/lib/lang/hr_support_message.lng +++ b/interface/web/help/lib/lang/hr_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Naslov poruke'; $wb['message_txt'] = 'Poruka'; $wb['tstamp_txt'] = 'Vrijeme'; $wb['reply_txt'] = 'Odgovori'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/hr_support_message_list.lng b/interface/web/help/lib/lang/hr_support_message_list.lng index 5c9dff1fa3e8aefaaf15a2aa25147abd74940177..e7aea1ab72eeb24191d7e934a4ae7c71b5700d26 100644 --- a/interface/web/help/lib/lang/hr_support_message_list.lng +++ b/interface/web/help/lib/lang/hr_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Podrška'; $wb['sender_id_txt'] = 'Pošiljatelj'; $wb['subject_txt'] = 'Naslov poruke'; $wb['add_new_record_txt'] = 'Pošalji novu poruku'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/hu_support_message.lng b/interface/web/help/lib/lang/hu_support_message.lng index 6bc4aada9f8d20fb2f78c3ba233939a864205b21..b0d1d7176b109268ac7056bc36c92207fcb5fcb8 100644 --- a/interface/web/help/lib/lang/hu_support_message.lng +++ b/interface/web/help/lib/lang/hu_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Tárgy'; $wb['message_txt'] = 'Üzenet'; $wb['tstamp_txt'] = 'Időbélyeg'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/hu_support_message_list.lng b/interface/web/help/lib/lang/hu_support_message_list.lng index 98f3051eb503d627d5894bbd7a92b7e129511e09..f6152e5fe45b63062a3e0c2558d5b51627dcb4ca 100644 --- a/interface/web/help/lib/lang/hu_support_message_list.lng +++ b/interface/web/help/lib/lang/hu_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Support üzenetek'; $wb['sender_id_txt'] = 'Feladó'; $wb['subject_txt'] = 'Tárgy'; $wb['add_new_record_txt'] = 'Új support üzenet'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/id_support_message.lng b/interface/web/help/lib/lang/id_support_message.lng index 7471f7cd6f01b3e512390e33c3768416b785e677..645f40eb779731720928c5cab9af19ee615ccd54 100644 --- a/interface/web/help/lib/lang/id_support_message.lng +++ b/interface/web/help/lib/lang/id_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Judul'; $wb['message_txt'] = 'Pesan'; $wb['tstamp_txt'] = 'Tanda Waktu'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/id_support_message_list.lng b/interface/web/help/lib/lang/id_support_message_list.lng index 6c856cc9d2c741633697a7302cc7b1c9c2e8a2e8..3df9cf74bd7772e96505d8bcc30bdcebae51ff0f 100644 --- a/interface/web/help/lib/lang/id_support_message_list.lng +++ b/interface/web/help/lib/lang/id_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Pesan Dukungan'; $wb['sender_id_txt'] = 'Pengirim'; $wb['subject_txt'] = 'Judul'; $wb['add_new_record_txt'] = 'Buat Pesan Dukungan Baru'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/it_support_message.lng b/interface/web/help/lib/lang/it_support_message.lng index 4ef99511d0a5c7abbf52de086a3da7df258b783f..a4712bda618ef1963028f225b92840e01fa62a00 100644 --- a/interface/web/help/lib/lang/it_support_message.lng +++ b/interface/web/help/lib/lang/it_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Oggetto'; $wb['message_txt'] = 'Messaggio'; $wb['tstamp_txt'] = 'Timestamp'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/it_support_message_list.lng b/interface/web/help/lib/lang/it_support_message_list.lng index 95f3558a2c469e7b978b8b776684aac1918b9652..1416474627e3c26880d85510c7da9f4fd77f84b5 100644 --- a/interface/web/help/lib/lang/it_support_message_list.lng +++ b/interface/web/help/lib/lang/it_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Messaggi di supporto'; $wb['sender_id_txt'] = 'Mittente'; $wb['subject_txt'] = 'Oggetto'; $wb['add_new_record_txt'] = 'Crea nuovo messaggio di supporto'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/ja_support_message.lng b/interface/web/help/lib/lang/ja_support_message.lng index f2f10660432a6581bb9b1940f65165c287ddfcb9..346497ea0ae972da40dbda442edfc4333014937f 100644 --- a/interface/web/help/lib/lang/ja_support_message.lng +++ b/interface/web/help/lib/lang/ja_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = '件名'; $wb['message_txt'] = '本文'; $wb['tstamp_txt'] = '送信日時'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/ja_support_message_list.lng b/interface/web/help/lib/lang/ja_support_message_list.lng index 0a68de95be64d3a221842f5907735160db62940e..94c121775f8eb9052af96ecdbdc1ae4a6b0ad850 100644 --- a/interface/web/help/lib/lang/ja_support_message_list.lng +++ b/interface/web/help/lib/lang/ja_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'サポートメッセージ'; $wb['sender_id_txt'] = '送信者'; $wb['subject_txt'] = '件名'; $wb['add_new_record_txt'] = 'サポートメッセージを作成する'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/nl_support_message.lng b/interface/web/help/lib/lang/nl_support_message.lng index 436e3dec985dc133e68d6eb3f7f8eaf0c8f49d75..d88688714893aab53343c73469f589deb5767580 100644 --- a/interface/web/help/lib/lang/nl_support_message.lng +++ b/interface/web/help/lib/lang/nl_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Onderwerp'; $wb['message_txt'] = 'Bericht'; $wb['tstamp_txt'] = 'Tijdstip'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/nl_support_message_list.lng b/interface/web/help/lib/lang/nl_support_message_list.lng index 12cd8989debeb7c49b1546c20b28eec441dba1df..6e1871e749900748118bde2aa53328d43db14eed 100644 --- a/interface/web/help/lib/lang/nl_support_message_list.lng +++ b/interface/web/help/lib/lang/nl_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Support berichten'; $wb['sender_id_txt'] = 'Afzender'; $wb['subject_txt'] = 'Onderwerp'; $wb['add_new_record_txt'] = 'Maak een nieuw support bericht'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/pl_support_message.lng b/interface/web/help/lib/lang/pl_support_message.lng index 7482e3515c1f1c77ca1d0bdc066deac72e3b9419..0584d30beebf1c051fb6598f004a8e97abd2d7db 100644 --- a/interface/web/help/lib/lang/pl_support_message.lng +++ b/interface/web/help/lib/lang/pl_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Temat'; $wb['message_txt'] = 'Wiadomość'; $wb['tstamp_txt'] = 'Kalendarz'; $wb['reply_txt'] = 'Odpowiedź'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/pl_support_message_list.lng b/interface/web/help/lib/lang/pl_support_message_list.lng index bc3285694b816cdfd17997548828a5f1c9225b8a..78e1eaf9bab854d54542dbe2803e166272dafc4b 100644 --- a/interface/web/help/lib/lang/pl_support_message_list.lng +++ b/interface/web/help/lib/lang/pl_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Wiadomości'; $wb['sender_id_txt'] = 'Nadawca'; $wb['subject_txt'] = 'Temat'; $wb['add_new_record_txt'] = 'Wyślij wiadomość'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/pt_support_message.lng b/interface/web/help/lib/lang/pt_support_message.lng index 6f426ccbb1bd6a1353374ef64f28f9600b63e8cc..54428b77aea8973c248a3527549db8cec3de2f3e 100644 --- a/interface/web/help/lib/lang/pt_support_message.lng +++ b/interface/web/help/lib/lang/pt_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Assunto'; $wb['message_txt'] = 'Mensagem'; $wb['tstamp_txt'] = 'Data'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/pt_support_message_list.lng b/interface/web/help/lib/lang/pt_support_message_list.lng index d5ba958293d5dbfcc22e1600fcb5a8fb8b3e8ba4..734dd281a32b881581169dda60d2fb86e776bc8a 100644 --- a/interface/web/help/lib/lang/pt_support_message_list.lng +++ b/interface/web/help/lib/lang/pt_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Mensagens de Suporte'; $wb['sender_id_txt'] = 'De'; $wb['subject_txt'] = 'Assunto'; $wb['add_new_record_txt'] = 'Crie uma nova mensagem de suporte'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/ro_support_message.lng b/interface/web/help/lib/lang/ro_support_message.lng index be5f50b2d41d472189465f913c92571744765915..39c42da806b861e8e41a71abfb439f930d96b37e 100644 --- a/interface/web/help/lib/lang/ro_support_message.lng +++ b/interface/web/help/lib/lang/ro_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Subiect'; $wb['message_txt'] = 'Mesaj'; $wb['tstamp_txt'] = 'Timestamp'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/ro_support_message_list.lng b/interface/web/help/lib/lang/ro_support_message_list.lng index 34aebb87776dfd340d6f88e830f81c2e229baa44..667f03d3c35b777ddeab9463898cb8e538c35007 100644 --- a/interface/web/help/lib/lang/ro_support_message_list.lng +++ b/interface/web/help/lib/lang/ro_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Mesaj catre Support '; $wb['sender_id_txt'] = 'Expeditor'; $wb['subject_txt'] = 'Subiect'; $wb['add_new_record_txt'] = 'Creatie mesaj nou catre support'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/ru_support_message.lng b/interface/web/help/lib/lang/ru_support_message.lng index ae0545bfb4c2990762aa2366061e9b6b2c91918c..3c2b2cdc3eac4139edc374355baeac7539172728 100644 --- a/interface/web/help/lib/lang/ru_support_message.lng +++ b/interface/web/help/lib/lang/ru_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Тема'; $wb['message_txt'] = 'Сообщение'; $wb['tstamp_txt'] = 'Штамп времени'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/ru_support_message_list.lng b/interface/web/help/lib/lang/ru_support_message_list.lng index a25816b70e6e13c57d3282ed544444b1996f5c5c..9293f1dce415ee24dea9a610e9570d5b88ced241 100644 --- a/interface/web/help/lib/lang/ru_support_message_list.lng +++ b/interface/web/help/lib/lang/ru_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Сообщение службы поддержки'; $wb['sender_id_txt'] = 'От'; $wb['subject_txt'] = 'Тема'; $wb['add_new_record_txt'] = 'Создайте новое сообщение службы поддержки'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/se_support_message.lng b/interface/web/help/lib/lang/se_support_message.lng index 59816c68d7c9f10c65c8a81be2d7bf6fe91e6a5d..bcc50ac465c416e103dbf7a8ca11a198e1e531bb 100644 --- a/interface/web/help/lib/lang/se_support_message.lng +++ b/interface/web/help/lib/lang/se_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Subject'; $wb['message_txt'] = 'Message'; $wb['tstamp_txt'] = 'Timestamp'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/se_support_message_list.lng b/interface/web/help/lib/lang/se_support_message_list.lng index d6bc2aac339b1ece715b3343e209c2621de220aa..719f4b04c69e45af84acfc80f0e0fc2b08b28ddb 100644 --- a/interface/web/help/lib/lang/se_support_message_list.lng +++ b/interface/web/help/lib/lang/se_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Support Messages'; $wb['sender_id_txt'] = 'Sender'; $wb['subject_txt'] = 'Subject'; $wb['add_new_record_txt'] = 'Create new support message'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/sk_support_message.lng b/interface/web/help/lib/lang/sk_support_message.lng index a7d3b31c3c97711cfca449c4a3b21bf5af0eef1c..4c8c5a9b1c9ef6c21ec366e014c3bf9fc958e0b7 100644 --- a/interface/web/help/lib/lang/sk_support_message.lng +++ b/interface/web/help/lib/lang/sk_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Predmet'; $wb['message_txt'] = 'Správa'; $wb['tstamp_txt'] = 'Časová pečiatka'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/sk_support_message_list.lng b/interface/web/help/lib/lang/sk_support_message_list.lng index 63007d8f0f7cf0a618df89fae2c551f09ca6eadc..afc4bdf9a30ee6e5c57400c90c5688a4ecd02ead 100644 --- a/interface/web/help/lib/lang/sk_support_message_list.lng +++ b/interface/web/help/lib/lang/sk_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Správy pre podporu'; $wb['sender_id_txt'] = 'Odosielateľ'; $wb['subject_txt'] = 'Predmet'; $wb['add_new_record_txt'] = 'Vytvoriť novú správu pre podporu'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/help/lib/lang/tr_support_message.lng b/interface/web/help/lib/lang/tr_support_message.lng index 59816c68d7c9f10c65c8a81be2d7bf6fe91e6a5d..bcc50ac465c416e103dbf7a8ca11a198e1e531bb 100644 --- a/interface/web/help/lib/lang/tr_support_message.lng +++ b/interface/web/help/lib/lang/tr_support_message.lng @@ -5,4 +5,11 @@ $wb['subject_txt'] = 'Subject'; $wb['message_txt'] = 'Message'; $wb['tstamp_txt'] = 'Timestamp'; $wb['reply_txt'] = 'Reply'; +$wb['date_txt'] = 'Date'; +$wb['support_request_subject_txt'] = 'Support Request'; +$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.'; +$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> diff --git a/interface/web/help/lib/lang/tr_support_message_list.lng b/interface/web/help/lib/lang/tr_support_message_list.lng index acdb363da6401561fa1e6f932379680d706f0b76..5728cb081f9bfed20e2a693c2a326b480462594b 100644 --- a/interface/web/help/lib/lang/tr_support_message_list.lng +++ b/interface/web/help/lib/lang/tr_support_message_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Destek Mesajları'; $wb['sender_id_txt'] = 'Gönderici'; $wb['subject_txt'] = 'Konu'; $wb['add_new_record_txt'] = 'Yeni destek mesajı oluştur'; +$wb['date_txt'] = 'Date'; ?> diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php index c78406a58fe0a91b351db248ea21f1e450e7d34d..418b26bd4a8730b891ad0f0aa943160937883ca6 100644 --- a/interface/web/js/scrigo.js.php +++ b/interface/web/js/scrigo.js.php @@ -642,40 +642,65 @@ function pass_contains(pass, check) { return false; } +var new_tpl_add_id = 0; function addAdditionalTemplate(){ - var tpl_add = document.getElementById('template_additional').value; - - var tpl_list = document.getElementById('template_additional_list').innerHTML; - var addTemplate = document.getElementById('tpl_add_select').value.split('|',2); - var addTplId = addTemplate[0]; - var addTplText = addTemplate[1]; + var tpl_add = jQuery('#template_additional').val(); + var addTemplate = jQuery('#tpl_add_select').val().split('|',2); + var addTplId = addTemplate[0]; + var addTplText = addTemplate[1]; if(addTplId > 0) { - var newVal = tpl_add + '/' + addTplId + '/'; - newVal = newVal.replace('//', '/'); - var newList = tpl_list + '
    ' + addTplText; - newList = newList.replace('

    ', '
    '); - document.getElementById('template_additional').value = newVal; - document.getElementById('template_additional_list').innerHTML = newList; - alert('additional template ' + addTplText + ' added to customer'); + var newVal = tpl_add.split('/'); + new_tpl_add_id += 1; + var delbtn = jQuery('').attr('class', 'button icons16 icoDelete').click(function(e) { + e.preventDefault(); + delAdditionalTemplate($(this).parent().attr('rel')); + }); + newVal[newVal.length] = 'n' + new_tpl_add_id + ':' + addTplId; + jQuery('
  • ' + addTplText + '
  • ').attr('rel', 'n' + new_tpl_add_id).append(delbtn).appendTo('#template_additional_list ul'); + jQuery('#template_additional').val(newVal.join('/')); + alert('additional template ' + addTplText + ' added to customer'); } else { - alert('no additional template selcted'); + alert('no additional template selcted'); } } -function delAdditionalTemplate(){ - var tpl_add = document.getElementById('template_additional').value; - if(tpl_add != '') { - var tpl_list = document.getElementById('template_additional_list').innerHTML; +function delAdditionalTemplate(tpl_id){ + var tpl_add = jQuery('#template_additional').val(); + if(tpl_id) { + // new style + var $el = jQuery('#template_additional_list ul').find('li[rel="' + tpl_id + '"]').eq(0); // only the first + var addTplText = $el.text(); + $el.remove(); + + var oldVal = tpl_add.split('/'); + var newVal = new Array(); + for(var i = 0; i < oldVal.length; i++) { + var tmp = oldVal[i].split(':', 2); + if(tmp.length == 2 && tmp[0] == tpl_id) continue; + newVal[newVal.length] = oldVal[i]; + } + jQuery('#template_additional').val(newVal.join('/')); + alert('additional template ' + addTplText + ' deleted from customer'); + } else if(tpl_add != '') { + // old style var addTemplate = document.getElementById('tpl_add_select').value.split('|',2); var addTplId = addTemplate[0]; var addTplText = addTemplate[1]; + + jQuery('#template_additional_list ul').find('li:not([rel])').each(function() { + var text = jQuery(this).text(); + if(text == addTplText) { + jQuery(this).remove(); + return false; + } + return this; + }); + var newVal = tpl_add; - newVal = newVal.replace(addTplId, ''); + var repl = new RegExp('(^|\/)' + addTplId + '(\/|$)'); + newVal = newVal.replace(repl, ''); newVal = newVal.replace('//', '/'); - var newList = tpl_list.replace(addTplText, ''); - newList = newList.replace('

    ', '
    '); - document.getElementById('template_additional').value = newVal; - document.getElementById('template_additional_list').innerHTML = newList; + jQuery('#template_additional').val(newVal); alert('additional template ' + addTplText + ' deleted from customer'); } else { alert('no additional template selcted'); diff --git a/interface/web/login/lib/lang/ar.lng b/interface/web/login/lib/lang/ar.lng index f7362b5be9f1c9edf83f4de91f9072e4ba0a4c1b..ef17493e48750a65dfd9f5c44bb2d734e32b37e6 100644 --- a/interface/web/login/lib/lang/ar.lng +++ b/interface/web/login/lib/lang/ar.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/bg.lng b/interface/web/login/lib/lang/bg.lng index cb27951708d32789daacd01fc860dd612f01e00b..b0e353bb56f7e93f95c800632880157b8966c9c4 100644 --- a/interface/web/login/lib/lang/bg.lng +++ b/interface/web/login/lib/lang/bg.lng @@ -21,4 +21,5 @@ $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['error_maintenance_mode'] = 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/br.lng b/interface/web/login/lib/lang/br.lng index 0d2144769c56e8097d090d1bce2dab3ca5f1af3f..f00af30c91d0796ee524ddcf6cac9aa0fd4c8b1f 100644 --- a/interface/web/login/lib/lang/br.lng +++ b/interface/web/login/lib/lang/br.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/cz.lng b/interface/web/login/lib/lang/cz.lng index cf659346a9af257a5db71fce32412ee0bbc01ffe..f789b21ff412061de65f825eee809ff130299ec9 100644 --- a/interface/web/login/lib/lang/cz.lng +++ b/interface/web/login/lib/lang/cz.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Resetování (obnova) hesla'; $wb['pw_button_txt'] = 'Znovu odeslat heslo'; $wb['email_txt'] = 'E-mail'; $wb['theme_not_compatible'] = 'Zvolené téma není kompatibilní s aktuální verzí ISPConfig. Zkontrolujte prosím, zda není nová verze tématu.
    Výchozí motiv byl aktivován automaticky.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/el.lng b/interface/web/login/lib/lang/el.lng index 12271aca253b3e7b3c403d9f37b8e7168bca43f1..00646c6db3a0ce3c30fbc5ae47d6b16200396d23 100644 --- a/interface/web/login/lib/lang/el.lng +++ b/interface/web/login/lib/lang/el.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/es.lng b/interface/web/login/lib/lang/es.lng index d80bb7c882a18acad9a1fa7b488d9a52aabe9248..e19e81dbf6b8e295680de5fede41e18f808ec05b 100644 --- a/interface/web/login/lib/lang/es.lng +++ b/interface/web/login/lib/lang/es.lng @@ -21,4 +21,5 @@ $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['error_maintenance_mode'] = 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/fi.lng b/interface/web/login/lib/lang/fi.lng index 427f8de9d689c40e465d2bbbda47cf024d36de1f..c6bc2b89cbcd443ecfe2b7b88f0b6b6e75798f5b 100755 --- a/interface/web/login/lib/lang/fi.lng +++ b/interface/web/login/lib/lang/fi.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/fr.lng b/interface/web/login/lib/lang/fr.lng index beb76a5868a130283c4871bfff607ddce5a0a96b..f71178c0458b1ac932e725ba911855bf4d3d09ef 100644 --- a/interface/web/login/lib/lang/fr.lng +++ b/interface/web/login/lib/lang/fr.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/hr.lng b/interface/web/login/lib/lang/hr.lng index 7f84d6f62960cbe799b33f2222bda135487ebc1d..2b064146340df0723831d38ee298b39b715b6d2e 100644 --- a/interface/web/login/lib/lang/hr.lng +++ b/interface/web/login/lib/lang/hr.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/hu.lng b/interface/web/login/lib/lang/hu.lng index 1dc8ef3967686e5da7b08588eb07a3661325e533..69c74527872b1c7c5d4d1888a2e5c70e7b1e5302 100644 --- a/interface/web/login/lib/lang/hu.lng +++ b/interface/web/login/lib/lang/hu.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/id.lng b/interface/web/login/lib/lang/id.lng index 5e82059dfb387eeb9970ba5866da8bb3eab8251a..27c3857aa2832d12b556314e2bb496dd43621c3c 100644 --- a/interface/web/login/lib/lang/id.lng +++ b/interface/web/login/lib/lang/id.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/it.lng b/interface/web/login/lib/lang/it.lng index c69cb52a89eddcd4b389eb427a2151c0b41a3688..05c7e35d1048cc49b6600efa135af32000c8080c 100644 --- a/interface/web/login/lib/lang/it.lng +++ b/interface/web/login/lib/lang/it.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/ja.lng b/interface/web/login/lib/lang/ja.lng index 70ab27c26e4e242201ce3ddd78f0cd09565d219d..959f67f7c02429c45bcf9a02201372e5a379dda6 100644 --- a/interface/web/login/lib/lang/ja.lng +++ b/interface/web/login/lib/lang/ja.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/nl.lng b/interface/web/login/lib/lang/nl.lng index 59564e5c3dd38b4d1d8208095c8b9501434e3b9d..b203f7221152c602c5e7da59c15b5ded2acd2625 100644 --- a/interface/web/login/lib/lang/nl.lng +++ b/interface/web/login/lib/lang/nl.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/pl.lng b/interface/web/login/lib/lang/pl.lng index 29bd8b2298a3c1e9d09198f2a5d91134a3883a1e..7fe9ae1f6caa7ad2ada21f7e8684b3492afb4e17 100644 --- a/interface/web/login/lib/lang/pl.lng +++ b/interface/web/login/lib/lang/pl.lng @@ -21,4 +21,5 @@ $wb['pw_button_txt'] = 'Prześlij hasło ponownie'; $wb['email_txt'] = 'E-mail'; $wb['error_maintenance_mode'] = 'Ta instalacja ISPConfig jest aktualnie w trakcje modernizacji. Wracamy niebawem - proszę o cierpliwość.'; $wb['theme_not_compatible'] = 'Wybrany temat nie jest kompatybilny z aktualną wersją ISPConfig. Proszę wybrać nową wersję tematu.
    Został aktywowany automatycznie domyślny temat.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/pt.lng b/interface/web/login/lib/lang/pt.lng index 6c5414c881b988e9a9e15da48701ddfbf377ad25..a5798e4be375be80387dd5598b343c4f5d866fca 100644 --- a/interface/web/login/lib/lang/pt.lng +++ b/interface/web/login/lib/lang/pt.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/ro.lng b/interface/web/login/lib/lang/ro.lng index 76b314a438be30e99598041638b3aa58eaf5a890..5588c3f5e59184e109f6f083447ad78dd9725205 100644 --- a/interface/web/login/lib/lang/ro.lng +++ b/interface/web/login/lib/lang/ro.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/ru.lng b/interface/web/login/lib/lang/ru.lng index 866a957243d6431d15959da7506837ce75e84fcc..78a787e55d6c8344ccd4e48efe38eb57d5e2acb3 100644 --- a/interface/web/login/lib/lang/ru.lng +++ b/interface/web/login/lib/lang/ru.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/se.lng b/interface/web/login/lib/lang/se.lng index f7362b5be9f1c9edf83f4de91f9072e4ba0a4c1b..ef17493e48750a65dfd9f5c44bb2d734e32b37e6 100644 --- a/interface/web/login/lib/lang/se.lng +++ b/interface/web/login/lib/lang/se.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/sk.lng b/interface/web/login/lib/lang/sk.lng index d1fc46d285f05435dbed8c36a03f7f085990d642..6e4bb87d4a7f495bea0a96dc5dee1b18836f0646 100644 --- a/interface/web/login/lib/lang/sk.lng +++ b/interface/web/login/lib/lang/sk.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/login/lib/lang/tr.lng b/interface/web/login/lib/lang/tr.lng index 00f027ef55ba51f514d421ef1ce7c0715b239a4b..46143b7ec8add106d1d67d17739e0954d7a6b20e 100644 --- a/interface/web/login/lib/lang/tr.lng +++ b/interface/web/login/lib/lang/tr.lng @@ -21,4 +21,5 @@ $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Resend password'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.
    The default theme as been activated automatically.'; +$wb['back_txt'] = 'Back'; ?> diff --git a/interface/web/mail/lib/lang/ar_spamfilter_users.lng b/interface/web/mail/lib/lang/ar_spamfilter_users.lng index a93d94dbae5a1d6f25133988fefceaa2ddc3bc13..3edc749e98ef435cf3b43874003eec6a7388dfde 100644 --- a/interface/web/mail/lib/lang/ar_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/ar_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Policy'; $wb['email_txt'] = 'Email (Pattern)'; $wb['fullname_txt'] = 'Name'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/ar_user_quota_stats_list.lng b/interface/web/mail/lib/lang/ar_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/ar_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/ar_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/bg_spamfilter_users.lng b/interface/web/mail/lib/lang/bg_spamfilter_users.lng index a93d94dbae5a1d6f25133988fefceaa2ddc3bc13..3edc749e98ef435cf3b43874003eec6a7388dfde 100644 --- a/interface/web/mail/lib/lang/bg_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/bg_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Policy'; $wb['email_txt'] = 'Email (Pattern)'; $wb['fullname_txt'] = 'Name'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/bg_user_quota_stats_list.lng b/interface/web/mail/lib/lang/bg_user_quota_stats_list.lng index 48b7044ef10bc5b24928fe084207e00aafc31578..a77726622c0e40a587be4d5129ac63a5154e2b9c 100755 --- a/interface/web/mail/lib/lang/bg_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/bg_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Квота'; $wb['name_txt'] = 'Име'; $wb['email_txt'] = 'Емайл адрес'; $wb['used_txt'] = 'Използвано място'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/br_spamfilter_users.lng b/interface/web/mail/lib/lang/br_spamfilter_users.lng index 451500940879441ebdfc489351cde65f80e68451..7bf85574f0742b45f2b6206ae672f93179c6a3bc 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Política'; $wb['email_txt'] = 'Correio (Padrão)'; $wb['fullname_txt'] = 'Nome'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/br_user_quota_stats_list.lng b/interface/web/mail/lib/lang/br_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/br_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/br_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/cz_spamfilter_users.lng b/interface/web/mail/lib/lang/cz_spamfilter_users.lng index 914304c58b9e854c30aadcd60cda1593aaca05d3..4f5c0e867f9bbc8583d7b933aeb84c3b4af2f8bd 100644 --- a/interface/web/mail/lib/lang/cz_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/cz_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Politika'; $wb['email_txt'] = 'Email (vzor)'; $wb['fullname_txt'] = 'Název'; $wb['local_txt'] = 'Lokální'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng index c8b73a9e8e8a85152632b9c3c5b3edf752ee97db..f60e616517ca05badd15aae5bd0ec7c161636133 100755 --- a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Kvóta'; $wb['name_txt'] = 'Jméno'; $wb['email_txt'] = 'E-mailová adresa'; $wb['used_txt'] = 'Využité místo'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/de_mail_get.lng b/interface/web/mail/lib/lang/de_mail_get.lng index b972650511cceebbe8f96030f79f79fb816095d3..e6064caba8447317a28b99862343b9ffa4869d12 100644 --- a/interface/web/mail/lib/lang/de_mail_get.lng +++ b/interface/web/mail/lib/lang/de_mail_get.lng @@ -14,5 +14,5 @@ $wb['source_password_error_isempty'] = 'Passwort ist leer.'; $wb['destination_error_isemail'] = 'Kein Ziel gewählt.'; $wb['source_server_error_regex'] = 'POP3/IMAP Server ist kein gültiger Domainname.'; $wb['source_read_all_txt'] = 'Alle E-Mails abrufen (inkl. bereits gelesene E-Mails)'; -$wb['error_delete_read_all_combination'] = 'Unzulässige Kombination von Optionen. Sie können '; +$wb['error_delete_read_all_combination'] = 'Unzulässige Kombination von Optionen. Sie können "E-Mails nach Empfang löschen" = nein nicht zusammen mit "Alle E-Mails abrufen (inkl. bereits gelesene E-Mails)" = ja benutzen.'; ?> diff --git a/interface/web/mail/lib/lang/el_spamfilter_users.lng b/interface/web/mail/lib/lang/el_spamfilter_users.lng index 39a927363aa58bf42509e78b14d9b96de6d6fbf9..0a896b1b0026691649df91de73419792c903ffa1 100644 --- a/interface/web/mail/lib/lang/el_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/el_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Πολιτική'; $wb['email_txt'] = 'Email (Μοτίβο)'; $wb['fullname_txt'] = 'Όνομα'; $wb['local_txt'] = 'Τοπικός'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/el_user_quota_stats_list.lng b/interface/web/mail/lib/lang/el_user_quota_stats_list.lng index 2dfdf3af8fbd0a98d89bc1da611f7d03fc071043..8c404070378f9d163321d732241fff91ab902e63 100755 --- a/interface/web/mail/lib/lang/el_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/el_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Όριο'; $wb['name_txt'] = 'Όνομα'; $wb['email_txt'] = 'Διεύθυνση Email'; $wb['used_txt'] = 'Χώρος σε χρήση'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/es_spamfilter_users.lng b/interface/web/mail/lib/lang/es_spamfilter_users.lng index 361c2fe1c1c68e41d822a6ae3bb781a58f87b5ee..0078870a18bfc8d20355c565f1c0cbdb2cb7b9f6 100644 --- a/interface/web/mail/lib/lang/es_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/es_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'ID Política'; $wb['email_txt'] = 'Correo'; $wb['fullname_txt'] = 'Nombre'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/es_user_quota_stats_list.lng b/interface/web/mail/lib/lang/es_user_quota_stats_list.lng index f0694248377d0c2fb5184e467f4e5ba2e60c0553..75ce5a11ef8e246e71f4152092c068164d5b3ebc 100755 --- a/interface/web/mail/lib/lang/es_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/es_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Cuota'; $wb['name_txt'] = 'Nombre'; $wb['email_txt'] = 'Correo'; $wb['used_txt'] = 'Usado'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/fi_spamfilter_users.lng b/interface/web/mail/lib/lang/fi_spamfilter_users.lng index d960f5c82ad490ae19dadeb4005dc30ab24020c5..d8a4a3f5a3cd3a6768744cfaef5b86cfe8ff4976 100755 --- a/interface/web/mail/lib/lang/fi_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/fi_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Kohtelutapa'; $wb['email_txt'] = 'Sähköpostiosoite (RegExp)'; $wb['fullname_txt'] = 'Koko nimi'; $wb['local_txt'] = 'Paikallinen'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/fi_user_quota_stats_list.lng b/interface/web/mail/lib/lang/fi_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/fi_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/fi_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/fr_spamfilter_users.lng b/interface/web/mail/lib/lang/fr_spamfilter_users.lng index e88d33e39625a73fdaf29dab14ef4d12a048908b..07d06461c7bf4550ae76b70926902569b376b580 100644 --- a/interface/web/mail/lib/lang/fr_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/fr_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Politique'; $wb['email_txt'] = 'Email (Schéma)'; $wb['fullname_txt'] = 'Nom'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/fr_user_quota_stats_list.lng b/interface/web/mail/lib/lang/fr_user_quota_stats_list.lng index 258d73f235da886e95d7b66cd0dbc753b7364899..06931edb1d53f06d7c4d7f6d0b858da91d9b59f3 100755 --- a/interface/web/mail/lib/lang/fr_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/fr_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Nom'; $wb['email_txt'] = 'Adresse email'; $wb['used_txt'] = 'Espace utilisé'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/hr_spamfilter_users.lng b/interface/web/mail/lib/lang/hr_spamfilter_users.lng index ff988f5d7a435ddd55a3ccfc44eb83634903c21a..ddd28568cd19c35b25312b820fd40917f228eb17 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Pravilo'; $wb['email_txt'] = 'Email (Pattern)'; $wb['fullname_txt'] = 'Name'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/hr_user_quota_stats_list.lng b/interface/web/mail/lib/lang/hr_user_quota_stats_list.lng index 15cd7d1d3bf1f30b33905580b961b79e618a9fa0..a41b1a94c6d2aaa36df73cb33412b77a1f3bd419 100644 --- a/interface/web/mail/lib/lang/hr_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/hr_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Kvota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/hu_spamfilter_users.lng b/interface/web/mail/lib/lang/hu_spamfilter_users.lng index 4fd29bbd53c3a1cac0a0733299a882617dfced3c..2800c3d94c91adf4a909d1f0ef6ebdc771ca1a30 100644 --- a/interface/web/mail/lib/lang/hu_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/hu_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Szabály'; $wb['email_txt'] = 'Email (Minta)'; $wb['fullname_txt'] = 'Név'; $wb['local_txt'] = 'Helyi'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/hu_user_quota_stats_list.lng b/interface/web/mail/lib/lang/hu_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/hu_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/hu_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/id_spamfilter_users.lng b/interface/web/mail/lib/lang/id_spamfilter_users.lng index 9b2868fe1ec7948c1d6053931c9742c662821f6b..c316090e484248722425fa1a3f077f8f91aff969 100644 --- a/interface/web/mail/lib/lang/id_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/id_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Kebijakan'; $wb['email_txt'] = 'Email (Pola)'; $wb['fullname_txt'] = 'Nama'; $wb['local_txt'] = 'Lokal'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/id_user_quota_stats_list.lng b/interface/web/mail/lib/lang/id_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/id_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/id_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/it_spamfilter_users.lng b/interface/web/mail/lib/lang/it_spamfilter_users.lng index a93d94dbae5a1d6f25133988fefceaa2ddc3bc13..3edc749e98ef435cf3b43874003eec6a7388dfde 100644 --- a/interface/web/mail/lib/lang/it_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/it_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Policy'; $wb['email_txt'] = 'Email (Pattern)'; $wb['fullname_txt'] = 'Name'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/it_user_quota_stats_list.lng b/interface/web/mail/lib/lang/it_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/it_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/it_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/ja_spamfilter_users.lng b/interface/web/mail/lib/lang/ja_spamfilter_users.lng index 815e723c2f9aaedac8acfb4362bc674fb6ffec42..9c315585149d3b39e7a07fad19d61e353ecf9117 100644 --- a/interface/web/mail/lib/lang/ja_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/ja_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'ポリシー'; $wb['email_txt'] = 'メールアドレス(パターン)'; $wb['fullname_txt'] = 'Name'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/ja_user_quota_stats_list.lng b/interface/web/mail/lib/lang/ja_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/ja_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/ja_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/nl_spamfilter_users.lng b/interface/web/mail/lib/lang/nl_spamfilter_users.lng index a6f4ab71a3870a6979d4198fefdeae67104e71cd..3d32279511cebcc4986f29f750b0ca2bf6890356 100644 --- a/interface/web/mail/lib/lang/nl_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/nl_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Policy'; $wb['email_txt'] = 'E-mail (Patroon)'; $wb['fullname_txt'] = 'Naam'; $wb['local_txt'] = 'Locaal'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/nl_user_quota_stats_list.lng b/interface/web/mail/lib/lang/nl_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/nl_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/nl_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/pl_spamfilter_users.lng b/interface/web/mail/lib/lang/pl_spamfilter_users.lng index 656c29ea1abcd2c31a10fe63326f8bca88737182..ef0ebbec047bc1935d2e2af9807906f556e3b943 100644 --- a/interface/web/mail/lib/lang/pl_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/pl_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Polityka'; $wb['email_txt'] = 'E-mail (wzór)'; $wb['fullname_txt'] = 'Nazwa'; $wb['local_txt'] = 'Lokalne'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/pl_user_quota_stats_list.lng b/interface/web/mail/lib/lang/pl_user_quota_stats_list.lng index 2b33b10402539b33fae61de14ea19898a8a0d6c1..14b26b8c72c3daad8d0c6345fbd20bc6f6ba6116 100755 --- a/interface/web/mail/lib/lang/pl_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/pl_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Limit'; $wb['name_txt'] = 'Nazwa'; $wb['email_txt'] = 'Adres e-mail'; $wb['used_txt'] = 'Użycie dysku'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/pt_spamfilter_users.lng b/interface/web/mail/lib/lang/pt_spamfilter_users.lng index 451500940879441ebdfc489351cde65f80e68451..7bf85574f0742b45f2b6206ae672f93179c6a3bc 100644 --- a/interface/web/mail/lib/lang/pt_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/pt_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Política'; $wb['email_txt'] = 'Correio (Padrão)'; $wb['fullname_txt'] = 'Nome'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/pt_user_quota_stats_list.lng b/interface/web/mail/lib/lang/pt_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/pt_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/pt_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/ro_spamfilter_users.lng b/interface/web/mail/lib/lang/ro_spamfilter_users.lng index d07cd4987f1c441a9a135be4884b2371a2c06b92..a506428cb851804d71f807df2e6bff39a592f95b 100644 --- a/interface/web/mail/lib/lang/ro_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/ro_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Policy'; $wb['email_txt'] = 'Email (Pattern)'; $wb['fullname_txt'] = 'Nume'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/ro_user_quota_stats_list.lng b/interface/web/mail/lib/lang/ro_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/ro_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/ro_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/ru_spamfilter_users.lng b/interface/web/mail/lib/lang/ru_spamfilter_users.lng index 6c6665813186b076235603bd71be758a38a34fa0..f5a1dc48538cfabb1b4997539d2e25fdac9516d5 100644 --- a/interface/web/mail/lib/lang/ru_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/ru_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Политика'; $wb['email_txt'] = 'Email (Шаблон)'; $wb['fullname_txt'] = 'Имя'; $wb['local_txt'] = 'Локальный'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/ru_user_quota_stats_list.lng b/interface/web/mail/lib/lang/ru_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/ru_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/ru_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/se_spamfilter_users.lng b/interface/web/mail/lib/lang/se_spamfilter_users.lng index a93d94dbae5a1d6f25133988fefceaa2ddc3bc13..3edc749e98ef435cf3b43874003eec6a7388dfde 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Policy'; $wb['email_txt'] = 'Email (Pattern)'; $wb['fullname_txt'] = 'Name'; $wb['local_txt'] = 'Local'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/se_user_quota_stats_list.lng b/interface/web/mail/lib/lang/se_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/se_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/se_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/sk_spamfilter_users.lng b/interface/web/mail/lib/lang/sk_spamfilter_users.lng index f193d421cfd1ff096a35734287d2338b12b8adee..47aba5e491aa1f78f125f3babc3dff08f628e7b2 100644 --- a/interface/web/mail/lib/lang/sk_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/sk_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Politika'; $wb['email_txt'] = 'E-mail (vzor)'; $wb['fullname_txt'] = 'Meno'; $wb['local_txt'] = 'Miestny'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/sk_user_quota_stats_list.lng b/interface/web/mail/lib/lang/sk_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/sk_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/sk_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/lib/lang/tr_spamfilter_users.lng b/interface/web/mail/lib/lang/tr_spamfilter_users.lng index b1e3ff81b81d7b1f8bf036459ec6c33c38633100..2efbed4ea7ff095a2165bde4a79f0e940c75a89e 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_users.lng @@ -5,4 +5,6 @@ $wb['policy_id_txt'] = 'Kural'; $wb['email_txt'] = 'Email (Desen)'; $wb['fullname_txt'] = 'İsim'; $wb['local_txt'] = 'Yerel'; +$wb['email_error_notempty'] = 'The email address must not be empty.'; +$wb['fullname_error_notempty'] = 'The name must not be empty.'; ?> diff --git a/interface/web/mail/lib/lang/tr_user_quota_stats_list.lng b/interface/web/mail/lib/lang/tr_user_quota_stats_list.lng index 95fff21abadaa6c3f3637837d2d7053deee945a6..394e97c5c7ac264e8b475b0b40ff8f9c60da3bcf 100755 --- a/interface/web/mail/lib/lang/tr_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/tr_user_quota_stats_list.lng @@ -4,4 +4,5 @@ $wb['quota_txt'] = 'Quota'; $wb['name_txt'] = 'Name'; $wb['email_txt'] = 'Email Address'; $wb['used_txt'] = 'Used space'; +$wb['percentage_txt'] = 'Used %'; ?> diff --git a/interface/web/mail/mail_alias_edit.php b/interface/web/mail/mail_alias_edit.php index b7219d71c9b0729d94759f9eb24aa9b9aca79da2..bb96a7e3a9d5d01a3fe49a1dffaedde0c306d956 100644 --- a/interface/web/mail/mail_alias_edit.php +++ b/interface/web/mail/mail_alias_edit.php @@ -98,6 +98,12 @@ class page_action extends tform_actions { $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($app->functions->idn_encode($_POST["email_domain"]))."' AND ".$app->tform->getAuthSQL('r')); if($domain["domain"] != $app->functions->idn_encode($_POST["email_domain"])) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"]; + //* Check if destination email belongs to user + if(isset($_POST["destination"])) { + $email = $app->db->queryOneRecord("SELECT email FROM mail_user WHERE email = '".$app->db->quote($app->functions->idn_encode($_POST["destination"]))."' AND ".$app->tform->getAuthSQL('r')); + if($email["email"] != $app->functions->idn_encode($_POST["destination"])) $app->tform->errorMessage .= $app->tform->lng("no_destination_perm"); + } + // Check the client limits, if user is not the admin if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin // Get the limits of the client diff --git a/interface/web/mail/mail_get_edit.php b/interface/web/mail/mail_get_edit.php index 41434c05e583383413953b2d41d5d306bb5021c9..cd7741b65824dff1fef370600f3ee51b17c16d59 100644 --- a/interface/web/mail/mail_get_edit.php +++ b/interface/web/mail/mail_get_edit.php @@ -69,6 +69,12 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; + //* Check if destination email belongs to user + if(isset($_POST["destination"])) { + $email = $app->db->queryOneRecord("SELECT email FROM mail_user WHERE email = '".$app->db->quote($app->functions->idn_encode($_POST["destination"]))."' AND ".$app->tform->getAuthSQL('r')); + if($email["email"] != $app->functions->idn_encode($_POST["destination"])) $app->tform->errorMessage .= $app->tform->lng("no_destination_perm"); + } + // Check the client limits, if user is not the admin if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin // Get the limits of the client diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php index ca973c56b5988b2b20803604a06ef507464ef625..da3f99cb419c8fdcfe6de89f39cb9fcc8315222b 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -166,7 +166,7 @@ class page_action extends tform_actions { } // Check the quota and adjust - if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0) { + if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0 && $app->functions->intval($this->dataRecord["quota"]) * 1024 * 1024 != $this->oldDataRecord['quota']) { $tmp = $app->db->queryOneRecord("SELECT sum(quota) as mailquota FROM mail_user WHERE mailuser_id != ".$app->functions->intval($this->id)." AND ".$app->tform->getAuthSQL('u')); $mailquota = $tmp["mailquota"] / 1024 / 1024; $new_mailbox_quota = $app->functions->intval($this->dataRecord["quota"]); diff --git a/interface/web/monitor/lib/lang/ar.lng b/interface/web/monitor/lib/lang/ar.lng index 01a79635a285999cec48fa468dfd382bf8cff502..150729e46b0d133e8510e1aeddbbc87f20d431ec 100644 --- a/interface/web/monitor/lib/lang/ar.lng +++ b/interface/web/monitor/lib/lang/ar.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/bg.lng b/interface/web/monitor/lib/lang/bg.lng index 87df3554a940d1b1b0d352da6afc1819446bbc28..80dee6c7404a8e4c1fa649dc7f371431f7ad2fc9 100644 --- a/interface/web/monitor/lib/lang/bg.lng +++ b/interface/web/monitor/lib/lang/bg.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Покажи fail2ban-Log'; $wb['Show IPTables'] = 'Покажи IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Покажи OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/br.lng b/interface/web/monitor/lib/lang/br.lng index d3f3d3079968c7b04616e22f7be0057e5f2c2b80..ff38df232eccbbda4f5e94cfe1588d0d77eec5e4 100644 --- a/interface/web/monitor/lib/lang/br.lng +++ b/interface/web/monitor/lib/lang/br.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/cz.lng b/interface/web/monitor/lib/lang/cz.lng index 36647b72ab3dce5404c4d554b8cf05c6f7e0867f..2379533c0fd385763bbbe29b0c649a9b509e1555 100644 --- a/interface/web/monitor/lib/lang/cz.lng +++ b/interface/web/monitor/lib/lang/cz.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Pravidla'; $wb['Show fail2ban-Log'] = 'Zobrazit Fail2Ban Log'; $wb['Show IPTables'] = 'Zobrazit IPTables pravidla'; $wb['Show OpenVz VE BeanCounter'] = 'Ukázat OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/el.lng b/interface/web/monitor/lib/lang/el.lng index 88e7f126a1512ce94ac444e8ffe93ce034926aa3..d840b6bb68aea1f5e9986e00bb1d93bcba660854 100644 --- a/interface/web/monitor/lib/lang/el.lng +++ b/interface/web/monitor/lib/lang/el.lng @@ -146,4 +146,10 @@ $wb['Show fail2ban-Log'] = 'Εμφάνιση fail2ban-Log'; $wb['Show IPTables'] = 'Εμφάνιση IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; $wb['monitor_serverstate_raidresync_txt'] = 'Your RAID is in RESYNC mode'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/es.lng b/interface/web/monitor/lib/lang/es.lng index 64c6cd7ad7d13c4e7f6d656f314fd3d4ed5b8b35..020cf4d2d63f61b21bef282b46298f3b4018b024 100644 --- a/interface/web/monitor/lib/lang/es.lng +++ b/interface/web/monitor/lib/lang/es.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'Reglas de IPTables'; $wb['Show fail2ban-Log'] = 'Mostrar el registro de Fail2ban'; $wb['Show IPTables'] = 'Mostrar IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Mostrar OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/fi.lng b/interface/web/monitor/lib/lang/fi.lng index 4036b3c5c1aa2eed9f5bbcc7b13ba376dc1f7fb4..5d3e4d14c7efb6acc257302fbe1d9c81e755de70 100755 --- a/interface/web/monitor/lib/lang/fi.lng +++ b/interface/web/monitor/lib/lang/fi.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/fr.lng b/interface/web/monitor/lib/lang/fr.lng index f10766953bed569e0fd31b8c01937903c628055a..70bb47be6c539532a6827fd12e16476f223ee0fc 100644 --- a/interface/web/monitor/lib/lang/fr.lng +++ b/interface/web/monitor/lib/lang/fr.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'Règles IPTables'; $wb['monitor_title_beancounter_txt'] = 'Compteur OpenVz VE'; $wb['monitor_updates_nosupport_txt'] = 'Votre distribution nest pas supportée par le moniteur'; $wb['monitor_beancounter_nosupport_txt'] = 'Ce serveur n\'est pas un VE OpenVz et n\'a pas d\'information de compteur'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/hr.lng b/interface/web/monitor/lib/lang/hr.lng index b14129258a5947e942330a1d953781648cec7cd0..da1a09dc6b57733b8cc486b61d4d3e825ffbb019 100644 --- a/interface/web/monitor/lib/lang/hr.lng +++ b/interface/web/monitor/lib/lang/hr.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables zaštita'; $wb['Show fail2ban-Log'] = 'Prikaži Fail2Ban log'; $wb['Show IPTables'] = 'Prikaži IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Prikaži OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/hu.lng b/interface/web/monitor/lib/lang/hu.lng index b16d6fcd2964594ab26d027c406d27ccc376502a..833b4704fb9e10d9170189fd69def9f84079f871 100644 --- a/interface/web/monitor/lib/lang/hu.lng +++ b/interface/web/monitor/lib/lang/hu.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/id.lng b/interface/web/monitor/lib/lang/id.lng index e0871f3b14271162667cd62ef7ded0b1b7a0ae9c..e2a0286ac07f6a5d01ff94a2c2906d32775b6daa 100644 --- a/interface/web/monitor/lib/lang/id.lng +++ b/interface/web/monitor/lib/lang/id.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/it.lng b/interface/web/monitor/lib/lang/it.lng index 8c7b8be0d056e099ee21b7b7b45441c054bae07d..7b5de123b33c9c80fe56b5c8369c29b980f179cb 100644 --- a/interface/web/monitor/lib/lang/it.lng +++ b/interface/web/monitor/lib/lang/it.lng @@ -146,4 +146,10 @@ $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/ja.lng b/interface/web/monitor/lib/lang/ja.lng index 0d3340755b6248c08e8e3f7d49b93c565df0d019..57e5374de5f60eb77735aa3242dd48dd199848c8 100644 --- a/interface/web/monitor/lib/lang/ja.lng +++ b/interface/web/monitor/lib/lang/ja.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/nl.lng b/interface/web/monitor/lib/lang/nl.lng index e4bfb03f283a1412a8a08d5aef0cdf1704033bc1..103c20264c678bcf191c0fc7f540a4cf42b5520e 100644 --- a/interface/web/monitor/lib/lang/nl.lng +++ b/interface/web/monitor/lib/lang/nl.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/pl.lng b/interface/web/monitor/lib/lang/pl.lng index f1ce82191c083b01151988f6a9d839c17b5744dd..870e3482949fe409ce25656d0ad7797fa83c150a 100644 --- a/interface/web/monitor/lib/lang/pl.lng +++ b/interface/web/monitor/lib/lang/pl.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'Reguły IPTables'; $wb['Show fail2ban-Log'] = 'Pokaż log fail2ban'; $wb['Show IPTables'] = 'Pokaż reguły IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/pt.lng b/interface/web/monitor/lib/lang/pt.lng index 08d6d59405467d4e5d39861a6ad6aca26f20b537..42f21a150bd698a305d7bddf5d191fcf4834ae3d 100644 --- a/interface/web/monitor/lib/lang/pt.lng +++ b/interface/web/monitor/lib/lang/pt.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/ro.lng b/interface/web/monitor/lib/lang/ro.lng index 859c4166e43d1f3cbd7fe729a5b1d231165c6fc8..167c2f988eef14258c13b678a4217d59c3106d3d 100644 --- a/interface/web/monitor/lib/lang/ro.lng +++ b/interface/web/monitor/lib/lang/ro.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/ru.lng b/interface/web/monitor/lib/lang/ru.lng index c1b310f89fa919359f0bf7caba899daa7fbfbf57..42173f5c1e6e5a1131d36085363949c32b50868d 100644 --- a/interface/web/monitor/lib/lang/ru.lng +++ b/interface/web/monitor/lib/lang/ru.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/se.lng b/interface/web/monitor/lib/lang/se.lng index 5385f76d420418ce886f83bacaefc361a6dea8a8..65c57ae3154de63415b0e87b21cb067f2e8c9350 100644 --- a/interface/web/monitor/lib/lang/se.lng +++ b/interface/web/monitor/lib/lang/se.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/sk.lng b/interface/web/monitor/lib/lang/sk.lng index 9fed474a3eaaa1417350361e85e0889e6951afca..a5ea26cd79855fcba32f54cd41f31bb5cd03b217 100644 --- a/interface/web/monitor/lib/lang/sk.lng +++ b/interface/web/monitor/lib/lang/sk.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/monitor/lib/lang/tr.lng b/interface/web/monitor/lib/lang/tr.lng index aaea02255fe9bf3be027f0d857a5233c79229ec7..d15ef4e8a48a3950c4c9415017719ae18ade199b 100644 --- a/interface/web/monitor/lib/lang/tr.lng +++ b/interface/web/monitor/lib/lang/tr.lng @@ -146,4 +146,10 @@ $wb['monitor_title_iptables_txt'] = 'IPTables Rules'; $wb['Show fail2ban-Log'] = 'Show fail2ban-Log'; $wb['Show IPTables'] = 'Show IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter'; +$wb['Show Monit'] = 'Show Monit'; +$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; +$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; +$wb['Show Munin'] = 'Show Munin'; +$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; +$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; ?> diff --git a/interface/web/sites/ajax_get_json.php b/interface/web/sites/ajax_get_json.php index 334738acfc53e3776be15ae611c01470e0491a65..9da45131d46728d05c20b4d5b2ef84822d2bf8ce 100644 --- a/interface/web/sites/ajax_get_json.php +++ b/interface/web/sites/ajax_get_json.php @@ -34,11 +34,12 @@ require_once('../../lib/app.inc.php'); //* Check permissions for module $app->auth->check_module_permissions('sites'); -$app->uses('getconf'); +$app->uses('getconf,tform'); $server_id = $app->functions->intval($_GET["server_id"]); $web_id = $app->functions->intval($_GET["web_id"]); $php_type = $_GET["php_type"]; +$client_group_id = $app->functions->intval($_GET['client_group_id']); $type = $_GET["type"]; //if($_SESSION["s"]["user"]["typ"] == 'admin') { @@ -55,7 +56,7 @@ $type = $_GET["type"]; if($type == 'getserverid'){ $json = '{"serverid":"'; - $sql = "SELECT server_id FROM web_domain WHERE domain_id = $web_id"; + $sql = "SELECT server_id FROM web_domain WHERE domain_id = $web_id AND ".$app->tform->getAuthSQL('r'); $server = $app->db->queryOneRecord($sql); $json .= $server['server_id']; unset($server); @@ -69,10 +70,26 @@ $type = $_GET["type"]; $web_config = $app->getconf->get_server_config($server_id, 'web'); if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; if($server_type == 'nginx' && $php_type == 'fast-cgi') $php_type = 'php-fpm'; - // get client id $sql_where = ''; - if($_SESSION["s"]["user"]["typ"] != 'admin'){ - $sql_where = " AND client_id = ".$_SESSION["s"]["user"]["client_id"]; + + //* Client: If the logged in user is not admin and has no sub clients (no reseller) + if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $sql_where = " AND (client_id = 0 OR client_id = ".$_SESSION["s"]["user"]["client_id"] . ")"; + //* Reseller: If the logged in user is not admin and has sub clients (is a reseller) + } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = $client_group_id"); + //$sql_where = " AND (client_id = 0 OR client_id = ".$_SESSION["s"]["user"]["client_id"]; + $sql_where = " AND (client_id = 0"; + if($app->functions->intval($client['client_id']) > 0) $sql_where .= " OR client_id = ".$app->functions->intval($client['client_id']); + $sql_where .= ")"; + //* Admin: If the logged in user is admin + } else { + //$sql_where = ''; + $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = $client_group_id"); + //$sql_where = " AND (client_id = 0 OR client_id = ".$_SESSION["s"]["user"]["client_id"]; + $sql_where = " AND (client_id = 0"; + if($app->functions->intval($client['client_id']) > 0) $sql_where .= " OR client_id = ".$app->functions->intval($client['client_id']); + $sql_where .= ")"; } if($php_type == 'php-fpm'){ @@ -99,7 +116,7 @@ $type = $_GET["type"]; if($type == 'getphptype'){ $json = '{"phptype":"'; - $sql = "SELECT php FROM web_domain WHERE domain_id = $web_id"; + $sql = "SELECT php FROM web_domain WHERE domain_id = $web_id AND ".$app->tform->getAuthSQL('r'); $php = $app->db->queryOneRecord($sql); $json .= $php['php']; unset($php); @@ -108,7 +125,7 @@ $type = $_GET["type"]; if($type == 'getredirecttype'){ $json = '{"redirecttype":"'; - $sql = "SELECT redirect_type FROM web_domain WHERE domain_id = $web_id"; + $sql = "SELECT redirect_type FROM web_domain WHERE domain_id = $web_id AND ".$app->tform->getAuthSQL('r'); $redirect = $app->db->queryOneRecord($sql); $json .= $redirect['redirect_type']; unset($redirect); @@ -138,7 +155,7 @@ $type = $_GET["type"]; if($type == 'getdatabaseusers') { $json = '{}'; - $sql = "SELECT sys_groupid FROM web_domain WHERE domain_id = $web_id"; + $sql = "SELECT sys_groupid FROM web_domain WHERE domain_id = $web_id AND ".$app->tform->getAuthSQL('r'); $group = $app->db->queryOneRecord($sql); if($group) { $sql = "SELECT database_user_id, database_user FROM web_database_user WHERE sys_groupid = '" . $group['sys_groupid'] . "'"; diff --git a/interface/web/sites/cron_edit.php b/interface/web/sites/cron_edit.php index 4c584d190f95cf8b90b0f695b46c0ec8815e8671..fea4a7be164f882f730140cf5bd514adb435fdb0 100644 --- a/interface/web/sites/cron_edit.php +++ b/interface/web/sites/cron_edit.php @@ -104,7 +104,8 @@ class page_action extends tform_actions { } // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"])); + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); // Set fixed values $this->dataRecord["server_id"] = $parent_domain["server_id"]; diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php index 8dc3ab30b46c338149badd1bc24e420faeabbc28..99e0bbdfec90e5b24e369adb72f61aec34bf39e9 100644 --- a/interface/web/sites/database_edit.php +++ b/interface/web/sites/database_edit.php @@ -136,6 +136,9 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); + if($_SESSION["s"]["user"]["typ"] != 'admin') { // Get the limits of the client $client_group_id = $_SESSION["s"]["user"]["default_group"]; @@ -186,7 +189,7 @@ class page_action extends tform_actions { function onBeforeUpdate() { global $app, $conf, $interfaceConf; - //* Site shell not be empty + //* Site shall not be empty if($this->dataRecord['parent_domain_id'] == 0) $app->tform->errorMessage .= $app->tform->lng("database_site_error_empty").'
    '; //* Get the database name and database user prefix diff --git a/interface/web/sites/ftp_user_edit.php b/interface/web/sites/ftp_user_edit.php index 798233de9c828ce293d3d10552db8b956952150f..59a36805ce62ebf4a7e9f80df7c494f8fc7d1c09 100644 --- a/interface/web/sites/ftp_user_edit.php +++ b/interface/web/sites/ftp_user_edit.php @@ -91,7 +91,15 @@ class page_action extends tform_actions { global $app, $conf; // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"])); + if(isset($this->dataRecord["parent_domain_id"])) { + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); + } else { + $tmp = $app->tform->getDataRecord($this->id); + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval($tmp["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); + unset($tmp); + } // Set a few fixed values $this->dataRecord["server_id"] = $parent_domain["server_id"]; diff --git a/interface/web/sites/lib/lang/ar_shell_user.lng b/interface/web/sites/lib/lang/ar_shell_user.lng index 4f59994710c995909338d7fc525e4f410450a077..8460d4e7ae75b9316c39ebd272a0b1cc43b12fb2 100644 --- a/interface/web/sites/lib/lang/ar_shell_user.lng +++ b/interface/web/sites/lib/lang/ar_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/ar_web_domain.lng b/interface/web/sites/lib/lang/ar_web_domain.lng index f10cc422523c5757706f85b1192f6c3b0e24593e..8bdb312c9b61f2c7408800b1a7ace435c44b1c25 100644 --- a/interface/web/sites/lib/lang/ar_web_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/ar_web_folder_user.lng b/interface/web/sites/lib/lang/ar_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/ar_web_folder_user.lng +++ b/interface/web/sites/lib/lang/ar_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/bg_shell_user.lng b/interface/web/sites/lib/lang/bg_shell_user.lng index 888a1b8cc82b90e3b914650c9af677e496c6e4e3..82a44af3488e86456434c7e31fdb3b22dac58b7e 100644 --- a/interface/web/sites/lib/lang/bg_shell_user.lng +++ b/interface/web/sites/lib/lang/bg_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_domain.lng b/interface/web/sites/lib/lang/bg_web_domain.lng index c2816ad35080eeab3c66b121fe1c3fe7cbae4025..dc2d3ff67921d9755b251b123795f01e763dc0c8 100644 --- a/interface/web/sites/lib/lang/bg_web_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_folder_user.lng b/interface/web/sites/lib/lang/bg_web_folder_user.lng index df127ebdf352ae6c72bad26cd722547bc61abdb8..c84ea7158caff128d0b561b579f513fc4e32ac61 100644 --- a/interface/web/sites/lib/lang/bg_web_folder_user.lng +++ b/interface/web/sites/lib/lang/bg_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng index a001451a792729b90a2c1e8ff5424e094b9b71d0..8a098cb5ae56f7d6d9d316dac7da715377149dda 100644 --- a/interface/web/sites/lib/lang/br_shell_user.lng +++ b/interface/web/sites/lib/lang/br_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index 623bc0b2109637fe95dca47719cbccb7ba34ad57..b2abb2ac905695a54632af7e279e688fe7a483ac 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder_user.lng b/interface/web/sites/lib/lang/br_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/br_web_folder_user.lng +++ b/interface/web/sites/lib/lang/br_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/cz_shell_user.lng b/interface/web/sites/lib/lang/cz_shell_user.lng index 97b8a0d08843c50c3954d36534c5fe755e3bc05f..711475eba8a1cd40c2fc6ea1654554faf29d0163 100644 --- a/interface/web/sites/lib/lang/cz_shell_user.lng +++ b/interface/web/sites/lib/lang/cz_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generovat heslo'; $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; $wb['password_match_txt'] = 'Hesla se shodují.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_domain.lng b/interface/web/sites/lib/lang/cz_web_domain.lng index f3e31d39a4524fbccdf3ee9b7550ded57a54be76..49ee278fa4e4b7b33d8df14b63c927630c2985a3 100644 --- a/interface/web/sites/lib/lang/cz_web_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_folder_user.lng b/interface/web/sites/lib/lang/cz_web_folder_user.lng index 48f426089a38842e9c7c87d4d2849fe1cad32614..d55cb29d8d386dd3a708e0b51fb83ceb7d63b6b5 100644 --- a/interface/web/sites/lib/lang/cz_web_folder_user.lng +++ b/interface/web/sites/lib/lang/cz_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generovat heslo'; $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; $wb['password_match_txt'] = 'Hesla se shodují.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/de_database_admin_list.lng b/interface/web/sites/lib/lang/de_database_admin_list.lng index 3b11b2c4153dbb487984cc3d32acd161fd8522d8..f77b4ca89da35127dd16e559e066020320d836b5 100644 --- a/interface/web/sites/lib/lang/de_database_admin_list.lng +++ b/interface/web/sites/lib/lang/de_database_admin_list.lng @@ -8,4 +8,5 @@ $wb['database_user_txt'] = 'Datenbank Benutzer'; $wb['database_name_txt'] = 'Datenbankname'; $wb['add_new_record_txt'] = 'Neue Datenbank hinzufügen'; $wb['sys_groupid_txt'] = 'Kunde'; +$wb['parent_domain_id_txt'] = 'Domain'; ?> diff --git a/interface/web/sites/lib/lang/de_database_list.lng b/interface/web/sites/lib/lang/de_database_list.lng index 89caea3e99d1950c6ad8878144982a6f8d394f29..d355181b2dd1e3ab5a3ef1fcf3f832841924501b 100644 --- a/interface/web/sites/lib/lang/de_database_list.lng +++ b/interface/web/sites/lib/lang/de_database_list.lng @@ -7,4 +7,5 @@ $wb['server_id_txt'] = 'Server'; $wb['database_name_txt'] = 'Datenbankname'; $wb['add_new_record_txt'] = 'Neue Datenbank hinzufügen'; $wb['database_user_txt'] = 'Database user'; +$wb['parent_domain_id_txt'] = 'Domain'; ?> diff --git a/interface/web/sites/lib/lang/de_web_domain.lng b/interface/web/sites/lib/lang/de_web_domain.lng index 5467c99657cb9c89520c04325a1f861260e5972f..15bbcfd5750979c3c1298c4bce4d7bb2e00d40bf 100644 --- a/interface/web/sites/lib/lang/de_web_domain.lng +++ b/interface/web/sites/lib/lang/de_web_domain.lng @@ -119,4 +119,5 @@ $wb['monthly_backup_txt'] = 'Monatlich'; $wb['rewrite_rules_txt'] = 'Rewrite Rules'; $wb['invalid_rewrite_rules_txt'] = 'Unzulässige Rewrite Rules'; $wb['allowed_rewrite_rule_directives_txt'] = 'Erlaubte Direktiven:'; +$wb['configuration_error_txt'] = "KONFIGURATIONSFEHLER"; ?> diff --git a/interface/web/sites/lib/lang/de_web_folder_user.lng b/interface/web/sites/lib/lang/de_web_folder_user.lng index 9562168e1ebab2b33f47889763e7dd7a8bbbded0..6983dc136e265beef4ee4400461e30c30ad4ebb0 100644 --- a/interface/web/sites/lib/lang/de_web_folder_user.lng +++ b/interface/web/sites/lib/lang/de_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Passwort erzeugen'; $wb['repeat_password_txt'] = 'Passwort wiederholen'; $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; +$wb['no_folder_perm'] = 'Sie haben keine Berechtigung für diesen Ordner.'; ?> diff --git a/interface/web/sites/lib/lang/el_shell_user.lng b/interface/web/sites/lib/lang/el_shell_user.lng index e41572a1a2dece4e40c4b77feec8d4da8ad3a494..3c3ea316ce78c95fa2aa59f6d8783064a548c2cf 100644 --- a/interface/web/sites/lib/lang/el_shell_user.lng +++ b/interface/web/sites/lib/lang/el_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/el_web_domain.lng b/interface/web/sites/lib/lang/el_web_domain.lng index e13af5060e80c432f32623dbd92dc8de3d186e01..6cdc3d7c5604eabbf36bfaa6f640bb8d4d0e428a 100644 --- a/interface/web/sites/lib/lang/el_web_domain.lng +++ b/interface/web/sites/lib/lang/el_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/el_web_folder_user.lng b/interface/web/sites/lib/lang/el_web_folder_user.lng index 0435d233af5dcf3bcab949dc3985a36d130d72ff..6835eaaaf140149538e4b2c6335b2c64b324b73a 100644 --- a/interface/web/sites/lib/lang/el_web_folder_user.lng +++ b/interface/web/sites/lib/lang/el_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/en_database_admin_list.lng b/interface/web/sites/lib/lang/en_database_admin_list.lng index 5d0ad7a83a4d9c1c3463f619ceedea6c087de691..e68d9935f37eb80920ce13b0d95915d47ed1b1ff 100644 --- a/interface/web/sites/lib/lang/en_database_admin_list.lng +++ b/interface/web/sites/lib/lang/en_database_admin_list.lng @@ -8,4 +8,5 @@ $wb["database_user_txt"] = 'Database user'; $wb["database_name_txt"] = 'Database name'; $wb["add_new_record_txt"] = 'Add new Database'; $wb["sys_groupid_txt"] = 'Client'; +$wb["parent_domain_id_txt"] = 'Website'; ?> diff --git a/interface/web/sites/lib/lang/en_database_list.lng b/interface/web/sites/lib/lang/en_database_list.lng index 0a8d6ff87e2ac4d3088bad160941b1b66ef0d1a2..13bb3040334b3df973e9932d92f91c8703b232e6 100644 --- a/interface/web/sites/lib/lang/en_database_list.lng +++ b/interface/web/sites/lib/lang/en_database_list.lng @@ -7,4 +7,5 @@ $wb["server_id_txt"] = 'Server'; $wb["database_user_txt"] = 'Database user'; $wb["database_name_txt"] = 'Database name'; $wb["add_new_record_txt"] = 'Add new Database'; -?> +$wb["parent_domain_id_txt"] = 'Website'; +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng index f48953f4b759d284e2afc950ff169b373f0d2ca2..6f5647b344599cb90cb709f7c23f071ca834d192 100644 --- a/interface/web/sites/lib/lang/en_web_domain.lng +++ b/interface/web/sites/lib/lang/en_web_domain.lng @@ -119,4 +119,5 @@ $wb['monthly_backup_txt'] = 'Monthly'; $wb['rewrite_rules_txt'] = 'Rewrite Rules'; $wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; $wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; +$wb['configuration_error_txt'] = "CONFIGURATION ERROR"; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_web_folder_user.lng b/interface/web/sites/lib/lang/en_web_folder_user.lng index 4d46ec819a623f25c31b7c11bf7ee375ac3deaf3..63c18567f89e5ab5fa18ab199c56798c95ffab57 100644 --- a/interface/web/sites/lib/lang/en_web_folder_user.lng +++ b/interface/web/sites/lib/lang/en_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb["no_folder_perm"] = 'You have no permission for this folder.'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/es_shell_user.lng b/interface/web/sites/lib/lang/es_shell_user.lng index 2ca9c558406f4bb35c2889305ce754ad883cfff1..45fd930e21cf996b70f728212a24588911b375a7 100644 --- a/interface/web/sites/lib/lang/es_shell_user.lng +++ b/interface/web/sites/lib/lang/es_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/es_web_domain.lng b/interface/web/sites/lib/lang/es_web_domain.lng index db0a0b6bf7879323ea8ada02483b65b91f7ede69..b3f466018e8823a883041e79b982a4fb8c3c7e53 100644 --- a/interface/web/sites/lib/lang/es_web_domain.lng +++ b/interface/web/sites/lib/lang/es_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/es_web_folder_user.lng b/interface/web/sites/lib/lang/es_web_folder_user.lng index 645fe3ab3b87c1cf7d92029a9c84027dc8de62dd..f3468c9474ac29e76654394220dd8e1eb10dd5ff 100644 --- a/interface/web/sites/lib/lang/es_web_folder_user.lng +++ b/interface/web/sites/lib/lang/es_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/fi_shell_user.lng b/interface/web/sites/lib/lang/fi_shell_user.lng index 423939d9882c9272457e6fe38b8ceef6c062e32a..06fe1bd7e1df8619e45f5151f1131889f72fb6bd 100755 --- a/interface/web/sites/lib/lang/fi_shell_user.lng +++ b/interface/web/sites/lib/lang/fi_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_domain.lng b/interface/web/sites/lib/lang/fi_web_domain.lng index 7c31eeb544c69c2d2c23b3cba5696ea03c02a8b6..1c4055aa1d25ca25a02ff9fc70668f765ab98d70 100755 --- a/interface/web/sites/lib/lang/fi_web_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_folder_user.lng b/interface/web/sites/lib/lang/fi_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/fi_web_folder_user.lng +++ b/interface/web/sites/lib/lang/fi_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/fr_shell_user.lng b/interface/web/sites/lib/lang/fr_shell_user.lng index 3af188c5e9bdb3abef6607008c85d66caf2044e5..1fbc93cc9020d1d57421d1dce5b97438e20a4d05 100644 --- a/interface/web/sites/lib/lang/fr_shell_user.lng +++ b/interface/web/sites/lib/lang/fr_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_domain.lng b/interface/web/sites/lib/lang/fr_web_domain.lng index d0029908dccbadafe92e0298f5b8dc8b3047b254..d96e6ad75f64da3073fb48b34b63b815dd68ab8d 100644 --- a/interface/web/sites/lib/lang/fr_web_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_folder_user.lng b/interface/web/sites/lib/lang/fr_web_folder_user.lng index df2f802b00ed897fec8e89fea12afbab9f3bab5c..444814c6d9592a55618be11460b35a8499924c46 100644 --- a/interface/web/sites/lib/lang/fr_web_folder_user.lng +++ b/interface/web/sites/lib/lang/fr_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/hr_shell_user.lng b/interface/web/sites/lib/lang/hr_shell_user.lng index b38dde9ca514f9b49866b8348722af7d10772cc3..4173787259f4bdee9c10fd527695df96139e7e8b 100644 --- a/interface/web/sites/lib/lang/hr_shell_user.lng +++ b/interface/web/sites/lib/lang/hr_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_domain.lng b/interface/web/sites/lib/lang/hr_web_domain.lng index 37bed82f70f0c255287f994cfedcfb357117d2a0..8c47934df7809144e4e7d94c1696dcc7a0c96dd9 100644 --- a/interface/web/sites/lib/lang/hr_web_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_folder_user.lng b/interface/web/sites/lib/lang/hr_web_folder_user.lng index b81caa5d57a45f5d0713ce6a6906102ed4128796..8ebc859e764de370ec27e467c90f8c2e8cdf6e78 100644 --- a/interface/web/sites/lib/lang/hr_web_folder_user.lng +++ b/interface/web/sites/lib/lang/hr_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/hu_shell_user.lng b/interface/web/sites/lib/lang/hu_shell_user.lng index 3191cc878e0b2b8ab074bb444eb37b0a42016bc1..849f380f8ce676d3681b615a8aa583483b5101fa 100644 --- a/interface/web/sites/lib/lang/hu_shell_user.lng +++ b/interface/web/sites/lib/lang/hu_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_domain.lng b/interface/web/sites/lib/lang/hu_web_domain.lng index 2bf0127a58d84ffe086b7db15cf9b73eaed85257..0060787254dd79c0963ed2619cccda8a94d11896 100644 --- a/interface/web/sites/lib/lang/hu_web_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_folder_user.lng b/interface/web/sites/lib/lang/hu_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/hu_web_folder_user.lng +++ b/interface/web/sites/lib/lang/hu_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/id_shell_user.lng b/interface/web/sites/lib/lang/id_shell_user.lng index f36c057b8ca0d9c32715a180562e69f8bc937533..0ec09ccf775e33225c2db98510b30a873cfc6ae7 100644 --- a/interface/web/sites/lib/lang/id_shell_user.lng +++ b/interface/web/sites/lib/lang/id_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/id_web_domain.lng b/interface/web/sites/lib/lang/id_web_domain.lng index 6c464398f5865c4cdcd813f6b17dd674186ba209..5bcfb28baa2522a28f2ac4c87a11acf873e3bdea 100644 --- a/interface/web/sites/lib/lang/id_web_domain.lng +++ b/interface/web/sites/lib/lang/id_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/id_web_folder_user.lng b/interface/web/sites/lib/lang/id_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/id_web_folder_user.lng +++ b/interface/web/sites/lib/lang/id_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/it_shell_user.lng b/interface/web/sites/lib/lang/it_shell_user.lng index 4f59994710c995909338d7fc525e4f410450a077..8460d4e7ae75b9316c39ebd272a0b1cc43b12fb2 100644 --- a/interface/web/sites/lib/lang/it_shell_user.lng +++ b/interface/web/sites/lib/lang/it_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/it_web_domain.lng b/interface/web/sites/lib/lang/it_web_domain.lng index 084b4acf22c7919ca21e56f7736e117309590392..d605e88dfb209d7f821bd31bd8cf36cd79ca5924 100644 --- a/interface/web/sites/lib/lang/it_web_domain.lng +++ b/interface/web/sites/lib/lang/it_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/it_web_folder_user.lng b/interface/web/sites/lib/lang/it_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/it_web_folder_user.lng +++ b/interface/web/sites/lib/lang/it_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/ja_shell_user.lng b/interface/web/sites/lib/lang/ja_shell_user.lng index 04c7a782712bc634a69f1e11a0ad1d911d2749a6..19f09a5cb26357a9a1d79fd0e7886c85f45a582d 100644 --- a/interface/web/sites/lib/lang/ja_shell_user.lng +++ b/interface/web/sites/lib/lang/ja_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_domain.lng b/interface/web/sites/lib/lang/ja_web_domain.lng index 43162ef3d7f8839f5850f707b89704dac0323317..a6dbbf6dcc342ef0eb345c88526ba7dab9064770 100644 --- a/interface/web/sites/lib/lang/ja_web_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_folder_user.lng b/interface/web/sites/lib/lang/ja_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/ja_web_folder_user.lng +++ b/interface/web/sites/lib/lang/ja_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/nl_shell_user.lng b/interface/web/sites/lib/lang/nl_shell_user.lng index bfd9635a73d622575b4412bff2eab5e449ac05e5..53fed2070e6fc82f393fd455d65d7bc011168f41 100644 --- a/interface/web/sites/lib/lang/nl_shell_user.lng +++ b/interface/web/sites/lib/lang/nl_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_domain.lng b/interface/web/sites/lib/lang/nl_web_domain.lng index 785471dce559d77d059fa2b4bbaec72b792fc7c7..e2bb5cbeab544e9135cecb522d594469cb5bbfd0 100644 --- a/interface/web/sites/lib/lang/nl_web_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_folder_user.lng b/interface/web/sites/lib/lang/nl_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/nl_web_folder_user.lng +++ b/interface/web/sites/lib/lang/nl_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/pl_shell_user.lng b/interface/web/sites/lib/lang/pl_shell_user.lng index 5259aeb2be3cb94bb7192ffb8f86344038c7f636..e51ef644a740f751403c5e6898fac71be1d75a57 100644 --- a/interface/web/sites/lib/lang/pl_shell_user.lng +++ b/interface/web/sites/lib/lang/pl_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generuj hasło'; $wb['repeat_password_txt'] = 'Powtórz hasło'; $wb['password_mismatch_txt'] = 'Hasła nie pasują do siebie'; $wb['password_match_txt'] = 'Hasła pasują'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_domain.lng b/interface/web/sites/lib/lang/pl_web_domain.lng index 4cac25f0bbf775aae4272ac6947d58f15399fc90..c08113e9e639fd9bdaa22f0fd601b4ae1fc0f698 100644 --- a/interface/web/sites/lib/lang/pl_web_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Dostępne zestawy dyrektyw ngin $wb['proxy_directives_txt'] = 'Dyrektywy Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Dostępne zestawy dyrektyw Proxy:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_folder_user.lng b/interface/web/sites/lib/lang/pl_web_folder_user.lng index 1975ae581dd3553b5ef2dce0317a4e4328149aaa..25f7de44ca72f1562cfee582aa22d1db922bb00d 100644 --- a/interface/web/sites/lib/lang/pl_web_folder_user.lng +++ b/interface/web/sites/lib/lang/pl_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generuj hasło'; $wb['repeat_password_txt'] = 'Powtórz hasło'; $wb['password_mismatch_txt'] = 'Hasła nie pasują do siebie'; $wb['password_match_txt'] = 'Hasła pasują'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/pt_shell_user.lng b/interface/web/sites/lib/lang/pt_shell_user.lng index 821e5cb53ee393a1e9d5bc85b4cd7197559c2025..5e346483e82128e9f238ef3f243e96e6e0e8861e 100644 --- a/interface/web/sites/lib/lang/pt_shell_user.lng +++ b/interface/web/sites/lib/lang/pt_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_domain.lng b/interface/web/sites/lib/lang/pt_web_domain.lng index e3acc8a29a2647c50b596fca658e0e7071667394..787e1c71dabae7e4db005a5dce8246c9e6ea1877 100644 --- a/interface/web/sites/lib/lang/pt_web_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_folder_user.lng b/interface/web/sites/lib/lang/pt_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/pt_web_folder_user.lng +++ b/interface/web/sites/lib/lang/pt_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/ro_shell_user.lng b/interface/web/sites/lib/lang/ro_shell_user.lng index 1eea93f5f9c07312d7eb6849dffa1fb6f366fbfb..d4620af9e4cecbd244b1c8c0be86f3da88f9fb7f 100644 --- a/interface/web/sites/lib/lang/ro_shell_user.lng +++ b/interface/web/sites/lib/lang/ro_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_domain.lng b/interface/web/sites/lib/lang/ro_web_domain.lng index d100895fae59136bc975a926d636802086eb1243..31e0112ee67d2f691887f5e0f1ca5fe58bc79097 100644 --- a/interface/web/sites/lib/lang/ro_web_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_folder_user.lng b/interface/web/sites/lib/lang/ro_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/ro_web_folder_user.lng +++ b/interface/web/sites/lib/lang/ro_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/ru_shell_user.lng b/interface/web/sites/lib/lang/ru_shell_user.lng index 6723395d76bd141504ee83391ed27eaa17ee4e2f..d87f544e111e2f37c2165d179bdc25b7490e34aa 100644 --- a/interface/web/sites/lib/lang/ru_shell_user.lng +++ b/interface/web/sites/lib/lang/ru_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_domain.lng b/interface/web/sites/lib/lang/ru_web_domain.lng index 46f377f9421c86fd920fe9aaf96946c588c5bdb8..5f6aafdc3356b9a54ddcf5262afa0c6956638837 100644 --- a/interface/web/sites/lib/lang/ru_web_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_folder_user.lng b/interface/web/sites/lib/lang/ru_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/ru_web_folder_user.lng +++ b/interface/web/sites/lib/lang/ru_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/se_shell_user.lng b/interface/web/sites/lib/lang/se_shell_user.lng index 4f59994710c995909338d7fc525e4f410450a077..8460d4e7ae75b9316c39ebd272a0b1cc43b12fb2 100644 --- a/interface/web/sites/lib/lang/se_shell_user.lng +++ b/interface/web/sites/lib/lang/se_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/se_web_domain.lng b/interface/web/sites/lib/lang/se_web_domain.lng index a44eee857b1283b0d97a423f7b6e773fefd07e82..3e309ed5d16750ce4da0afeebfa7d2922e7716ea 100644 --- a/interface/web/sites/lib/lang/se_web_domain.lng +++ b/interface/web/sites/lib/lang/se_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/se_web_folder_user.lng b/interface/web/sites/lib/lang/se_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/se_web_folder_user.lng +++ b/interface/web/sites/lib/lang/se_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/sk_shell_user.lng b/interface/web/sites/lib/lang/sk_shell_user.lng index fc054290406dac406f0eb3d5ba46006d1b065cca..79f9eac87e3b5d46d8d76fc90c1d6417046fc973 100644 --- a/interface/web/sites/lib/lang/sk_shell_user.lng +++ b/interface/web/sites/lib/lang/sk_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_domain.lng b/interface/web/sites/lib/lang/sk_web_domain.lng index b127ec23b0bbed75842b314b7288fd0a85b26ee5..952216fe80ca17f7cbc03f3b53f88eac4c3017e7 100644 --- a/interface/web/sites/lib/lang/sk_web_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_domain.lng @@ -112,4 +112,11 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_folder_user.lng b/interface/web/sites/lib/lang/sk_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/sk_web_folder_user.lng +++ b/interface/web/sites/lib/lang/sk_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/lib/lang/tr_shell_user.lng b/interface/web/sites/lib/lang/tr_shell_user.lng index 17a5ff0607c8eb2d3b2eba67c3aa2bfc5fe32e2e..ac45063f0a83ef39160081b45160ee6ee8f66105 100644 --- a/interface/web/sites/lib/lang/tr_shell_user.lng +++ b/interface/web/sites/lib/lang/tr_shell_user.lng @@ -26,4 +26,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; +$wb['username_not_allowed_txt'] = 'The username is not allowed.'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_domain.lng b/interface/web/sites/lib/lang/tr_web_domain.lng index 814f600c8b5175a0e7482563e550e647f9b53a91..23a5374b0aa07a351891f21d57e4a782887d287b 100644 --- a/interface/web/sites/lib/lang/tr_web_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_domain.lng @@ -111,4 +111,12 @@ $wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Sni $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +$wb['no_server_error'] = 'No server selected.'; +$wb['no_backup_txt'] = 'No backup'; +$wb['daily_backup_txt'] = 'Daily'; +$wb['weekly_backup_txt'] = 'Weekly'; +$wb['monthly_backup_txt'] = 'Monthly'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_folder_user.lng b/interface/web/sites/lib/lang/tr_web_folder_user.lng index bf56653969aee4385c39bcadbc710aff2ffafcd8..3534ea7f2336fe757b1965d85975af444bfbedaf 100644 --- a/interface/web/sites/lib/lang/tr_web_folder_user.lng +++ b/interface/web/sites/lib/lang/tr_web_folder_user.lng @@ -9,4 +9,5 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['no_folder_perm'] = 'You have no permission for this folder.'; ?> diff --git a/interface/web/sites/list/database.list.php b/interface/web/sites/list/database.list.php index f512bef31d680e092eccea82cbd366bf0caf8f9d..76dbec54fdd89b612d214048b6371539b351c0a0 100644 --- a/interface/web/sites/list/database.list.php +++ b/interface/web/sites/list/database.list.php @@ -112,6 +112,23 @@ $liste["item"][] = array( 'field' => "server_id", ), 'width' => "", 'value' => ""); + +$liste["item"][] = array( 'field' => "parent_domain_id", + 'datatype' => "VARCHAR", + 'filters' => array( 0 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8') + ), + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", + 'keyfield'=> 'domain_id', + 'valuefield'=> 'domain' + ), + 'width' => "", + 'value' => ""); $liste["item"][] = array( 'field' => "database_user_id", 'datatype' => "INTEGER", diff --git a/interface/web/sites/shell_user_edit.php b/interface/web/sites/shell_user_edit.php index b14963a307ef049706fa2e2edf092dd788c7c2de..a18dd8e555e1a37b8c1f7e635d52cfca9b42625c 100644 --- a/interface/web/sites/shell_user_edit.php +++ b/interface/web/sites/shell_user_edit.php @@ -99,7 +99,17 @@ class page_action extends tform_actions { global $app, $conf; // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"])); + //$parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + //if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); + if(isset($this->dataRecord["parent_domain_id"])) { + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); + } else { + $tmp = $app->tform->getDataRecord($this->id); + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval($tmp["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); + unset($tmp); + } // Set a few fixed values $this->dataRecord["server_id"] = $parent_domain["server_id"]; diff --git a/interface/web/sites/templates/database_admin_list.htm b/interface/web/sites/templates/database_admin_list.htm index 2f967384fde2c658f8b27c09bcac0aca6e476f6d..e4aefdbd87087fba92585ff59f2cfcd0b27729f5 100644 --- a/interface/web/sites/templates/database_admin_list.htm +++ b/interface/web/sites/templates/database_admin_list.htm @@ -22,6 +22,7 @@
    + @@ -32,6 +33,7 @@ + + + @@ -47,6 +48,7 @@ + +
    {tmpl_var name='search_limit'} @@ -47,6 +49,7 @@ {tmpl_var name="type"} {tmpl_var name="sys_groupid"} {tmpl_var name="server_id"}{tmpl_var name="parent_domain_id"} {tmpl_var name="database_user_id"} {tmpl_var name="database_name"} diff --git a/interface/web/sites/templates/database_list.htm b/interface/web/sites/templates/database_list.htm index 888f3ba13e0ce8742e3b42d5ae57e350a9518147..15a8ae77cf4f8359f145a3d128e3a890849a8604 100644 --- a/interface/web/sites/templates/database_list.htm +++ b/interface/web/sites/templates/database_list.htm @@ -38,6 +38,7 @@ {tmpl_var name='search_limit'} @@ -61,6 +63,7 @@ {tmpl_var name="remote_access"} {tmpl_var name="type"} {tmpl_var name="server_id"}{tmpl_var name="parent_domain_id"} {tmpl_var name="database_user_id"} {tmpl_var name="database_name"} diff --git a/interface/web/sites/templates/web_domain_advanced.htm b/interface/web/sites/templates/web_domain_advanced.htm index 5df608add91fe05c4f4470325d4bc27f0f310099..2f5136ebe80ea8c83b6ae3b7ef2d07f524eb878c 100644 --- a/interface/web/sites/templates/web_domain_advanced.htm +++ b/interface/web/sites/templates/web_domain_advanced.htm @@ -1,6 +1,15 @@

    + +
    +

    {tmpl_var name='configuration_error_txt'}

    +
    +
    {tmpl_var name='config_error_tstamp'} : 
    {tmpl_var name='config_error_msg'}
    +
    +
    +
    +
    diff --git a/interface/web/sites/templates/web_domain_backup.htm b/interface/web/sites/templates/web_domain_backup.htm index 3c78fe73de2fcf8bb3e9c83ea5c9cb265855c85d..cfe43379f5239f431b6dc508d1dfa7fb52d6e538 100644 --- a/interface/web/sites/templates/web_domain_backup.htm +++ b/interface/web/sites/templates/web_domain_backup.htm @@ -1,6 +1,15 @@

    + +
    +

    {tmpl_var name='configuration_error_txt'}

    +
    +
    {tmpl_var name='config_error_tstamp'} : 
    {tmpl_var name='config_error_msg'}
    +
    +
    +
    +
    diff --git a/interface/web/sites/templates/web_domain_edit.htm b/interface/web/sites/templates/web_domain_edit.htm index 9a1062387af3a02aca38bb7bd25143e0856dfd1b..d12c3a36c2f70a2fbb238345a03ae95046793188 100644 --- a/interface/web/sites/templates/web_domain_edit.htm +++ b/interface/web/sites/templates/web_domain_edit.htm @@ -1,6 +1,15 @@

    + +
    +

    {tmpl_var name='configuration_error_txt'}

    +
    +
    {tmpl_var name='config_error_tstamp'} : 
    {tmpl_var name='config_error_msg'}
    +
    +
    +
    +
    @@ -172,6 +181,7 @@ jQuery('#client_group_id').change(function(){ clientGroupId = $(this).val(); reloadWebIP(); + reloadFastcgiPHPVersions(); }); if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm'){ @@ -225,7 +235,7 @@ } function reloadFastcgiPHPVersions(noFormChange) { - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi"}, function(data) { + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi", client_group_id : clientGroupId}, function(data) { var options = ''; var phpfastcgiselected = ''; $.each(data, function(key, val) { diff --git a/interface/web/sites/templates/web_domain_redirect.htm b/interface/web/sites/templates/web_domain_redirect.htm index faff04441cd0e7681ea6d68362237b0cdafea953..c0bd977e25bcf9024e5d9489e4ff9a677f6f0089 100644 --- a/interface/web/sites/templates/web_domain_redirect.htm +++ b/interface/web/sites/templates/web_domain_redirect.htm @@ -1,6 +1,15 @@

    + +
    +

    {tmpl_var name='configuration_error_txt'}

    +
    +
    {tmpl_var name='config_error_tstamp'} : 
    {tmpl_var name='config_error_msg'}
    +
    +
    +
    +
    @@ -23,7 +32,7 @@
    -  {tmpl_var name="allowed_rewrite_rule_directives_txt"}

     break
     if
     return
     rewrite
     set +  {tmpl_var name="allowed_rewrite_rule_directives_txt"}

     break
     if
     return
     rewrite
     set

     http://wiki.nginx.org/HttpRewriteModule
    diff --git a/interface/web/sites/templates/web_domain_ssl.htm b/interface/web/sites/templates/web_domain_ssl.htm index 832d623f616f2bae612092726f25dcbfdc02ec15..50d95d35069148a2504873ac0e945cb2d6b5d138 100644 --- a/interface/web/sites/templates/web_domain_ssl.htm +++ b/interface/web/sites/templates/web_domain_ssl.htm @@ -1,6 +1,15 @@

    + +
    +

    {tmpl_var name='configuration_error_txt'}

    +
    +
    {tmpl_var name='config_error_tstamp'} : 
    {tmpl_var name='config_error_msg'}
    +
    +
    +
    +
    diff --git a/interface/web/sites/templates/web_domain_stats.htm b/interface/web/sites/templates/web_domain_stats.htm index f497f1bb993fe17aa5c7619fc58c511b3f371056..769e088f8ac50d1cf6f54cb800ebafffab61d39f 100644 --- a/interface/web/sites/templates/web_domain_stats.htm +++ b/interface/web/sites/templates/web_domain_stats.htm @@ -1,6 +1,15 @@

    + +
    +

    {tmpl_var name='configuration_error_txt'}

    +
    +
    {tmpl_var name='config_error_tstamp'} : 
    {tmpl_var name='config_error_msg'}
    +
    +
    +
    +
    diff --git a/interface/web/sites/web_aliasdomain_edit.php b/interface/web/sites/web_aliasdomain_edit.php index 150cb36a4468184f951f0b27ae64f4082d505edb..1d05a5e8ff9ec76c5fcb99d4e56f2980ca10ee15 100644 --- a/interface/web/sites/web_aliasdomain_edit.php +++ b/interface/web/sites/web_aliasdomain_edit.php @@ -143,7 +143,8 @@ class page_action extends tform_actions { } // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"])); + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); // Set a few fixed values $this->dataRecord["type"] = 'alias'; diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index 5c0ec9a2d9c8fe6fe0f57ece8e9d3ec828a7d99d..062529fda339b15d151f38d882a795c15cabf18b 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -188,8 +188,11 @@ class page_action extends tform_actions { $client_select = ''; //$tmp_data_record = $app->tform->getDataRecord($this->id); if(is_array($records)) { + $selected_client_group_id = 0; // needed to get list of PHP versions foreach( $records as $rec) { + if(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']) && !$selected_client_group_id) $selected_client_group_id = $rec["groupid"]; $selected = @(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':''; + if($selected == 'SELECTED') $selected_client_group_id = $rec["groupid"]; $client_select .= "\r\n"; } } @@ -229,11 +232,14 @@ class page_action extends tform_actions { $server_type = 'apache'; if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm'; + $selected_client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = $selected_client_group_id"); + //$sql_where = " AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id']." OR client_id = ".intval($selected_client['client_id']).")"; + $sql_where = " AND (client_id = 0 OR client_id = ".intval($selected_client['client_id']).")"; if($this->dataRecord['php'] == 'php-fpm'){ - $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".($this->id > 0 ? $this->dataRecord['server_id'] : intval($client['default_webserver']))." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"); + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".($this->id > 0 ? $this->dataRecord['server_id'] : intval($client['default_webserver'])).$sql_where); } if($this->dataRecord['php'] == 'fast-cgi') { - $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".($this->id > 0 ? $this->dataRecord['server_id'] : intval($client['default_webserver']))." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"); + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".($this->id > 0 ? $this->dataRecord['server_id'] : intval($client['default_webserver'])).$sql_where); } $php_select = ""; if(is_array($php_records) && !empty($php_records)) { @@ -350,16 +356,36 @@ class page_action extends tform_actions { $app->tpl->setVar("ipv6_address",$ip_select); unset($tmp); unset($ips); + + // Fill the client select field + $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY sys_group.name"; + $clients = $app->db->queryAllRecords($sql); + $client_select = ""; + //$tmp_data_record = $app->tform->getDataRecord($this->id); + if(is_array($clients)) { + $selected_client_group_id = 0; // needed to get list of PHP versions + foreach($clients as $client) { + if(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']) && !$selected_client_group_id) $selected_client_group_id = $client["groupid"]; + //$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; + $selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':''; + if($selected == 'SELECTED') $selected_client_group_id = $client["groupid"]; + $client_select .= "\r\n"; + } + } + $app->tpl->setVar("client_group_id",$client_select); //PHP Version Selection (FastCGI) $server_type = 'apache'; if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm'; + $selected_client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = $selected_client_group_id"); + //$sql_where = " AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id']." OR client_id = ".intval($selected_client['client_id']).")"; + $sql_where = " AND (client_id = 0 OR client_id = ".intval($selected_client['client_id']).")"; if($this->dataRecord['php'] == 'php-fpm'){ - $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = $server_id"); + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = $server_id".$sql_where); } if($this->dataRecord['php'] == 'fast-cgi') { - $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = $server_id"); + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = $server_id".$sql_where); } $php_select = ""; if(is_array($php_records) && !empty($php_records)) { @@ -375,20 +401,6 @@ class page_action extends tform_actions { } $app->tpl->setVar("fastcgi_php_version",$php_select); unset($php_records); - - // Fill the client select field - $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY sys_group.name"; - $clients = $app->db->queryAllRecords($sql); - $client_select = ""; - //$tmp_data_record = $app->tform->getDataRecord($this->id); - if(is_array($clients)) { - foreach( $clients as $client) { - //$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; - $selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':''; - $client_select .= "\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); foreach($read_limits as $limit) $app->tpl->setVar($limit, ($limit == 'force_suexec' ? 'n' : 'y')); @@ -494,6 +506,17 @@ class page_action extends tform_actions { } $app->tpl->setVar("domain_option",$domain_select); } + + // check for configuration errors in sys_datalog + if($this->id > 0) { + $datalog = $app->db->queryOneRecord("SELECT sys_datalog.error, sys_log.tstamp FROM sys_datalog, sys_log WHERE sys_datalog.dbtable = 'web_domain' AND sys_datalog.dbidx = 'domain_id:".$this->id."' AND sys_datalog.datalog_id = sys_log.datalog_id AND sys_log.message = CONCAT('Processed datalog_id ',sys_log.datalog_id) ORDER BY sys_datalog.tstamp DESC"); + if(is_array($datalog) && !empty($datalog)){ + if(trim($datalog['error']) != ''){ + $app->tpl->setVar("config_error_msg",nl2br(htmlentities($datalog['error']))); + $app->tpl->setVar("config_error_tstamp",date($app->lng('conf_format_datetime'), $datalog['tstamp'])); + } + } + } parent::onShowEnd(); } @@ -700,6 +723,10 @@ class page_action extends tform_actions { $rewrite_rule_lines = explode("\n", $rewrite_rules); if(is_array($rewrite_rule_lines) && !empty($rewrite_rule_lines)){ foreach($rewrite_rule_lines as $rewrite_rule_line){ + // ignore comments + if(substr(ltrim($rewrite_rule_line),0,1) == '#') continue; + // empty lines + if(trim($rewrite_rule_line) == '') continue; // rewrite if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue; // if @@ -714,7 +741,6 @@ class page_action extends tform_actions { } // break if(preg_match('@^\s*break\s*;\s*$@', $rewrite_rule_line)){ - $if_level += 1; continue; } // return code [ text ] @@ -1001,7 +1027,16 @@ class page_action extends tform_actions { unset($backup_copies); unset($backup_interval); } - + + //* Change vhost subdomain ip/ipv6 if domain ip/ipv6 has changed + if(isset($this->dataRecord['ip_address']) && ($this->dataRecord['ip_address'] != $this->oldDataRecord['ip_address'] || $this->dataRecord['ipv6_address'] != $this->oldDataRecord['ipv6_address'])) { + $records = $app->db->queryAllRecords("SELECT domain_id FROM web_domain WHERE type = 'vhostsubdomain' AND parent_domain_id = ".$this->id); + foreach($records as $rec) { + $app->db->datalogUpdate('web_domain', "ip_address = '".$web_rec['ip_address']."', ipv6_address = '".$web_rec['ipv6_address']."'", 'domain_id', $rec['domain_id']); + } + unset($records); + unset($rec); + } } function onAfterDelete() { diff --git a/interface/web/sites/web_folder_edit.php b/interface/web/sites/web_folder_edit.php index 178c2af695fef9330811b83dcaf0c01c15bed473..2f888a12a2ce9c143e69fbae2228943822a978eb 100644 --- a/interface/web/sites/web_folder_edit.php +++ b/interface/web/sites/web_folder_edit.php @@ -55,7 +55,8 @@ class page_action extends tform_actions { global $app, $conf; // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select server_id FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"])); + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); // Set a few fixed values $this->dataRecord["server_id"] = $parent_domain["server_id"]; diff --git a/interface/web/sites/web_folder_user_edit.php b/interface/web/sites/web_folder_user_edit.php index 95a8864499f0444e59e6dd868247d9f0241812e6..c67e8230cff5a0dc47cc737a7f077877d03be21f 100644 --- a/interface/web/sites/web_folder_user_edit.php +++ b/interface/web/sites/web_folder_user_edit.php @@ -55,7 +55,8 @@ class page_action extends tform_actions { global $app, $conf; // Get the record of the parent domain - $folder = $app->db->queryOneRecord("select server_id FROM web_folder WHERE web_folder_id = ".$app->functions->intval(@$this->dataRecord["web_folder_id"])); + $folder = $app->db->queryOneRecord("select * FROM web_folder WHERE web_folder_id = ".$app->functions->intval(@$this->dataRecord["web_folder_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$folder || $folder['web_folder_id'] != @$this->dataRecord['web_folder_id']) $app->tform->errorMessage .= $app->tform->lng("no_folder_perm"); // Set a few fixed values $this->dataRecord["server_id"] = $folder["server_id"]; diff --git a/interface/web/sites/web_subdomain_edit.php b/interface/web/sites/web_subdomain_edit.php index ae9ee074e784531284cf0033892e6131ff6beed8..3475ed5c0ad7698433f5c879c1cf23b2f2f23c4d 100644 --- a/interface/web/sites/web_subdomain_edit.php +++ b/interface/web/sites/web_subdomain_edit.php @@ -132,7 +132,8 @@ class page_action extends tform_actions { global $app, $conf; // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"])); + $parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); $app->uses('ini_parser,getconf'); $settings = $app->getconf->get_global_config('domains'); diff --git a/interface/web/sites/web_vhost_subdomain_edit.php b/interface/web/sites/web_vhost_subdomain_edit.php index 656a7dd3d122dc8286d559c9465d06b921b4d8f6..97e84f4f59767bd9fc107025cee249b8548d6a27 100644 --- a/interface/web/sites/web_vhost_subdomain_edit.php +++ b/interface/web/sites/web_vhost_subdomain_edit.php @@ -368,7 +368,8 @@ class page_action extends tform_actions { unset($tmp); } - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"])); + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); // Set a few fixed values $this->dataRecord["type"] = 'vhostsubdomain'; diff --git a/interface/web/sites/webdav_user_edit.php b/interface/web/sites/webdav_user_edit.php index c6eaaf99410989283ee587d4b0089ba1947d7cfe..377b00eb0abafa48a96100e7957b7f12d438b31f 100644 --- a/interface/web/sites/webdav_user_edit.php +++ b/interface/web/sites/webdav_user_edit.php @@ -98,7 +98,8 @@ class page_action extends tform_actions { global $app, $conf; /* Get the record of the parent domain */ - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"])); + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); /* * Set a few fixed values diff --git a/remoting_client/examples/client_add.php b/remoting_client/examples/client_add.php index 25412ec0ae3f3dc146c1172376435cd8022dacf3..95faffda2d633005203395fa47f58a1686e1ee2d 100644 --- a/remoting_client/examples/client_add.php +++ b/remoting_client/examples/client_add.php @@ -25,7 +25,7 @@ try { 'zip' => '21337', 'city' => 'london', 'state' => 'bavaria', - 'country' => 'UK', + 'country' => 'GB', 'telephone' => '123456789', 'mobile' => '987654321', 'fax' => '546718293', diff --git a/remoting_client/examples/client_update.php b/remoting_client/examples/client_update.php index 82f879703daafbd3a6a08a2071657514de431875..e884378434e0e88bb4fc1e832a8e91ec4ef4d068 100644 --- a/remoting_client/examples/client_update.php +++ b/remoting_client/examples/client_update.php @@ -16,17 +16,20 @@ try { //* Parameters $reseller_id = 1; - $c_id = 1; + $client_id = 1; //* Get the client record - $client_record = $client->client_get($session_id, $reseller_id); + $client_record = $client->client_get($session_id, $client_id); //* Change parameters $client_record['country'] = 'de'; $client_record['username'] = 'mguy'; $client_record['contact_name'] = 'brush'; + //* We set the client password to a empty string as we do not want to change it. + $client_record['password'] = ''; + $affected_rows = $client->client_update($session_id, $c_id, $reseller_id, $client_record); echo "Number of records that have been changed in the database: ".$affected_rows."
    "; diff --git a/server/cron_daily.php b/server/cron_daily.php index 21d8f84f0bce075b2108d59afe30816fe7910eb4..029c4f30fb2b020227dc0b7ec1348937bf7321d8 100644 --- a/server/cron_daily.php +++ b/server/cron_daily.php @@ -33,6 +33,7 @@ require(SCRIPT_PATH."/lib/config.inc.php"); require(SCRIPT_PATH."/lib/app.inc.php"); set_time_limit(0); +ini_set('error_reporting', E_ALL & ~E_NOTICE); // make sure server_id is always an int $conf['server_id'] = intval($conf['server_id']); @@ -742,10 +743,10 @@ if ($app->dbmaster == $app->db) { //* Send traffic notifications if($rec['traffic_quota_lock'] != 'y' && ($web_config['overtraffic_notify_admin'] == 'y' || $web_config['overtraffic_notify_client'] == 'y')) { - + $placeholders = array('{domain}' => $rec['domain'], - '{admin_mail}' => $global_config['admin_mail']); - + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root')); + $recipients = array(); //* send email to admin if($global_config['admin_mail'] != '' && $web_config['overtraffic_notify_admin'] == 'y') { @@ -860,7 +861,7 @@ if ($app->dbmaster == $app->db) { // send notification - everything ok again if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_client'] == 'y')) { $placeholders = array('{domain}' => $rec['domain'], - '{admin_mail}' => $global_config['admin_mail'], + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), '{used}' => $rec['used'], '{soft}' => $rec['soft'], '{hard}' => $rec['hard'], @@ -897,7 +898,7 @@ if ($app->dbmaster == $app->db) { $app->dbmaster->datalogUpdate('web_domain', "last_quota_notification = CURDATE()", 'domain_id', $rec['domain_id']); $placeholders = array('{domain}' => $rec['domain'], - '{admin_mail}' => $global_config['admin_mail'], + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), '{used}' => $rec['used'], '{soft}' => $rec['soft'], '{hard}' => $rec['hard'], @@ -990,7 +991,7 @@ if ($app->dbmaster == $app->db) { // send notification - everything ok again if($rec['last_quota_notification'] && $mail_config['overquota_notify_onok'] == 'y' && ($mail_config['overquota_notify_admin'] == 'y' || $mail_config['overquota_notify_client'] == 'y')) { $placeholders = array('{email}' => $rec['email'], - '{admin_mail}' => $global_config['admin_mail'], + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), '{used}' => $rec['used'], '{name}' => $rec['name'], '{quota}' => $rec['quota'], @@ -1027,7 +1028,7 @@ if ($app->dbmaster == $app->db) { $app->dbmaster->datalogUpdate('mail_user', "last_quota_notification = CURDATE()", 'mailuser_id', $rec['mailuser_id']); $placeholders = array('{email}' => $rec['email'], - '{admin_mail}' => $global_config['admin_mail'], + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), '{used}' => $rec['used'], '{name}' => $rec['name'], '{quota}' => $rec['quota'], @@ -1237,7 +1238,8 @@ if($backup_dir != '') { if ($rec['type'] == 'mysql') { $db_backup_file = 'db_'.$db_name.'_'.date('Y-m-d_H-i').'.sql'; - $command = "mysqldump -h '".escapeshellcmd($clientdb_host)."' -u '".escapeshellcmd($clientdb_user)."' -p'".escapeshellcmd($clientdb_password)."' -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; + //$command = "mysqldump -h '".escapeshellcmd($clientdb_host)."' -u '".escapeshellcmd($clientdb_user)."' -p'".escapeshellcmd($clientdb_password)."' -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; + $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; exec($command, $tmp_output, $retval); //* Compress the backup with gzip diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php index 11bf8daf2328ddaa9e0d70d1acfdeedf757dc6a7..321e5c6ffb4a647e8349e951a7292847109c364e 100755 --- a/server/lib/app.inc.php +++ b/server/lib/app.inc.php @@ -156,7 +156,7 @@ class app { } // if - if($priority >= $conf['admin_notify_priority'] && $conf['admin_mail'] != '') { + if(isset($conf['admin_notify_priority']) && $priority >= $conf['admin_notify_priority'] && $conf['admin_mail'] != '') { // send notification to admin $mailBody = $log_msg; $mailSubject = substr($log_msg,0,50).'...'; diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index 2974da09c9bcdd5812a5cbf725b9ee11a32060fa..23ba8a627e72a0e6257a809e13d7741aa7228328 100644 --- a/server/lib/classes/db_mysql.inc.php +++ b/server/lib/classes/db_mysql.inc.php @@ -373,6 +373,15 @@ public function toLower($record) { return true; } + + //** Deletes a record and saves the changes into the datalog + public function datalogError($errormsg) { + global $app; + + if(isset($app->modules->current_datalog_id) && $app->modules->current_datalog_id > 0) $this->query("UPDATE sys_datalog set error = '".$this->quote($errormsg)."' WHERE datalog_id = ".$app->modules->current_datalog_id); + + return true; + } public function freeResult($query) diff --git a/server/mods-available/dns_module.inc.php b/server/mods-available/dns_module.inc.php index 2fac7b5c5697a85abddad9ae05f1e8cf0886b680..2a06361e6b1d1b3d639870f8392debf598d6ec20 100644 --- a/server/mods-available/dns_module.inc.php +++ b/server/mods-available/dns_module.inc.php @@ -130,9 +130,9 @@ class dns_module { $retval = array('output' => '', 'retval' => 0); if($action == 'restart') { - exec($conf['init_scripts'] . '/' . $daemon . ' restart', $retval['output'], $retval['retval']); + exec($conf['init_scripts'] . '/' . $daemon . ' restart 2>&1', $retval['output'], $retval['retval']); } else { - exec($conf['init_scripts'] . '/' . $daemon . ' reload', $retval['output'], $retval['retval']); + exec($conf['init_scripts'] . '/' . $daemon . ' reload 2>&1', $retval['output'], $retval['retval']); } return $retval; } @@ -179,7 +179,7 @@ class dns_module { } $retval = array('output' => '', 'retval' => 0); - exec($conf['init_scripts'] . '/' . $daemon . ' restart', $retval['output'], $retval['retval']); + exec($conf['init_scripts'] . '/' . $daemon . ' restart 2>&1', $retval['output'], $retval['retval']); // unset $tmps; return $retval; diff --git a/server/mods-available/web_module.inc.php b/server/mods-available/web_module.inc.php index 52d4aeddb90a52dfee8c9aebb15f73c77ab1f0a7..868cf9e20c1249894196f792ed302b858b434e87 100644 --- a/server/mods-available/web_module.inc.php +++ b/server/mods-available/web_module.inc.php @@ -212,9 +212,9 @@ class web_module { $retval = array('output' => '', 'retval' => 0); if($action == 'restart') { - exec($conf['init_scripts'] . '/' . $daemon . ' restart', $retval['output'], $retval['retval']); + exec($conf['init_scripts'] . '/' . $daemon . ' restart 2>&1', $retval['output'], $retval['retval']); } else { - exec($conf['init_scripts'] . '/' . $daemon . ' reload', $retval['output'], $retval['retval']); + exec($conf['init_scripts'] . '/' . $daemon . ' reload 2>&1', $retval['output'], $retval['retval']); } return $retval; } @@ -231,7 +231,7 @@ class web_module { if(!$init_script) $init_script = $conf['init_scripts'].'/'.$web_config['php_fpm_init_script']; $retval = array('output' => '', 'retval' => 0); - exec($init_script.' '.$action, $retval['output'], $retval['retval']); + exec($init_script.' '.$action.' 2>&1', $retval['output'], $retval['retval']); return $retval; } diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 0107cbba1f766165bbf6d256458fd98ac5274d28..5bc44075014519f903dba5d0f63ad2b111e37233 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1563,7 +1563,7 @@ class apache2_plugin { if($web_config['check_apache_config'] == 'y') { //* Test if apache starts with the new configuration file $apache_online_status_before_restart = $this->_checkTcp('localhost',80); - $app->log('Apache status is: '.$apache_online_status_before_restart,LOGLEVEL_DEBUG); + $app->log('Apache status is: '.($apache_online_status_before_restart === true? 'running' : 'down'),LOGLEVEL_DEBUG); $retval = $app->services->restartService('httpd','restart'); // $retval['retval'] is 0 on success and > 0 on failure $app->log('Apache restart return value is: '.$retval['retval'],LOGLEVEL_DEBUG); @@ -1577,39 +1577,49 @@ class apache2_plugin { sleep(1); } //* Check if apache restarted successfully if it was online before - $app->log('Apache online status after restart is: '.$apache_online_status_after_restart,LOGLEVEL_DEBUG); + $app->log('Apache online status after restart is: '.($apache_online_status_after_restart === true? 'running' : 'down'),LOGLEVEL_DEBUG); if($apache_online_status_before_restart && !$apache_online_status_after_restart || $retval['retval'] > 0) { $app->log('Apache did not restart after the configuration change for website '.$data['new']['domain'].'. Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN); if(is_array($retval['output']) && !empty($retval['output'])){ $app->log('Reason for Apache restart failure: '.implode("\n", $retval['output']),LOGLEVEL_WARN); + $app->dbmaster->datalogError(implode("\n", $retval['output'])); } else { // if no output is given, check again $webserver_binary = ''; - exec('which apache2', $webserver_check_output, $webserver_check_retval); + exec('which apache2ctl', $webserver_check_output, $webserver_check_retval); if($webserver_check_retval == 0){ - $webserver_binary = 'apache2'; + $webserver_binary = 'apache2ctl'; } else { unset($webserver_check_output, $webserver_check_retval); - exec('which httpd2', $webserver_check_output, $webserver_check_retval); + exec('which apache2', $webserver_check_output, $webserver_check_retval); if($webserver_check_retval == 0){ - $webserver_binary = 'httpd2'; + $webserver_binary = 'apache2'; } else { unset($webserver_check_output, $webserver_check_retval); - exec('which httpd', $webserver_check_output, $webserver_check_retval); + exec('which httpd2', $webserver_check_output, $webserver_check_retval); if($webserver_check_retval == 0){ - $webserver_binary = 'httpd'; + $webserver_binary = 'httpd2'; } else { unset($webserver_check_output, $webserver_check_retval); - exec('which apache', $webserver_check_output, $webserver_check_retval); + exec('which httpd', $webserver_check_output, $webserver_check_retval); if($webserver_check_retval == 0){ - $webserver_binary = 'apache'; + $webserver_binary = 'httpd'; + } else { + unset($webserver_check_output, $webserver_check_retval); + exec('which apache', $webserver_check_output, $webserver_check_retval); + if($webserver_check_retval == 0){ + $webserver_binary = 'apache'; + } } } } } if($webserver_binary != ''){ exec($webserver_binary.' -t 2>&1', $tmp_output, $tmp_retval); - if($tmp_retval > 0 && is_array($tmp_output) && !empty($tmp_output)) $app->log('Reason for Apache restart failure: '.implode("\n", $tmp_output),LOGLEVEL_WARN); + if($tmp_retval > 0 && is_array($tmp_output) && !empty($tmp_output)){ + $app->log('Reason for Apache restart failure: '.implode("\n", $tmp_output),LOGLEVEL_WARN); + $app->dbmaster->datalogError(implode("\n", $tmp_output)); + } unset($tmp_output, $tmp_retval); } } diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index dd9bcd70e1e9c11236b6e7f88cd25e625ed7f6c0..181eedb190d8824b916e82d6e663771fa00ad93a 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -940,6 +940,7 @@ class nginx_plugin { if($vhost_data['php'] == 'fast-cgi') $vhost_data['php'] = 'php-fpm'; // Custom rewrite rules + /* $final_rewrite_rules = array(); $custom_rewrite_rules = $data['new']['rewrite_rules']; // Make sure we only have Unix linebreaks @@ -952,6 +953,85 @@ class nginx_plugin { } } $tpl->setLoop('rewrite_rules', $final_rewrite_rules); + */ + + // Custom rewrite rules + $final_rewrite_rules = array(); + + if(isset($data['new']['rewrite_rules']) && trim($data['new']['rewrite_rules']) != '') { + $custom_rewrite_rules = trim($data['new']['rewrite_rules']); + $custom_rewrites_are_valid = true; + // use this counter to make sure all curly brackets are properly closed + $if_level = 0; + // Make sure we only have Unix linebreaks + $custom_rewrite_rules = str_replace("\r\n", "\n", $custom_rewrite_rules); + $custom_rewrite_rules = str_replace("\r", "\n", $custom_rewrite_rules); + $custom_rewrite_rule_lines = explode("\n", $custom_rewrite_rules); + if(is_array($custom_rewrite_rule_lines) && !empty($custom_rewrite_rule_lines)){ + foreach($custom_rewrite_rule_lines as $custom_rewrite_rule_line){ + // ignore comments + if(substr(ltrim($custom_rewrite_rule_line),0,1) == '#'){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + continue; + } + // empty lines + if(trim($custom_rewrite_rule_line) == ''){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + continue; + } + // rewrite + if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $custom_rewrite_rule_line)){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + continue; + } + // if + if(preg_match('@^\s*if\s+\(\s*\$\S+(\s+(\!?(=|~|~\*))\s+(\S+|\".+\"))?\s*\)\s*\{\s*$@', $custom_rewrite_rule_line)){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + $if_level += 1; + continue; + } + // if - check for files, directories, etc. + if(preg_match('@^\s*if\s+\(\s*\!?-(f|d|e|x)\s+\S+\s*\)\s*\{\s*$@', $custom_rewrite_rule_line)){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + $if_level += 1; + continue; + } + // break + if(preg_match('@^\s*break\s*;\s*$@', $custom_rewrite_rule_line)){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + continue; + } + // return code [ text ] + if(preg_match('@^\s*return\s+\d\d\d.*;\s*$@', $custom_rewrite_rule_line)){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + continue; + } + // return code URL + // return URL + if(preg_match('@^\s*return(\s+\d\d\d)?\s+(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*\@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*\s*;\s*$@', $custom_rewrite_rule_line)){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + continue; + } + // set + if(preg_match('@^\s*set\s+\$\S+\s+\S+\s*;\s*$@', $custom_rewrite_rule_line)){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + continue; + } + // closing curly bracket + if(trim($custom_rewrite_rule_line) == '}'){ + $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line); + $if_level -= 1; + continue; + } + $custom_rewrites_are_valid = false; + break; + } + } + if(!$custom_rewrites_are_valid || $if_level != 0){ + $final_rewrite_rules = array(); + } + } + $tpl->setLoop('rewrite_rules', $final_rewrite_rules); // Custom nginx directives $final_nginx_directives = array(); @@ -1538,7 +1618,7 @@ class nginx_plugin { if($web_config['check_apache_config'] == 'y') { //* Test if nginx starts with the new configuration file $nginx_online_status_before_restart = $this->_checkTcp('localhost',80); - $app->log('nginx status is: '.$nginx_online_status_before_restart,LOGLEVEL_DEBUG); + $app->log('nginx status is: '.($nginx_online_status_before_restart === true? 'running' : 'down'),LOGLEVEL_DEBUG); $retval = $app->services->restartService('httpd','restart'); // $retval['retval'] is 0 on success and > 0 on failure $app->log('nginx restart return value is: '.$retval['retval'],LOGLEVEL_DEBUG); @@ -1548,15 +1628,19 @@ class nginx_plugin { //* Check if nginx restarted successfully if it was online before $nginx_online_status_after_restart = $this->_checkTcp('localhost',80); - $app->log('nginx online status after restart is: '.$nginx_online_status_after_restart,LOGLEVEL_DEBUG); + $app->log('nginx online status after restart is: '.($nginx_online_status_after_restart === true? 'running' : 'down'),LOGLEVEL_DEBUG); if($nginx_online_status_before_restart && !$nginx_online_status_after_restart || $retval['retval'] > 0) { $app->log('nginx did not restart after the configuration change for website '.$data['new']['domain'].'. Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN); if(is_array($retval['output']) && !empty($retval['output'])){ $app->log('Reason for nginx restart failure: '.implode("\n", $retval['output']),LOGLEVEL_WARN); + $app->dbmaster->datalogError(implode("\n", $retval['output'])); } else { // if no output is given, check again exec('nginx -t 2>&1', $tmp_output, $tmp_retval); - if($tmp_retval > 0 && is_array($tmp_output) && !empty($tmp_output)) $app->log('Reason for nginx restart failure: '.implode("\n", $tmp_output),LOGLEVEL_WARN); + if($tmp_retval > 0 && is_array($tmp_output) && !empty($tmp_output)){ + $app->log('Reason for nginx restart failure: '.implode("\n", $tmp_output),LOGLEVEL_WARN); + $app->dbmaster->datalogError(implode("\n", $tmp_output)); + } unset($tmp_output, $tmp_retval); } $app->system->copy($vhost_file,$vhost_file.'.err'); diff --git a/server/server.php b/server/server.php index 38baa772d44c3560ce425c9da4a6416c840cd2f8..2ead4904321edc18ad2ad9e7cbf864a4d1a968e5 100644 --- a/server/server.php +++ b/server/server.php @@ -71,7 +71,8 @@ if ($app->dbmaster->connect_error == NULL) { unset($server_db_record); // retrieve admin email address for notifications - $sys_ini = $app->dbmaster->queryOneRecord("SELECT * FROM sys_ini WHERE sysini_id = 1"); + //$sys_ini = $app->dbmaster->queryOneRecord("SELECT * FROM sys_ini WHERE sysini_id = 1"); + $sys_ini = $app->db->queryOneRecord("SELECT * FROM sys_ini WHERE sysini_id = 1"); $conf['sys_ini'] = $app->ini_parser->parse_ini_string(stripslashes($sys_ini['config'])); $conf['admin_mail'] = $conf['sys_ini']['mail']['admin_mail']; unset($sys_ini);