From 649d63974b9a3a9d6042892d00e0377022cb44c9 Mon Sep 17 00:00:00 2001 From: redray Date: Sat, 7 Mar 2009 01:34:30 +0000 Subject: [PATCH] fixed form problems ... http://www.sprawsm.com/uni-form/ --- interface/lib/app.inc.php | 20 +- interface/lib/classes/auth.inc.php | 210 +- interface/lib/classes/tform.inc.php | 2280 ++++++++--------- interface/lib/classes/tform_actions.inc.php | 2 +- .../lib/classes/tform_tpl_generator.inc.php | 143 +- .../web/admin/templates/firewall_edit.htm | 43 +- .../web/admin/templates/firewall_list.htm | 1 + interface/web/admin/templates/groups_edit.htm | 23 +- interface/web/admin/templates/groups_list.htm | 1 + .../web/admin/templates/language_add.htm | 36 +- .../web/admin/templates/language_complete.htm | 24 +- .../web/admin/templates/language_edit.htm | 6 +- .../web/admin/templates/language_export.htm | 28 +- .../web/admin/templates/language_import.htm | 60 +- .../web/admin/templates/language_list.htm | 13 +- .../templates/server_config_fastcgi_edit.htm | 63 +- .../templates/server_config_getmail_edit.htm | 15 +- .../templates/server_config_jailkit_edit.htm | 31 +- .../admin/templates/server_config_list.htm | 1 + .../templates/server_config_mail_edit.htm | 105 +- .../templates/server_config_server_edit.htm | 57 +- .../templates/server_config_web_edit.htm | 71 +- .../admin/templates/server_edit_config.htm | 15 +- .../admin/templates/server_edit_services.htm | 85 +- .../web/admin/templates/server_ip_edit.htm | 35 +- .../web/admin/templates/server_ip_list.htm | 1 + interface/web/admin/templates/server_list.htm | 1 + .../admin/templates/software_package_list.htm | 1 + .../admin/templates/software_repo_edit.htm | 49 +- .../admin/templates/software_repo_list.htm | 1 + .../admin/templates/software_update_list.htm | 19 +- .../templates/system_config_mail_edit.htm | 18 +- .../templates/system_config_sites_edit.htm | 50 +- .../web/admin/templates/users_groups_edit.htm | 27 +- interface/web/admin/templates/users_list.htm | 119 +- .../web/admin/templates/users_user_edit.htm | 91 +- .../client/templates/client_edit_address.htm | 164 +- .../client/templates/client_edit_limits.htm | 298 ++- .../templates/client_template_edit_limits.htm | 175 +- .../client_template_edit_template.htm | 27 +- .../client/templates/client_template_list.htm | 103 +- .../web/client/templates/clients_list.htm | 1 + interface/web/dns/templates/dns_a_edit.htm | 73 +- interface/web/dns/templates/dns_a_list.htm | 164 +- .../web/dns/templates/dns_alias_edit.htm | 73 +- .../web/dns/templates/dns_cname_edit.htm | 73 +- .../web/dns/templates/dns_hinfo_edit.htm | 73 +- interface/web/dns/templates/dns_mx_edit.htm | 81 +- interface/web/dns/templates/dns_ns_edit.htm | 73 +- interface/web/dns/templates/dns_ptr_edit.htm | 73 +- .../web/dns/templates/dns_records_edit.htm | 1 + interface/web/dns/templates/dns_rp_edit.htm | 73 +- interface/web/dns/templates/dns_soa_edit.htm | 160 +- interface/web/dns/templates/dns_soa_list.htm | 123 +- interface/web/dns/templates/dns_srv_edit.htm | 73 +- .../web/dns/templates/dns_template_edit.htm | 41 +- .../web/dns/templates/dns_template_list.htm | 1 + interface/web/dns/templates/dns_txt_edit.htm | 73 +- interface/web/dns/templates/dns_wizard.htm | 130 +- .../help/templates/support_message_edit.htm | 33 +- .../help/templates/support_message_list.htm | 1 + .../help/templates/support_message_view.htm | 21 +- interface/web/js/uni-form/jquery.js | 1 + interface/web/js/uni-form/uni-form.jquery.js | 41 + interface/web/login/templates/index.htm | 67 +- .../web/login/templates/password_reset.htm | 37 +- .../web/mail/templates/mail_alias_edit.htm | 37 +- .../web/mail/templates/mail_alias_list.htm | 1 + .../mail/templates/mail_blacklist_edit.htm | 45 +- .../mail/templates/mail_blacklist_list.htm | 1 + .../templates/mail_content_filter_edit.htm | 61 +- .../templates/mail_content_filter_list.htm | 1 + .../templates/mail_domain_catchall_edit.htm | 37 +- .../templates/mail_domain_catchall_list.htm | 1 + .../web/mail/templates/mail_domain_edit.htm | 108 +- .../web/mail/templates/mail_domain_list.htm | 1 + .../web/mail/templates/mail_forward_edit.htm | 36 +- .../web/mail/templates/mail_forward_list.htm | 1 + .../web/mail/templates/mail_get_edit.htm | 75 +- .../web/mail/templates/mail_get_list.htm | 1 + .../mail/templates/mail_transport_edit.htm | 71 +- .../mail/templates/mail_transport_list.htm | 1 + .../mail_user_autoresponder_edit.htm | 23 +- .../templates/mail_user_custom_rules_edit.htm | 13 +- .../mail/templates/mail_user_filter_edit.htm | 75 +- .../web/mail/templates/mail_user_list.htm | 109 +- .../mail/templates/mail_user_mailbox_edit.htm | 111 +- .../templates/mail_user_mailfilter_edit.htm | 8 +- .../mail/templates/mail_user_stats_list.htm | 1 + .../mail/templates/mail_whitelist_edit.htm | 43 +- .../mail/templates/mail_whitelist_list.htm | 1 + .../templates/spamfilter_blacklist_edit.htm | 53 +- .../templates/spamfilter_blacklist_list.htm | 1 + .../spamfilter_config_getmail_edit.htm | 1 + .../mail/templates/spamfilter_config_list.htm | 1 + .../templates/spamfilter_config_mail_edit.htm | 1 + .../spamfilter_config_server_edit.htm | 1 + .../mail/templates/spamfilter_other_edit.htm | 123 +- .../mail/templates/spamfilter_policy_edit.htm | 83 +- .../mail/templates/spamfilter_policy_list.htm | 1 + .../templates/spamfilter_quarantine_edit.htm | 53 +- .../templates/spamfilter_taglevel_edit.htm | 71 +- .../mail/templates/spamfilter_users_edit.htm | 61 +- .../mail/templates/spamfilter_users_list.htm | 1 + .../templates/spamfilter_whitelist_edit.htm | 55 +- .../templates/spamfilter_whitelist_list.htm | 1 + .../web/monitor/templates/datalog_list.htm | 97 +- interface/web/monitor/templates/show_data.htm | 3 +- interface/web/monitor/templates/show_log.htm | 14 +- .../web/monitor/templates/show_sys_state.htm | 16 +- .../web/monitor/templates/syslog_list.htm | 111 +- .../web/sites/templates/database_edit.htm | 150 +- .../web/sites/templates/database_list.htm | 121 +- .../web/sites/templates/ftp_user_advanced.htm | 69 +- .../web/sites/templates/ftp_user_edit.htm | 91 +- .../web/sites/templates/ftp_user_list.htm | 1 + .../sites/templates/shell_user_advanced.htm | 37 +- .../web/sites/templates/shell_user_edit.htm | 100 +- .../web/sites/templates/shell_user_list.htm | 1 + .../sites/templates/web_aliasdomain_edit.htm | 61 +- .../sites/templates/web_aliasdomain_list.htm | 1 + .../sites/templates/web_domain_advanced.htm | 70 +- .../web/sites/templates/web_domain_edit.htm | 233 +- .../web/sites/templates/web_domain_list.htm | 1 + .../sites/templates/web_domain_redirect.htm | 23 +- .../web/sites/templates/web_domain_ssl.htm | 79 +- .../sites/templates/web_subdomain_edit.htm | 42 +- .../sites/templates/web_subdomain_list.htm | 1 + interface/web/themes/default/css/central.css | 3 +- .../default/css/screen/content_ispc.css | 1096 +++++--- .../default/css/screen/uni-form-generic.css | 136 + .../themes/default/css/screen/uni-form.css | 128 + .../web/themes/default/css/screen/wforms.css | 805 ------ .../themes/default/images/buttonHolder_bg.gif | Bin 0 -> 609 bytes interface/web/themes/default/licences.txt | 2 +- .../web/themes/default/templates/main.tpl.htm | 185 +- .../default/templates/tabbed_form.tpl.htm | 13 +- .../web/tools/templates/user_settings.htm | 39 +- 138 files changed, 5794 insertions(+), 5376 deletions(-) create mode 100644 interface/web/js/uni-form/jquery.js create mode 100644 interface/web/js/uni-form/uni-form.jquery.js create mode 100644 interface/web/themes/default/css/screen/uni-form-generic.css create mode 100644 interface/web/themes/default/css/screen/uni-form.css delete mode 100644 interface/web/themes/default/css/screen/wforms.css create mode 100644 interface/web/themes/default/images/buttonHolder_bg.gif diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index 354ffd6589..e515fc09f2 100644 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -120,17 +120,19 @@ class app { Error - + -


- - - - -
Error:
'.$msg; - if($next_link != '') $msg .= 'Next
'; - $msg .= '
+
+
+

Error

+
    +
  1. '.$msg; + if($next_link != '') $msg .= 'Next'; + $msg .= '
  2. +
+
+
'; die($msg); diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php index 707aab4b05..a2641692e0 100644 --- a/interface/lib/classes/auth.inc.php +++ b/interface/lib/classes/auth.inc.php @@ -1,106 +1,106 @@ -db->queryOneRecord("SELECT client.limit_client FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id"); - if($client['limit_client'] > 0) { - return true; - } else { - return false; - } - } - - //** This function adds a given group id to a given user. - public function add_group_to_user($userid,$groupid) { - global $app; - - $userid = intval($userid); - $groupid = intval($groupid); - - if($userid > 0 && $groupid > 0) { - $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = $userid"); - $groups = explode(',',$user['groups']); - if(!in_array($groupid,$groups)) $groups[] = $groupid; - $groups_string = implode(',',$groups); - $sql = "UPDATE sys_user SET groups = '$groups_string' WHERE userid = $userid"; - $app->db->query($sql); - return true; - } else { - return false; - } - } - - //** This function removes a given group id from a given user. - public function remove_group_from_user($userid,$groupid) { - global $app; - - $userid = intval($userid); - $groupid = intval($groupid); - - if($userid > 0 && $groupid > 0) { - $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = $userid"); - $groups = explode(',',$user['groups']); - $key = array_search($groupid,$groups); - unset($groups[$key]); - $groups_string = implode(',',$groups); - $sql = "UPDATE sys_user SET groups = '$groups_string' WHERE userid = $userid"; - $app->db->query($sql); - return true; - } else { - return false; - } - } - - public function check_module_permissions($module) { - // Check if the current user has the permissions to access this module - if(!stristr($_SESSION["s"]["user"]["modules"],$module)) { - // echo "LOGIN_REDIRECT:/index.php"; - header("Location: /index.php"); - exit; - } - } - - -} - +db->queryOneRecord("SELECT client.limit_client FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id"); + if($client['limit_client'] > 0) { + return true; + } else { + return false; + } + } + + //** This function adds a given group id to a given user. + public function add_group_to_user($userid,$groupid) { + global $app; + + $userid = intval($userid); + $groupid = intval($groupid); + + if($userid > 0 && $groupid > 0) { + $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = $userid"); + $groups = explode(',',$user['groups']); + if(!in_array($groupid,$groups)) $groups[] = $groupid; + $groups_string = implode(',',$groups); + $sql = "UPDATE sys_user SET groups = '$groups_string' WHERE userid = $userid"; + $app->db->query($sql); + return true; + } else { + return false; + } + } + + //** This function removes a given group id from a given user. + public function remove_group_from_user($userid,$groupid) { + global $app; + + $userid = intval($userid); + $groupid = intval($groupid); + + if($userid > 0 && $groupid > 0) { + $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = $userid"); + $groups = explode(',',$user['groups']); + $key = array_search($groupid,$groups); + unset($groups[$key]); + $groups_string = implode(',',$groups); + $sql = "UPDATE sys_user SET groups = '$groups_string' WHERE userid = $userid"; + $app->db->query($sql); + return true; + } else { + return false; + } + } + + public function check_module_permissions($module) { + // Check if the current user has the permissions to access this module + if(!stristr($_SESSION["s"]["user"]["modules"],$module)) { + // echo "LOGIN_REDIRECT:/index.php"; + header("Location: /index.php"); + exit; + } + } + + +} + ?> \ No newline at end of file diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index 5a53a4f831..2b4f0b9467 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -1,1147 +1,1135 @@ -tableDef = $table; - $this->table_name = $table_name; - $this->table_index = $table_index; - return true; - } - */ - - function loadFormDef($file,$module = '') { - global $app,$conf; - - include_once($file); - $this->formDef = $form; - - $this->module = $module; - $wb = array(); - - include_once(ISPC_ROOT_PATH.'/lib/lang/'.$_SESSION['s']['language'].'.lng'); - if($module == '') { - $lng_file = "lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng"; - if(!file_exists($lng_file)) $lng_file = "lib/lang/en_".$this->formDef["name"].".lng"; - include($lng_file); - } else { - $lng_file = "../$module/lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng"; - if(!file_exists($lng_file)) $lng_file = "../$module/lib/lang/en_".$this->formDef["name"].".lng"; - include($lng_file); - } - $this->wordbook = $wb; - - return true; - } - - - /** - * Converts the data in the array to human readable format - * Datatype conversion e.g. to show the data in lists - * - * @param record - * @return record - */ - function decode($record,$tab) { - if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab does not exist or the tab is empty (TAB: $tab)."); - $new_record = ''; - if(is_array($record)) { - foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { - switch ($field['datatype']) { - case 'VARCHAR': - $new_record[$key] = stripslashes($record[$key]); - break; - - case 'TEXT': - $new_record[$key] = stripslashes($record[$key]); - break; - - case 'DATE': - if($record[$key] > 0) { - $new_record[$key] = date($this->dateformat,$record[$key]); - } - break; - - case 'INTEGER': - $new_record[$key] = intval($record[$key]); - break; - - case 'DOUBLE': - $new_record[$key] = $record[$key]; - break; - - case 'CURRENCY': - $new_record[$key] = number_format($record[$key], 2, ',', ''); - break; - - default: - $new_record[$key] = stripslashes($record[$key]); - } - } - - } - - return $new_record; - } - - /** - * Get the key => value array of a form filed from a datasource definitiom - * - * @param field = array with field definition - * @param record = Dataset as array - * @return key => value array for the value field of a form - */ - - function getDatasourceData($field, $record) { - global $app; - - $values = array(); - - if($field["datasource"]["type"] == 'SQL') { - - // Preparing SQL string. We will replace some - // common placeholders - $querystring = $field["datasource"]["querystring"]; - $querystring = str_replace("{USERID}",$_SESSION["s"]["user"]["userid"],$querystring); - $querystring = str_replace("{GROUPID}",$_SESSION["s"]["user"]["default_group"],$querystring); - $querystring = str_replace("{GROUPS}",$_SESSION["s"]["user"]["groups"],$querystring); - $table_idx = $this->formDef['db_table_idx']; - - $tmp_recordid = (isset($record[$table_idx]))?$record[$table_idx]:0; - $querystring = str_replace("{RECORDID}",$tmp_recordid,$querystring); - unset($tmp_recordid); - - $querystring = str_replace("{AUTHSQL}",$this->getAuthSQL('r'),$querystring); - - // Getting the records - $tmp_records = $app->db->queryAllRecords($querystring); - if($app->db->errorMessage != '') die($app->db->errorMessage); - if(is_array($tmp_records)) { - $key_field = $field["datasource"]["keyfield"]; - $value_field = $field["datasource"]["valuefield"]; - foreach($tmp_records as $tmp_rec) { - $tmp_id = $tmp_rec[$key_field]; - $values[$tmp_id] = $tmp_rec[$value_field]; - } - } - } - - if($field["datasource"]["type"] == 'CUSTOM') { - // Calls a custom class to validate this record - if($field["datasource"]['class'] != '' and $field["datasource"]['function'] != '') { - $datasource_class = $field["datasource"]['class']; - $datasource_function = $field["datasource"]['function']; - $app->uses($datasource_class); - $values = $app->$datasource_class->$datasource_function($field, $record); - } else { - $this->errorMessage .= "Custom datasource class or function is empty
\r\n"; - } - } - - return $values; - - } - - //* If the parameter 'valuelimit' is set - function applyValueLimit($limit,$values) { - - global $app; - - $limit_parts = explode(':',$limit); - - //* values are limited to a comma separated list - if($limit_parts[0] == 'list') { - $allowed = explode(',',$limit_parts[1]); - } - - //* values are limited to a field in the client settings - if($limit_parts[0] == 'client') { - if($_SESSION["s"]["user"]["typ"] == 'admin') { - return $values; - } else { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - $allowed = explode(',',$client['lm']); - } - } - - //* values are limited to a field in the system settings - if($limit_parts[0] == 'system') { - $app->uses('getconf'); - $tmp_conf = $app->getconf->get_global_config($limit_parts[1]); - $tmp_key = $limit_parts[2]; - $allowed = $tmp_conf[$tmp_key]; - } - - $values_new = array(); - foreach($values as $key => $val) { - if(in_array($key,$allowed)) $values_new[$key] = $val; - } - - return $values_new; - } - - - /** - * Prepare the data record to show the data in a form. - * - * @param record = Datensatz als Array - * @param action = NEW oder EDIT - * @return record - */ - function getHTML($record, $tab, $action = 'NEW') { - - global $app; - - $this->action = $action; - - if(!is_array($this->formDef)) $app->error("No form definition found."); - if(!is_array($this->formDef['tabs'][$tab])) $app->error("The tab is empty or does not exist (TAB: $tab)."); - - $new_record = array(); - if($action == 'EDIT') { - $record = $this->decode($record,$tab); - if(is_array($record)) { - foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { - $val = $record[$key]; - - // If Datasource is set, get the data from there - if(isset($field['datasource']) && is_array($field['datasource'])) { - $field["value"] = $this->getDatasourceData($field, $record); - } - - // If a limitation for the values is set - if(isset($field['valuelimit']) && is_array($field["value"])) { - $field["value"] = $this->applyValueLimit($field['valuelimit'],$field["value"]); - } - - switch ($field['formtype']) { - case 'SELECT': - $out = ''; - if(is_array($field['value'])) { - foreach($field['value'] as $k => $v) { - $selected = ($k == $val)?' SELECTED':''; - $out .= "\r\n"; - } - } - $new_record[$key] = $out; - break; - case 'MULTIPLE': - if(is_array($field['value'])) { - - // Split - $vals = explode($field['separator'],$val); - - // write HTML - $out = ''; - foreach($field['value'] as $k => $v) { - - $selected = ''; - foreach($vals as $tvl) { - if(trim($tvl) == trim($k)) $selected = ' SELECTED'; - } - - $out .= "\r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'PASSWORD': - $new_record[$key] = ''; - break; - - case 'CHECKBOX': - $checked = ($val == $field['value'][1])?' CHECKED':''; - $new_record[$key] = "\r\n"; - break; - - case 'CHECKBOXARRAY': - if(is_array($field['value'])) { - - // aufsplitten ergebnisse - $vals = explode($field['separator'],$val); - - // HTML schreiben - $out = ''; - foreach($field['value'] as $k => $v) { - - $checked = ''; - foreach($vals as $tvl) { - if(trim($tvl) == trim($k)) $checked = ' CHECKED'; - } - $out .= "\r\n - \r\n - \r\n - \r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'RADIO': - if(is_array($field['value'])) { - - // HTML schreiben - $out = ''; - foreach($field['value'] as $k => $v) { - $checked = ($k == $val)?' CHECKED':''; - $out .= "\r\n - \r\n - \r\n -
\r\n"; - } - } - $new_record[$key] = $out; - break; - - default: - $new_record[$key] = htmlspecialchars($record[$key]); - } - } - } - } else { - // Action: NEW - foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { - - // If Datasource is set, get the data from there - if(@is_array($field['datasource'])) { - $field["value"] = $this->getDatasourceData($field, $record); - } - - // If a limitation for the values is set - if(isset($field['valuelimit']) && is_array($field["value"])) { - $field["value"] = $this->applyValueLimit($field['valuelimit'],$field["value"]); - } - - switch ($field['formtype']) { - case 'SELECT': - if(is_array($field['value'])) { - $out = ''; - foreach($field['value'] as $k => $v) { - //$selected = ($k == $val)?' SELECTED':''; - $selected = ''; - $out .= "\r\n"; - } - } - if(isset($out)) $new_record[$key] = $out; - break; - case 'MULTIPLE': - if(is_array($field['value'])) { - - // aufsplitten ergebnisse - $vals = explode($field['separator'],$val); - - // HTML schreiben - $out = ''; - foreach($field['value'] as $k => $v) { - - $out .= "\r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'PASSWORD': - $new_record[$key] = ''; - break; - - case 'CHECKBOX': - // $checked = (empty($field["default"]))?'':' CHECKED'; - $checked = ($field["default"] == $field['value'][1])?' CHECKED':''; - $new_record[$key] = "\r\n"; - break; - - case 'CHECKBOXARRAY': - if(is_array($field['value'])) { - - // aufsplitten ergebnisse - $vals = explode($field['separator'],$field["default"]); - - // HTML schreiben - $out = ''; - foreach($field['value'] as $k => $v) { - - $checked = ''; - foreach($vals as $tvl) { - if(trim($tvl) == trim($k)) $checked = ' CHECKED'; - } - $out .= "\r\n - \r\n - \r\n - \r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'RADIO': - if(is_array($field['value'])) { - - // HTML schreiben - $out = ''; - foreach($field['value'] as $k => $v) { - $checked = ($k == $field["default"])?' CHECKED':''; - $out .= "\r\n - \r\n - \r\n -
\r\n"; - } - } - $new_record[$key] = $out; - break; - - default: - $new_record[$key] = htmlspecialchars($field['default']); - } - } - - } - - if($this->debug == 1) $this->dbg($new_record); - - return $new_record; - } - - /** - * Rewrite the record data to be stored in the database - * and check values with regular expressions. - * - * @param record = Datensatz als Array - * @return record - */ - function encode($record,$tab) { - global $app; - - if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab is empty or does not exist (TAB: $tab)."); - //$this->errorMessage = ''; - - if(is_array($record)) { - foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { - - if(isset($field['validators']) && is_array($field['validators'])) $this->validateField($key, (isset($record[$key]))?$record[$key]:'', $field['validators']); - - switch ($field['datatype']) { - case 'VARCHAR': - if(!@is_array($record[$key])) { - $new_record[$key] = (isset($record[$key]))?$app->db->quote($record[$key]):''; - } else { - $new_record[$key] = implode($field['separator'],$record[$key]); - } - break; - case 'TEXT': - if(!is_array($record[$key])) { - $new_record[$key] = $app->db->quote($record[$key]); - } else { - $new_record[$key] = implode($field['separator'],$record[$key]); - } - break; - case 'DATE': - if($record[$key] > 0) { - list($tag,$monat,$jahr) = explode('.',$record[$key]); - $new_record[$key] = mktime(0,0,0,$monat,$tag,$jahr); - } else { - $new_record[$key] = 0; - } - break; - case 'INTEGER': - $new_record[$key] = (isset($record[$key]))?$record[$key]:0; - //if($new_record[$key] != $record[$key]) $new_record[$key] = $field['default']; - //if($key == 'refresh') die($record[$key]); - break; - case 'DOUBLE': - $new_record[$key] = $app->db->quote($record[$key]); - break; - case 'CURRENCY': - $new_record[$key] = str_replace(",",".",$record[$key]); - break; - } - - // The use of the field value is deprecated, use validators instead - if(isset($field['regex']) && $field['regex'] != '') { - // Enable that "." matches also newlines - $field['regex'] .= 's'; - if(!preg_match($field['regex'], $record[$key])) { - $errmsg = $field['errmsg']; - $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; - } - } - - - } - } - return $new_record; - } - - /** - * process the validators for a given field. - * - * @param field_name = Name of the field - * @param field_value = value of the field - * @param validatoors = Array of validators - * @return record - */ - - function validateField($field_name, $field_value, $validators) { - - global $app; - - $escape = '`'; - - // loop trough the validators - foreach($validators as $validator) { - - switch ($validator['type']) { - case 'REGEX': - $validator['regex'] .= 's'; - if(!preg_match($validator['regex'], $field_value)) { - $errmsg = $validator['errmsg']; - if(isset($this->wordbook[$errmsg])) { - $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; - } else { - $this->errorMessage .= $errmsg."
\r\n"; - } - } - break; - case 'UNIQUE': - if($this->action == 'NEW') { - $num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM ".$escape.$this->formDef['db_table'].$escape. " WHERE $field_name = '".$app->db->quote($field_value)."'"); - if($num_rec["number"] > 0) { - $errmsg = $validator['errmsg']; - if(isset($this->wordbook[$errmsg])) { - $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; - } else { - $this->errorMessage .= $errmsg."
\r\n"; - } - } - } else { - $num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM ".$escape.$this->formDef['db_table'].$escape. " WHERE $field_name = '".$app->db->quote($field_value)."' AND ".$this->formDef['db_table_idx']." != ".$this->primary_id); - if($num_rec["number"] > 0) { - $errmsg = $validator['errmsg']; - if(isset($this->wordbook[$errmsg])) { - $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; - } else { - $this->errorMessage .= $errmsg."
\r\n"; - } - } - } - break; - case 'NOTEMPTY': - if(empty($field_value)) { - $errmsg = $validator['errmsg']; - if(isset($this->wordbook[$errmsg])) { - $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; - } else { - $this->errorMessage .= $errmsg."
\r\n"; - } - } - break; - case 'ISEMAIL': - if(!preg_match("/^\w+[\w.-]*\w+@\w+[\w.-]*\w+\.[a-z]{2,10}$/i", $field_value)) { - $errmsg = $validator['errmsg']; - if(isset($this->wordbook[$errmsg])) { - $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; - } else { - $this->errorMessage .= $errmsg."
\r\n"; - } - } - break; - case 'ISINT': - $tmpval = intval($field_value); - if($tmpval === 0 and !empty($field_value)) { - $errmsg = $validator['errmsg']; - if(isset($this->wordbook[$errmsg])) { - $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; - } else { - $this->errorMessage .= $errmsg."
\r\n"; - } - } - break; - case 'ISPOSITIVE': - if(!is_numeric($field_value) || $field_value <= 0){ - $errmsg = $validator['errmsg']; - if(isset($this->wordbook[$errmsg])) { - $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; - } else { - $this->errorMessage .= $errmsg."
\r\n"; - } - } - break; - case 'ISIPV4': - $vip=1; - if(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $field_value)){ - $groups=explode(".",$field_value); - foreach($groups as $group){ - if($group<0 OR $group>255) - $vip=0; - } - }else{$vip=0;} - if($vip==0) { - $errmsg = $validator['errmsg']; - if(isset($this->wordbook[$errmsg])) { - $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; - } else { - $this->errorMessage .= $errmsg."
\r\n"; - } - } - break; - case 'CUSTOM': - // Calls a custom class to validate this record - if($validator['class'] != '' and $validator['function'] != '') { - $validator_class = $validator['class']; - $validator_function = $validator['function']; - $app->uses($validator_class); - $this->errorMessage .= $app->$validator_class->$validator_function($field_name, $field_value, $validator); - } else { - $this->errorMessage .= "Custom validator class or function is empty
\r\n"; - } - break; - default: - $this->errorMessage .= "Unknown Validator: ".$validator['type']; - break; - } - - - } - - return true; - } - - /** - * Create the SQL staement. - * - * @param record = Datensatz als Array - * @param action = INSERT oder UPDATE - * @param primary_id - * @return record - */ - function getSQL($record, $tab, $action = 'INSERT', $primary_id = 0, $sql_ext_where = '') { - - global $app; - - // If there are no data records on the tab, return empty sql string - if(count($this->formDef['tabs'][$tab]['fields']) == 0) return ''; - - // checking permissions - if($this->formDef['auth'] == 'yes' && $_SESSION["s"]["user"]["typ"] != 'admin') { - if($action == "INSERT") { - if(!$this->checkPerm($primary_id,'i')) $this->errorMessage .= "Insert denied.
\r\n"; - } else { - if(!$this->checkPerm($primary_id,'u')) $this->errorMessage .= "Update denied.
\r\n"; - } - } - - $this->action = $action; - $this->primary_id = $primary_id; - - $record = $this->encode($record,$tab); - $sql_insert_key = ''; - $sql_insert_val = ''; - $sql_update = ''; - - if(!is_array($this->formDef)) $app->error("Keine Formulardefinition vorhanden."); - if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab ist leer oder existiert nicht (TAB: $tab)."); - - // gehe durch alle Felder des Tabs - if(is_array($record)) { - foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { - // Wenn es kein leeres Passwortfeld ist - if (!($field['formtype'] == 'PASSWORD' and $record[$key] == '')) { - // Erzeuge Insert oder Update Quelltext - if($action == "INSERT") { - if($field['formtype'] == 'PASSWORD') { - $sql_insert_key .= "`$key`, "; - if($field['encryption'] == 'CRYPT') { - $salt="$1$"; - for ($n=0;$n<11;$n++) { - $salt.=chr(mt_rand(64,126)); - } - $salt.="$"; - // $salt = substr(md5(time()),0,2); - $record[$key] = crypt($record[$key],$salt); - $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; - } elseif ($field['encryption'] == 'MYSQL') { - $sql_insert_val .= "PASSWORD('".$app->db->quote($record[$key])."'), "; - } elseif ($field['encryption'] == 'CLEARTEXT') { - $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; - } else { - $record[$key] = md5($record[$key]); - $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; - } - - } elseif ($field['formtype'] == 'CHECKBOX') { - $sql_insert_key .= "`$key`, "; - if($record[$key] == '') { - // if a checkbox is not set, we set it to the unchecked value - $sql_insert_val .= "'".$field['value'][0]."', "; - $record[$key] = $field['value'][0]; - } else { - $sql_insert_val .= "'".$record[$key]."', "; - } - } else { - $sql_insert_key .= "`$key`, "; - $sql_insert_val .= "'".$record[$key]."', "; - } - } else { - if($field['formtype'] == 'PASSWORD') { - if(isset($field['encryption']) && $field['encryption'] == 'CRYPT') { - $salt="$1$"; - for ($n=0;$n<11;$n++) { - $salt.=chr(mt_rand(64,126)); - } - $salt.="$"; - // $salt = substr(md5(time()),0,2); - $record[$key] = crypt($record[$key],$salt); - $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; - } elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') { - $sql_update .= "`$key` = PASSWORD('".$app->db->quote($record[$key])."'), "; - } elseif (isset($field['encryption']) && $field['encryption'] == 'CLEARTEXT') { - $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; - } else { - $record[$key] = md5($record[$key]); - $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; - } - - } elseif ($field['formtype'] == 'CHECKBOX') { - if($record[$key] == '') { - // if a checkbox is not set, we set it to the unchecked value - $sql_update .= "`$key` = '".$field['value'][0]."', "; - $record[$key] = $field['value'][0]; - } else { - $sql_update .= "`$key` = '".$record[$key]."', "; - } - } else { - $sql_update .= "`$key` = '".$record[$key]."', "; - } - } - } else { - // we unset the password filed, if empty to tell the datalog function - // that the password has not been changed - unset($record[$key]); - } - } - } - - - // Add backticks for incomplete table names - if(stristr($this->formDef['db_table'],'.')) { - $escape = ''; - } else { - $escape = '`'; - } - - - if($action == "INSERT") { - if($this->formDef['auth'] == 'yes') { - // Set user and group - $sql_insert_key .= "`sys_userid`, "; - $sql_insert_val .= ($this->formDef["auth_preset"]["userid"] > 0)?"'".$this->formDef["auth_preset"]["userid"]."', ":"'".$_SESSION["s"]["user"]["userid"]."', "; - $sql_insert_key .= "`sys_groupid`, "; - $sql_insert_val .= ($this->formDef["auth_preset"]["groupid"] > 0)?"'".$this->formDef["auth_preset"]["groupid"]."', ":"'".$_SESSION["s"]["user"]["default_group"]."', "; - $sql_insert_key .= "`sys_perm_user`, "; - $sql_insert_val .= "'".$this->formDef["auth_preset"]["perm_user"]."', "; - $sql_insert_key .= "`sys_perm_group`, "; - $sql_insert_val .= "'".$this->formDef["auth_preset"]["perm_group"]."', "; - $sql_insert_key .= "`sys_perm_other`, "; - $sql_insert_val .= "'".$this->formDef["auth_preset"]["perm_other"]."', "; - } - $sql_insert_key = substr($sql_insert_key,0,-2); - $sql_insert_val = substr($sql_insert_val,0,-2); - $sql = "INSERT INTO ".$escape.$this->formDef['db_table'].$escape." ($sql_insert_key) VALUES ($sql_insert_val)"; - } else { - if($this->formDef['auth'] == 'yes') { - if($primary_id != 0) { - $sql_update = substr($sql_update,0,-2); - $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->getAuthSQL('u')." AND ".$this->formDef['db_table_idx']." = ".$primary_id; - if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; - } else { - $app->error("Primary ID fehlt!"); - } - } else { - if($primary_id != 0) { - $sql_update = substr($sql_update,0,-2); - $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; - if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; - } else { - $app->error("Primary ID fehlt!"); - } - } - } - - return $sql; - } - - /** - * Debugging arrays. - * - * @param array_data - */ - function dbg($array_data) { - - echo "
";
-                print_r($array_data);
-                echo "
"; - - } - - - function showForm() { - global $app,$conf; - - if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen."); - - $active_tab = $this->getNextTab(); - - // go trough the tabs - foreach( $this->formDef["tabs"] as $key => $tab) { - - $tab['name'] = $key; - if($tab['name'] == $active_tab) { - - // If module is set, then set the template path relative to the module.. - if($this->module != '') $tab["template"] = "../".$this->module."/".$tab["template"]; - - // Generate the template if it does not exist yet. - - // Translate the title of the tab - $tab['title'] = $this->lng($tab['title']); - - if(!is_file($tab["template"])) { - $app->uses('tform_tpl_generator'); - $app->tform_tpl_generator->buildHTML($this->formDef,$tab['name']); - } - - $app->tpl->setInclude('content_tpl',$tab["template"]); - $tab["active"] = 1; - $_SESSION["s"]["form"]["tab"] = $tab['name']; - } else { - $tab["active"] = 0; - } - - // Unset unused variables. - unset($tab["fields"]); - unset($tab["plugins"]); - - $frmTab[] = $tab; - } - - // setting form tabs - $app->tpl->setLoop("formTab", $frmTab); - - // Set form action - $app->tpl->setVar('form_action',$this->formDef["action"]); - $app->tpl->setVar('form_active_tab',$active_tab); - - // Set form title - $form_hint = $this->lng($this->formDef["title"]); - if($this->formDef["description"] != '') $form_hint .= '
'.$this->lng($this->formDef["description"]).'
'; - $app->tpl->setVar('form_hint',$form_hint); - - // Set Wordbook for this form - - $app->tpl->setVar($this->wordbook); - } - - function getDataRecord($primary_id) { - global $app; - $escape = '`'; - $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; - return $app->db->queryOneRecord($sql); - } - - - function datalogSave($action,$primary_id, $record_old, $record_new) { - global $app,$conf; - - // Add backticks for incomplete table names. - if(stristr($this->formDef['db_table'],'.')) { - $escape = ''; - } else { - $escape = '`'; - } - - $this->diffrec = array(); - /* - if(is_array($record_new) && count($record_new) > 0) { - foreach($record_new as $key => $val) { - if(@$record_old[$key] != $val) { - // Record has changed - $diffrec[$key] = array('old' => @$record_old[$key], - 'new' => $val); - } - } - } elseif(is_array($record_old)) { - foreach($record_old as $key => $val) { - if($record_new[$key] != $val) { - // Record has changed - $diffrec[$key] = array('new' => $record_new[$key], - 'old' => $val); - } - } - } - $this->diffrec = $diffrec; - */ - - // Full diff records for ISPConfig, they have a different format then the simple diffrec - $diffrec_full = array(); - - if(is_array($record_old) && count($record_old) > 0) { - foreach($record_old as $key => $val) { - //if(isset($record_new[$key]) && $record_new[$key] != $val) { - if(!isset($record_new[$key]) || $record_new[$key] != $val) { - // Record has changed - $diffrec_full['old'][$key] = $val; - $diffrec_full['new'][$key] = $record_new[$key]; - $this->diffrec[$key] = array( 'new' => $record_new[$key], - 'old' => $val); - } else { - $diffrec_full['old'][$key] = $val; - $diffrec_full['new'][$key] = $val; - } - } - } elseif(is_array($record_new)) { - foreach($record_new as $key => $val) { - if(isset($record_new[$key]) && $record_old[$key] != $val) { - // Record has changed - $diffrec_full['new'][$key] = $val; - $diffrec_full['old'][$key] = $record_old[$key]; - $this->diffrec[$key] = array( 'old' => @$record_old[$key], - 'new' => $val); - } else { - $diffrec_full['new'][$key] = $val; - $diffrec_full['old'][$key] = $val; - } - } - } - - //$this->diffrec = $diffrec; - // Insert the server_id, if the record has a server_id - $server_id = (isset($record_old["server_id"]) && $record_old["server_id"] > 0)?$record_old["server_id"]:0; - if(isset($record_new["server_id"])) $server_id = $record_new["server_id"]; - - if(count($this->diffrec) > 0) { - $diffstr = addslashes(serialize($diffrec_full)); - $username = $app->db->quote($_SESSION["s"]["user"]["username"]); - $dbidx = $this->formDef['db_table_idx'].":".$primary_id; - // $action = ($action == 'INSERT')?'i':'u'; - - if($action == 'INSERT') $action = 'i'; - if($action == 'UPDATE') $action = 'u'; - if($action == 'DELETE') $action = 'd'; - $sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES ('".$this->formDef['db_table']."','$dbidx','$server_id','$action','".time()."','$username','$diffstr')"; - $app->db->query($sql); - } - - return true; - - } - - function getAuthSQL($perm) { - if($_SESSION["s"]["user"]["typ"] == 'admin') { - return '1'; - } else { - $groups = ( $_SESSION["s"]["user"]["groups"] ) ? $_SESSION["s"]["user"]["groups"] : 0; - $sql = '('; - $sql .= "(sys_userid = ".$_SESSION["s"]["user"]["userid"]." AND sys_perm_user like '%$perm%') OR "; - $sql .= "(sys_groupid IN (".$groups.") AND sys_perm_group like '%$perm%') OR "; - $sql .= "sys_perm_other like '%$perm%'"; - $sql .= ')'; - - return $sql; - } - } - - /* - This function checks if a user has the parmissions $perm for the data record with the ID $record_id - If record_id = 0, the the permissions are tested against the defaults of the form file. - */ - function checkPerm($record_id,$perm) { - global $app; - - if($record_id > 0) { - // Add backticks for incomplete table names. - if(stristr($this->formDef['db_table'],'.')) { - $escape = ''; - } else { - $escape = '`'; - } - - $sql = "SELECT ".$this->formDef['db_table_idx']." FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$record_id." AND ".$this->getAuthSQL($perm); - if($record = $app->db->queryOneRecord($sql)) { - return true; - } else { - return false; - } - } else { - $result = false; - if(@$this->formDef["auth_preset"]["userid"] == $_SESSION["s"]["user"]["userid"] && stristr($perm,$this->formDef["auth_preset"]["perm_user"])) $result = true; - if(@$this->formDef["auth_preset"]["groupid"] == $_SESSION["s"]["user"]["groupid"] && stristr($perm,$this->formDef["auth_preset"]["perm_group"])) $result = true; - if(@stristr($this->formDef["auth_preset"]["perm_other"],$perm)) $result = true; - - // if preset == 0, everyone can insert a record of this type - if($this->formDef["auth_preset"]["userid"] == 0 AND $this->formDef["auth_preset"]["groupid"] == 0 AND (@stristr($this->formDef["auth_preset"]["perm_user"],$perm) OR @stristr($this->formDef["auth_preset"]["perm_group"],$perm))) $result = true; - - return $result; - - } - - } - - function getNextTab() { - // Which tab is shown - if($this->errorMessage == '') { - // If there is no error - if(isset($_REQUEST["next_tab"]) && $_REQUEST["next_tab"] != '') { - // If the next tab is known - $active_tab = $_REQUEST["next_tab"]; - } else { - // else use the default tab - $active_tab = $this->formDef['tab_default']; - } - } else { - // Show the same tab again in case of an error - $active_tab = $_SESSION["s"]["form"]["tab"]; - } - - return $active_tab; - } - - function getCurrentTab() { - return $_SESSION["s"]["form"]["tab"]; - } - - function isReadonlyTab($tab) { - if(isset($this->formDef['tabs'][$tab]['readonly']) && $this->formDef['tabs'][$tab]['readonly'] == true) { - return true; - } else { - return false; - } - } - - - // translation function for forms, tries the form wordbook first and if this fails, it tries the global wordbook - function lng($msg) { - global $app; - - if(isset($this->wordbook[$msg])) { - return $this->wordbook[$msg]; - } else { - return $app->lng($msg); - } - - } - -} - +tableDef = $table; + $this->table_name = $table_name; + $this->table_index = $table_index; + return true; + } + */ + + function loadFormDef($file,$module = '') { + global $app,$conf; + + include_once($file); + $this->formDef = $form; + + $this->module = $module; + $wb = array(); + + include_once(ISPC_ROOT_PATH.'/lib/lang/'.$_SESSION['s']['language'].'.lng'); + if($module == '') { + $lng_file = "lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng"; + if(!file_exists($lng_file)) $lng_file = "lib/lang/en_".$this->formDef["name"].".lng"; + include($lng_file); + } else { + $lng_file = "../$module/lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng"; + if(!file_exists($lng_file)) $lng_file = "../$module/lib/lang/en_".$this->formDef["name"].".lng"; + include($lng_file); + } + $this->wordbook = $wb; + + return true; + } + + + /** + * Converts the data in the array to human readable format + * Datatype conversion e.g. to show the data in lists + * + * @param record + * @return record + */ + function decode($record,$tab) { + if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab does not exist or the tab is empty (TAB: $tab)."); + $new_record = ''; + if(is_array($record)) { + foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { + switch ($field['datatype']) { + case 'VARCHAR': + $new_record[$key] = stripslashes($record[$key]); + break; + + case 'TEXT': + $new_record[$key] = stripslashes($record[$key]); + break; + + case 'DATE': + if($record[$key] > 0) { + $new_record[$key] = date($this->dateformat,$record[$key]); + } + break; + + case 'INTEGER': + $new_record[$key] = intval($record[$key]); + break; + + case 'DOUBLE': + $new_record[$key] = $record[$key]; + break; + + case 'CURRENCY': + $new_record[$key] = number_format($record[$key], 2, ',', ''); + break; + + default: + $new_record[$key] = stripslashes($record[$key]); + } + } + + } + + return $new_record; + } + + /** + * Get the key => value array of a form filed from a datasource definitiom + * + * @param field = array with field definition + * @param record = Dataset as array + * @return key => value array for the value field of a form + */ + + function getDatasourceData($field, $record) { + global $app; + + $values = array(); + + if($field["datasource"]["type"] == 'SQL') { + + // Preparing SQL string. We will replace some + // common placeholders + $querystring = $field["datasource"]["querystring"]; + $querystring = str_replace("{USERID}",$_SESSION["s"]["user"]["userid"],$querystring); + $querystring = str_replace("{GROUPID}",$_SESSION["s"]["user"]["default_group"],$querystring); + $querystring = str_replace("{GROUPS}",$_SESSION["s"]["user"]["groups"],$querystring); + $table_idx = $this->formDef['db_table_idx']; + + $tmp_recordid = (isset($record[$table_idx]))?$record[$table_idx]:0; + $querystring = str_replace("{RECORDID}",$tmp_recordid,$querystring); + unset($tmp_recordid); + + $querystring = str_replace("{AUTHSQL}",$this->getAuthSQL('r'),$querystring); + + // Getting the records + $tmp_records = $app->db->queryAllRecords($querystring); + if($app->db->errorMessage != '') die($app->db->errorMessage); + if(is_array($tmp_records)) { + $key_field = $field["datasource"]["keyfield"]; + $value_field = $field["datasource"]["valuefield"]; + foreach($tmp_records as $tmp_rec) { + $tmp_id = $tmp_rec[$key_field]; + $values[$tmp_id] = $tmp_rec[$value_field]; + } + } + } + + if($field["datasource"]["type"] == 'CUSTOM') { + // Calls a custom class to validate this record + if($field["datasource"]['class'] != '' and $field["datasource"]['function'] != '') { + $datasource_class = $field["datasource"]['class']; + $datasource_function = $field["datasource"]['function']; + $app->uses($datasource_class); + $values = $app->$datasource_class->$datasource_function($field, $record); + } else { + $this->errorMessage .= "Custom datasource class or function is empty
\r\n"; + } + } + + return $values; + + } + + //* If the parameter 'valuelimit' is set + function applyValueLimit($limit,$values) { + + global $app; + + $limit_parts = explode(':',$limit); + + //* values are limited to a comma separated list + if($limit_parts[0] == 'list') { + $allowed = explode(',',$limit_parts[1]); + } + + //* values are limited to a field in the client settings + if($limit_parts[0] == 'client') { + if($_SESSION["s"]["user"]["typ"] == 'admin') { + return $values; + } else { + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + $allowed = explode(',',$client['lm']); + } + } + + //* values are limited to a field in the system settings + if($limit_parts[0] == 'system') { + $app->uses('getconf'); + $tmp_conf = $app->getconf->get_global_config($limit_parts[1]); + $tmp_key = $limit_parts[2]; + $allowed = $tmp_conf[$tmp_key]; + } + + $values_new = array(); + foreach($values as $key => $val) { + if(in_array($key,$allowed)) $values_new[$key] = $val; + } + + return $values_new; + } + + + /** + * Prepare the data record to show the data in a form. + * + * @param record = Datensatz als Array + * @param action = NEW oder EDIT + * @return record + */ + function getHTML($record, $tab, $action = 'NEW') { + + global $app; + + $this->action = $action; + + if(!is_array($this->formDef)) $app->error("No form definition found."); + if(!is_array($this->formDef['tabs'][$tab])) $app->error("The tab is empty or does not exist (TAB: $tab)."); + + $new_record = array(); + if($action == 'EDIT') { + $record = $this->decode($record,$tab); + if(is_array($record)) { + foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { + $val = $record[$key]; + + // If Datasource is set, get the data from there + if(isset($field['datasource']) && is_array($field['datasource'])) { + $field["value"] = $this->getDatasourceData($field, $record); + } + + // If a limitation for the values is set + if(isset($field['valuelimit']) && is_array($field["value"])) { + $field["value"] = $this->applyValueLimit($field['valuelimit'],$field["value"]); + } + + switch ($field['formtype']) { + case 'SELECT': + $out = ''; + if(is_array($field['value'])) { + foreach($field['value'] as $k => $v) { + $selected = ($k == $val)?' SELECTED':''; + $out .= "\r\n"; + } + } + $new_record[$key] = $out; + break; + case 'MULTIPLE': + if(is_array($field['value'])) { + + // Split + $vals = explode($field['separator'],$val); + + // write HTML + $out = ''; + foreach($field['value'] as $k => $v) { + + $selected = ''; + foreach($vals as $tvl) { + if(trim($tvl) == trim($k)) $selected = ' SELECTED'; + } + + $out .= "\r\n"; + } + } + $new_record[$key] = $out; + break; + + case 'PASSWORD': + $new_record[$key] = ''; + break; + + case 'CHECKBOX': + $checked = ($val == $field['value'][1])?' CHECKED':''; + $new_record[$key] = "\r\n"; + break; + + case 'CHECKBOXARRAY': + if(is_array($field['value'])) { + + // aufsplitten ergebnisse + $vals = explode($field['separator'],$val); + + // HTML schreiben + $out = ''; + foreach($field['value'] as $k => $v) { + + $checked = ''; + foreach($vals as $tvl) { + if(trim($tvl) == trim($k)) $checked = ' CHECKED'; + } + $out .= "\r\n"; + } + } + $new_record[$key] = $out; + break; + + case 'RADIO': + if(is_array($field['value'])) { + + // HTML schreiben + $out = ''; + foreach($field['value'] as $k => $v) { + $checked = ($k == $val)?' CHECKED':''; + $out .= "\r\n"; + } + } + $new_record[$key] = $out; + break; + + default: + $new_record[$key] = htmlspecialchars($record[$key]); + } + } + } + } else { + // Action: NEW + foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { + + // If Datasource is set, get the data from there + if(@is_array($field['datasource'])) { + $field["value"] = $this->getDatasourceData($field, $record); + } + + // If a limitation for the values is set + if(isset($field['valuelimit']) && is_array($field["value"])) { + $field["value"] = $this->applyValueLimit($field['valuelimit'],$field["value"]); + } + + switch ($field['formtype']) { + case 'SELECT': + if(is_array($field['value'])) { + $out = ''; + foreach($field['value'] as $k => $v) { + //$selected = ($k == $val)?' SELECTED':''; + $selected = ''; + $out .= "\r\n"; + } + } + if(isset($out)) $new_record[$key] = $out; + break; + case 'MULTIPLE': + if(is_array($field['value'])) { + + // aufsplitten ergebnisse + $vals = explode($field['separator'],$val); + + // HTML schreiben + $out = ''; + foreach($field['value'] as $k => $v) { + + $out .= "\r\n"; + } + } + $new_record[$key] = $out; + break; + + case 'PASSWORD': + $new_record[$key] = ''; + break; + + case 'CHECKBOX': + // $checked = (empty($field["default"]))?'':' CHECKED'; + $checked = ($field["default"] == $field['value'][1])?' CHECKED':''; + $new_record[$key] = "\r\n"; + break; + + case 'CHECKBOXARRAY': + if(is_array($field['value'])) { + + // aufsplitten ergebnisse + $vals = explode($field['separator'],$field["default"]); + + // HTML schreiben + $out = ''; + foreach($field['value'] as $k => $v) { + + $checked = ''; + foreach($vals as $tvl) { + if(trim($tvl) == trim($k)) $checked = ' CHECKED'; + } + $out .= "\r\n"; + } + } + $new_record[$key] = $out; + break; + + case 'RADIO': + if(is_array($field['value'])) { + + // HTML schreiben + $out = ''; + foreach($field['value'] as $k => $v) { + $checked = ($k == $field["default"])?' CHECKED':''; + $out .= "\r\n"; + } + } + $new_record[$key] = $out; + break; + + default: + $new_record[$key] = htmlspecialchars($field['default']); + } + } + + } + + if($this->debug == 1) $this->dbg($new_record); + + return $new_record; + } + + /** + * Rewrite the record data to be stored in the database + * and check values with regular expressions. + * + * @param record = Datensatz als Array + * @return record + */ + function encode($record,$tab) { + global $app; + + if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab is empty or does not exist (TAB: $tab)."); + //$this->errorMessage = ''; + + if(is_array($record)) { + foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { + + if(isset($field['validators']) && is_array($field['validators'])) $this->validateField($key, (isset($record[$key]))?$record[$key]:'', $field['validators']); + + switch ($field['datatype']) { + case 'VARCHAR': + if(!@is_array($record[$key])) { + $new_record[$key] = (isset($record[$key]))?$app->db->quote($record[$key]):''; + } else { + $new_record[$key] = implode($field['separator'],$record[$key]); + } + break; + case 'TEXT': + if(!is_array($record[$key])) { + $new_record[$key] = $app->db->quote($record[$key]); + } else { + $new_record[$key] = implode($field['separator'],$record[$key]); + } + break; + case 'DATE': + if($record[$key] > 0) { + list($tag,$monat,$jahr) = explode('.',$record[$key]); + $new_record[$key] = mktime(0,0,0,$monat,$tag,$jahr); + } else { + $new_record[$key] = 0; + } + break; + case 'INTEGER': + $new_record[$key] = (isset($record[$key]))?$record[$key]:0; + //if($new_record[$key] != $record[$key]) $new_record[$key] = $field['default']; + //if($key == 'refresh') die($record[$key]); + break; + case 'DOUBLE': + $new_record[$key] = $app->db->quote($record[$key]); + break; + case 'CURRENCY': + $new_record[$key] = str_replace(",",".",$record[$key]); + break; + } + + // The use of the field value is deprecated, use validators instead + if(isset($field['regex']) && $field['regex'] != '') { + // Enable that "." matches also newlines + $field['regex'] .= 's'; + if(!preg_match($field['regex'], $record[$key])) { + $errmsg = $field['errmsg']; + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } + } + + + } + } + return $new_record; + } + + /** + * process the validators for a given field. + * + * @param field_name = Name of the field + * @param field_value = value of the field + * @param validatoors = Array of validators + * @return record + */ + + function validateField($field_name, $field_value, $validators) { + + global $app; + + $escape = '`'; + + // loop trough the validators + foreach($validators as $validator) { + + switch ($validator['type']) { + case 'REGEX': + $validator['regex'] .= 's'; + if(!preg_match($validator['regex'], $field_value)) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + break; + case 'UNIQUE': + if($this->action == 'NEW') { + $num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM ".$escape.$this->formDef['db_table'].$escape. " WHERE $field_name = '".$app->db->quote($field_value)."'"); + if($num_rec["number"] > 0) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + } else { + $num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM ".$escape.$this->formDef['db_table'].$escape. " WHERE $field_name = '".$app->db->quote($field_value)."' AND ".$this->formDef['db_table_idx']." != ".$this->primary_id); + if($num_rec["number"] > 0) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + } + break; + case 'NOTEMPTY': + if(empty($field_value)) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + break; + case 'ISEMAIL': + if(!preg_match("/^\w+[\w.-]*\w+@\w+[\w.-]*\w+\.[a-z]{2,10}$/i", $field_value)) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + break; + case 'ISINT': + $tmpval = intval($field_value); + if($tmpval === 0 and !empty($field_value)) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + break; + case 'ISPOSITIVE': + if(!is_numeric($field_value) || $field_value <= 0){ + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + break; + case 'ISIPV4': + $vip=1; + if(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $field_value)){ + $groups=explode(".",$field_value); + foreach($groups as $group){ + if($group<0 OR $group>255) + $vip=0; + } + }else{$vip=0;} + if($vip==0) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + break; + case 'CUSTOM': + // Calls a custom class to validate this record + if($validator['class'] != '' and $validator['function'] != '') { + $validator_class = $validator['class']; + $validator_function = $validator['function']; + $app->uses($validator_class); + $this->errorMessage .= $app->$validator_class->$validator_function($field_name, $field_value, $validator); + } else { + $this->errorMessage .= "Custom validator class or function is empty
\r\n"; + } + break; + default: + $this->errorMessage .= "Unknown Validator: ".$validator['type']; + break; + } + + + } + + return true; + } + + /** + * Create the SQL staement. + * + * @param record = Datensatz als Array + * @param action = INSERT oder UPDATE + * @param primary_id + * @return record + */ + function getSQL($record, $tab, $action = 'INSERT', $primary_id = 0, $sql_ext_where = '') { + + global $app; + + // If there are no data records on the tab, return empty sql string + if(count($this->formDef['tabs'][$tab]['fields']) == 0) return ''; + + // checking permissions + if($this->formDef['auth'] == 'yes' && $_SESSION["s"]["user"]["typ"] != 'admin') { + if($action == "INSERT") { + if(!$this->checkPerm($primary_id,'i')) $this->errorMessage .= "Insert denied.
\r\n"; + } else { + if(!$this->checkPerm($primary_id,'u')) $this->errorMessage .= "Update denied.
\r\n"; + } + } + + $this->action = $action; + $this->primary_id = $primary_id; + + $record = $this->encode($record,$tab); + $sql_insert_key = ''; + $sql_insert_val = ''; + $sql_update = ''; + + if(!is_array($this->formDef)) $app->error("Keine Formulardefinition vorhanden."); + if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab ist leer oder existiert nicht (TAB: $tab)."); + + // gehe durch alle Felder des Tabs + if(is_array($record)) { + foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { + // Wenn es kein leeres Passwortfeld ist + if (!($field['formtype'] == 'PASSWORD' and $record[$key] == '')) { + // Erzeuge Insert oder Update Quelltext + if($action == "INSERT") { + if($field['formtype'] == 'PASSWORD') { + $sql_insert_key .= "`$key`, "; + if($field['encryption'] == 'CRYPT') { + $salt="$1$"; + for ($n=0;$n<11;$n++) { + $salt.=chr(mt_rand(64,126)); + } + $salt.="$"; + // $salt = substr(md5(time()),0,2); + $record[$key] = crypt($record[$key],$salt); + $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; + } elseif ($field['encryption'] == 'MYSQL') { + $sql_insert_val .= "PASSWORD('".$app->db->quote($record[$key])."'), "; + } elseif ($field['encryption'] == 'CLEARTEXT') { + $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; + } else { + $record[$key] = md5($record[$key]); + $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; + } + + } elseif ($field['formtype'] == 'CHECKBOX') { + $sql_insert_key .= "`$key`, "; + if($record[$key] == '') { + // if a checkbox is not set, we set it to the unchecked value + $sql_insert_val .= "'".$field['value'][0]."', "; + $record[$key] = $field['value'][0]; + } else { + $sql_insert_val .= "'".$record[$key]."', "; + } + } else { + $sql_insert_key .= "`$key`, "; + $sql_insert_val .= "'".$record[$key]."', "; + } + } else { + if($field['formtype'] == 'PASSWORD') { + if(isset($field['encryption']) && $field['encryption'] == 'CRYPT') { + $salt="$1$"; + for ($n=0;$n<11;$n++) { + $salt.=chr(mt_rand(64,126)); + } + $salt.="$"; + // $salt = substr(md5(time()),0,2); + $record[$key] = crypt($record[$key],$salt); + $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; + } elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') { + $sql_update .= "`$key` = PASSWORD('".$app->db->quote($record[$key])."'), "; + } elseif (isset($field['encryption']) && $field['encryption'] == 'CLEARTEXT') { + $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; + } else { + $record[$key] = md5($record[$key]); + $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; + } + + } elseif ($field['formtype'] == 'CHECKBOX') { + if($record[$key] == '') { + // if a checkbox is not set, we set it to the unchecked value + $sql_update .= "`$key` = '".$field['value'][0]."', "; + $record[$key] = $field['value'][0]; + } else { + $sql_update .= "`$key` = '".$record[$key]."', "; + } + } else { + $sql_update .= "`$key` = '".$record[$key]."', "; + } + } + } else { + // we unset the password filed, if empty to tell the datalog function + // that the password has not been changed + unset($record[$key]); + } + } + } + + + // Add backticks for incomplete table names + if(stristr($this->formDef['db_table'],'.')) { + $escape = ''; + } else { + $escape = '`'; + } + + + if($action == "INSERT") { + if($this->formDef['auth'] == 'yes') { + // Set user and group + $sql_insert_key .= "`sys_userid`, "; + $sql_insert_val .= ($this->formDef["auth_preset"]["userid"] > 0)?"'".$this->formDef["auth_preset"]["userid"]."', ":"'".$_SESSION["s"]["user"]["userid"]."', "; + $sql_insert_key .= "`sys_groupid`, "; + $sql_insert_val .= ($this->formDef["auth_preset"]["groupid"] > 0)?"'".$this->formDef["auth_preset"]["groupid"]."', ":"'".$_SESSION["s"]["user"]["default_group"]."', "; + $sql_insert_key .= "`sys_perm_user`, "; + $sql_insert_val .= "'".$this->formDef["auth_preset"]["perm_user"]."', "; + $sql_insert_key .= "`sys_perm_group`, "; + $sql_insert_val .= "'".$this->formDef["auth_preset"]["perm_group"]."', "; + $sql_insert_key .= "`sys_perm_other`, "; + $sql_insert_val .= "'".$this->formDef["auth_preset"]["perm_other"]."', "; + } + $sql_insert_key = substr($sql_insert_key,0,-2); + $sql_insert_val = substr($sql_insert_val,0,-2); + $sql = "INSERT INTO ".$escape.$this->formDef['db_table'].$escape." ($sql_insert_key) VALUES ($sql_insert_val)"; + } else { + if($this->formDef['auth'] == 'yes') { + if($primary_id != 0) { + $sql_update = substr($sql_update,0,-2); + $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->getAuthSQL('u')." AND ".$this->formDef['db_table_idx']." = ".$primary_id; + if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; + } else { + $app->error("Primary ID fehlt!"); + } + } else { + if($primary_id != 0) { + $sql_update = substr($sql_update,0,-2); + $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; + if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; + } else { + $app->error("Primary ID fehlt!"); + } + } + } + + return $sql; + } + + /** + * Debugging arrays. + * + * @param array_data + */ + function dbg($array_data) { + + echo "
";
+                print_r($array_data);
+                echo "
"; + + } + + + function showForm() { + global $app,$conf; + + if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen."); + + $active_tab = $this->getNextTab(); + + // go trough the tabs + foreach( $this->formDef["tabs"] as $key => $tab) { + + $tab['name'] = $key; + if($tab['name'] == $active_tab) { + + // If module is set, then set the template path relative to the module.. + if($this->module != '') $tab["template"] = "../".$this->module."/".$tab["template"]; + + // Generate the template if it does not exist yet. + + // Translate the title of the tab + $tab['title'] = $this->lng($tab['title']); + + if(!is_file($tab["template"])) { + $app->uses('tform_tpl_generator'); + $app->tform_tpl_generator->buildHTML($this->formDef,$tab['name']); + } + + $app->tpl->setInclude('content_tpl',$tab["template"]); + $tab["active"] = 1; + $_SESSION["s"]["form"]["tab"] = $tab['name']; + } else { + $tab["active"] = 0; + } + + // Unset unused variables. + unset($tab["fields"]); + unset($tab["plugins"]); + + $frmTab[] = $tab; + } + + // setting form tabs + $app->tpl->setLoop("formTab", $frmTab); + + // Set form action + $app->tpl->setVar('form_action',$this->formDef["action"]); + $app->tpl->setVar('form_active_tab',$active_tab); + + // Set form title + $form_hint = $this->lng($this->formDef["title"]); + if($this->formDef["description"] != '') $form_hint .= '
'.$this->lng($this->formDef["description"]).'
'; + $app->tpl->setVar('form_hint',$form_hint); + + // Set Wordbook for this form + + $app->tpl->setVar($this->wordbook); + } + + function getDataRecord($primary_id) { + global $app; + $escape = '`'; + $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; + return $app->db->queryOneRecord($sql); + } + + + function datalogSave($action,$primary_id, $record_old, $record_new) { + global $app,$conf; + + // Add backticks for incomplete table names. + if(stristr($this->formDef['db_table'],'.')) { + $escape = ''; + } else { + $escape = '`'; + } + + $this->diffrec = array(); + /* + if(is_array($record_new) && count($record_new) > 0) { + foreach($record_new as $key => $val) { + if(@$record_old[$key] != $val) { + // Record has changed + $diffrec[$key] = array('old' => @$record_old[$key], + 'new' => $val); + } + } + } elseif(is_array($record_old)) { + foreach($record_old as $key => $val) { + if($record_new[$key] != $val) { + // Record has changed + $diffrec[$key] = array('new' => $record_new[$key], + 'old' => $val); + } + } + } + $this->diffrec = $diffrec; + */ + + // Full diff records for ISPConfig, they have a different format then the simple diffrec + $diffrec_full = array(); + + if(is_array($record_old) && count($record_old) > 0) { + foreach($record_old as $key => $val) { + //if(isset($record_new[$key]) && $record_new[$key] != $val) { + if(!isset($record_new[$key]) || $record_new[$key] != $val) { + // Record has changed + $diffrec_full['old'][$key] = $val; + $diffrec_full['new'][$key] = $record_new[$key]; + $this->diffrec[$key] = array( 'new' => $record_new[$key], + 'old' => $val); + } else { + $diffrec_full['old'][$key] = $val; + $diffrec_full['new'][$key] = $val; + } + } + } elseif(is_array($record_new)) { + foreach($record_new as $key => $val) { + if(isset($record_new[$key]) && $record_old[$key] != $val) { + // Record has changed + $diffrec_full['new'][$key] = $val; + $diffrec_full['old'][$key] = $record_old[$key]; + $this->diffrec[$key] = array( 'old' => @$record_old[$key], + 'new' => $val); + } else { + $diffrec_full['new'][$key] = $val; + $diffrec_full['old'][$key] = $val; + } + } + } + + //$this->diffrec = $diffrec; + // Insert the server_id, if the record has a server_id + $server_id = (isset($record_old["server_id"]) && $record_old["server_id"] > 0)?$record_old["server_id"]:0; + if(isset($record_new["server_id"])) $server_id = $record_new["server_id"]; + + if(count($this->diffrec) > 0) { + $diffstr = addslashes(serialize($diffrec_full)); + $username = $app->db->quote($_SESSION["s"]["user"]["username"]); + $dbidx = $this->formDef['db_table_idx'].":".$primary_id; + // $action = ($action == 'INSERT')?'i':'u'; + + if($action == 'INSERT') $action = 'i'; + if($action == 'UPDATE') $action = 'u'; + if($action == 'DELETE') $action = 'd'; + $sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES ('".$this->formDef['db_table']."','$dbidx','$server_id','$action','".time()."','$username','$diffstr')"; + $app->db->query($sql); + } + + return true; + + } + + function getAuthSQL($perm) { + if($_SESSION["s"]["user"]["typ"] == 'admin') { + return '1'; + } else { + $groups = ( $_SESSION["s"]["user"]["groups"] ) ? $_SESSION["s"]["user"]["groups"] : 0; + $sql = '('; + $sql .= "(sys_userid = ".$_SESSION["s"]["user"]["userid"]." AND sys_perm_user like '%$perm%') OR "; + $sql .= "(sys_groupid IN (".$groups.") AND sys_perm_group like '%$perm%') OR "; + $sql .= "sys_perm_other like '%$perm%'"; + $sql .= ')'; + + return $sql; + } + } + + /* + This function checks if a user has the parmissions $perm for the data record with the ID $record_id + If record_id = 0, the the permissions are tested against the defaults of the form file. + */ + function checkPerm($record_id,$perm) { + global $app; + + if($record_id > 0) { + // Add backticks for incomplete table names. + if(stristr($this->formDef['db_table'],'.')) { + $escape = ''; + } else { + $escape = '`'; + } + + $sql = "SELECT ".$this->formDef['db_table_idx']." FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$record_id." AND ".$this->getAuthSQL($perm); + if($record = $app->db->queryOneRecord($sql)) { + return true; + } else { + return false; + } + } else { + $result = false; + if(@$this->formDef["auth_preset"]["userid"] == $_SESSION["s"]["user"]["userid"] && stristr($perm,$this->formDef["auth_preset"]["perm_user"])) $result = true; + if(@$this->formDef["auth_preset"]["groupid"] == $_SESSION["s"]["user"]["groupid"] && stristr($perm,$this->formDef["auth_preset"]["perm_group"])) $result = true; + if(@stristr($this->formDef["auth_preset"]["perm_other"],$perm)) $result = true; + + // if preset == 0, everyone can insert a record of this type + if($this->formDef["auth_preset"]["userid"] == 0 AND $this->formDef["auth_preset"]["groupid"] == 0 AND (@stristr($this->formDef["auth_preset"]["perm_user"],$perm) OR @stristr($this->formDef["auth_preset"]["perm_group"],$perm))) $result = true; + + return $result; + + } + + } + + function getNextTab() { + // Which tab is shown + if($this->errorMessage == '') { + // If there is no error + if(isset($_REQUEST["next_tab"]) && $_REQUEST["next_tab"] != '') { + // If the next tab is known + $active_tab = $_REQUEST["next_tab"]; + } else { + // else use the default tab + $active_tab = $this->formDef['tab_default']; + } + } else { + // Show the same tab again in case of an error + $active_tab = $_SESSION["s"]["form"]["tab"]; + } + + return $active_tab; + } + + function getCurrentTab() { + return $_SESSION["s"]["form"]["tab"]; + } + + function isReadonlyTab($tab) { + if(isset($this->formDef['tabs'][$tab]['readonly']) && $this->formDef['tabs'][$tab]['readonly'] == true) { + return true; + } else { + return false; + } + } + + + // translation function for forms, tries the form wordbook first and if this fails, it tries the global wordbook + function lng($msg) { + global $app; + + if(isset($this->wordbook[$msg])) { + return $this->wordbook[$msg]; + } else { + return $app->lng($msg); + } + + } + +} + ?> \ No newline at end of file diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php index 1abc316026..4ca70ef9ec 100644 --- a/interface/lib/classes/tform_actions.inc.php +++ b/interface/lib/classes/tform_actions.inc.php @@ -265,7 +265,7 @@ class tform_actions { function onError() { global $app, $conf; - $app->tpl->setVar("error","".$app->lng('Error').":
".$app->tform->errorMessage); + $app->tpl->setVar("error","
  • ".$app->tform->errorMessage."
  • "); $app->tpl->setVar($this->dataRecord); $this->onShow(); } diff --git a/interface/lib/classes/tform_tpl_generator.inc.php b/interface/lib/classes/tform_tpl_generator.inc.php index 6943f24c04..2955af0b2a 100644 --- a/interface/lib/classes/tform_tpl_generator.inc.php +++ b/interface/lib/classes/tform_tpl_generator.inc.php @@ -37,112 +37,85 @@ class tform_tpl_generator { $module = $_SESSION["s"]["module"]["name"]; $html = '

    +

    -
    '.$formDef['tabs'][$tab]['title'].''; +
    '.$formDef['tabs'][$tab]['title'].''; + $lang = array(); - + $html_reqestedelement = "* "; + foreach($formDef['tabs'][$tab]['fields'] as $key => $field) { + if ($field['required'] == true ) { $html_reqcode = $html_reqestedelement; } else { $html_reqcode = ''; } + switch ($field['formtype']) { case 'TEXT': - $html .= "\r\n - - *
    "; - } else { - $html .= ">"; - } - $html .= "\r\n
    "; + $html .= " +
    + + +
    "; break; case 'TEXTAREA': - $html .= "\r\n - - "; - if ($field['required'] == true ) { - $html .= "*
    "; - } - $html .= "\r\n
    "; + $html .= " +
    + + +
    "; break; case 'SELECT': - $html .= "\r\n - - "; - if ($field['required'] == true ) { - $html .= "*
    "; - } - $html .= "\r\n
    "; + $html .= " +
    + + +
    "; break; case 'MULTIPLE': - $html .= "\r\n - - "; - if ($field['required'] == true ) { - $html .= "*
    "; - } - $html .= "\r\n
    "; + $html .= " +
    + + +
    "; break; case 'PASSWORD': - $html .= "\r\n - - *
    "; - } else { - $html .= ">"; - } - $html .= "\r\n
    "; + $html .= " +
    + + +
    "; break; case 'CHECKBOX': - $html .= "\r\n - "; - if ($field['required'] == true ) { - $html .= " - {tmpl_var name='".$key."'} - - *
    "; - } else { - $html .= " - {tmpl_var name='".$key."'} - "; - } - $html .= "\r\n
    "; + $html .= " +
    +

    ".$html_reqcode."{tmpl_var name='".$key."_txt'}

    +
    + {tmpl_var name='".$key."'} +
    +
    "; break; case 'CHECKBOXARRAY': - $html .= "\r\n - {tmpl_var name='".$key."_txt'}"; - $html .= "
    - {tmpl_var name='".$key."'} -
    "; - $html .= "\r\n
    "; + $html .= " +
    +

    ".$html_reqcode."{tmpl_var name='".$key."_txt'}

    +
    + {tmpl_var name='".$key."'} +
    +
    "; break; case 'RADIO': - $html .= " - {tmpl_var name='".$key."_txt'}"; - $html .= "
    - {tmpl_var name='".$key."'} -
    "; - $html .= "\r\n
    "; + $html .= " +
    +

    ".$html_reqcode."{tmpl_var name='".$key."_txt'}

    +
    + {tmpl_var name='".$key."'} +
    +
    "; break; } @@ -162,7 +135,7 @@ class tform_tpl_generator { -
    +
    diff --git a/interface/web/admin/templates/firewall_edit.htm b/interface/web/admin/templates/firewall_edit.htm index 151d24a56a..c8d19463d9 100644 --- a/interface/web/admin/templates/firewall_edit.htm +++ b/interface/web/admin/templates/firewall_edit.htm @@ -1,30 +1,35 @@

    +

    - +
    -
    Firewall - - - - - - - - - - - - - - - {tmpl_var name='active'} - +
    Firewall +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/admin/templates/firewall_list.htm b/interface/web/admin/templates/firewall_list.htm index f8e28a5a8d..909545e97c 100644 --- a/interface/web/admin/templates/firewall_list.htm +++ b/interface/web/admin/templates/firewall_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/admin/templates/groups_edit.htm b/interface/web/admin/templates/groups_edit.htm index 4ada31d331..cf191d277b 100644 --- a/interface/web/admin/templates/groups_edit.htm +++ b/interface/web/admin/templates/groups_edit.htm @@ -1,22 +1,23 @@

    +

    - +
    -
    Groups - - - - - - - - +
    Groups +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/admin/templates/groups_list.htm b/interface/web/admin/templates/groups_list.htm index f942c0dd0d..f6a1b923f4 100644 --- a/interface/web/admin/templates/groups_list.htm +++ b/interface/web/admin/templates/groups_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/admin/templates/language_add.htm b/interface/web/admin/templates/language_add.htm index a140f75520..eeb1fdd620 100644 --- a/interface/web/admin/templates/language_add.htm +++ b/interface/web/admin/templates/language_add.htm @@ -1,29 +1,25 @@

    +

    - - -
    -
    - -
    -
    - +
    -
    Language Add - - - - - - - - - - +
    Language Add +
    + + +
    +
    + + +
    -
    + + +
    diff --git a/interface/web/admin/templates/language_complete.htm b/interface/web/admin/templates/language_complete.htm index 9d97c9e929..ef4cfc85be 100644 --- a/interface/web/admin/templates/language_complete.htm +++ b/interface/web/admin/templates/language_complete.htm @@ -1,23 +1,21 @@

    +

    - -
    -
    - -
    -
    -
    -
    Language Complete - - - - +
    Language Complete +
    + + +
    -
    + + +
    diff --git a/interface/web/admin/templates/language_edit.htm b/interface/web/admin/templates/language_edit.htm index b31237087c..a0ef32ec7f 100644 --- a/interface/web/admin/templates/language_edit.htm +++ b/interface/web/admin/templates/language_edit.htm @@ -1,11 +1,8 @@

    +

    - -
    -
    -
    Language File Edit: {tmpl_var name="file_path"} @@ -18,6 +15,7 @@
    + diff --git a/interface/web/admin/templates/language_export.htm b/interface/web/admin/templates/language_export.htm index 4135445590..b8c718b584 100644 --- a/interface/web/admin/templates/language_export.htm +++ b/interface/web/admin/templates/language_export.htm @@ -1,25 +1,21 @@

    +

    - - -
    -
    - -
    -
    - +
    -
    Language Export - - - - - - +
    Language Export +
    + + +
    -
    + + +
    diff --git a/interface/web/admin/templates/language_import.htm b/interface/web/admin/templates/language_import.htm index 14afc57b92..0547e55a6f 100644 --- a/interface/web/admin/templates/language_import.htm +++ b/interface/web/admin/templates/language_import.htm @@ -1,32 +1,28 @@ -

    - -
    - - -
    -
    - -
    -
    - -
    -
    Language Import - - - - - - - - - - -
    - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Language Import +
    + + +
    +
    +

    {tmpl_var name='language_overwrite_txt'}

    +
    + +
    +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/admin/templates/language_list.htm b/interface/web/admin/templates/language_list.htm index 54b67ec53b..9568bef10e 100644 --- a/interface/web/admin/templates/language_list.htm +++ b/interface/web/admin/templates/language_list.htm @@ -1,14 +1,17 @@

    +

    -
    Tools +
    Tools
    - - - - +
    + + +
    diff --git a/interface/web/admin/templates/server_config_fastcgi_edit.htm b/interface/web/admin/templates/server_config_fastcgi_edit.htm index af20a8873d..eb7b3c316b 100644 --- a/interface/web/admin/templates/server_config_fastcgi_edit.htm +++ b/interface/web/admin/templates/server_config_fastcgi_edit.htm @@ -1,42 +1,43 @@

    +

    - +
    -
    FastCGI - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    FastCGI +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/admin/templates/server_config_getmail_edit.htm b/interface/web/admin/templates/server_config_getmail_edit.htm index e8f93aa14d..01cab85153 100644 --- a/interface/web/admin/templates/server_config_getmail_edit.htm +++ b/interface/web/admin/templates/server_config_getmail_edit.htm @@ -1,18 +1,19 @@

    +

    - +
    -
    Getmail - - - - +
    Getmail +
    + + +
    -
    +
    diff --git a/interface/web/admin/templates/server_config_jailkit_edit.htm b/interface/web/admin/templates/server_config_jailkit_edit.htm index ddd8540d00..3f9824b785 100644 --- a/interface/web/admin/templates/server_config_jailkit_edit.htm +++ b/interface/web/admin/templates/server_config_jailkit_edit.htm @@ -1,26 +1,27 @@

    +

    - +
    -
    Jailkit - - - - - - - - - - - - +
    Jailkit +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/admin/templates/server_config_list.htm b/interface/web/admin/templates/server_config_list.htm index c03fcdbad9..d6584b6a0c 100644 --- a/interface/web/admin/templates/server_config_list.htm +++ b/interface/web/admin/templates/server_config_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm index 7b7b682551..b042526c1a 100644 --- a/interface/web/admin/templates/server_config_mail_edit.htm +++ b/interface/web/admin/templates/server_config_mail_edit.htm @@ -1,62 +1,65 @@

    +

    - +
    -
    Mail - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    Mail +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/admin/templates/server_config_server_edit.htm b/interface/web/admin/templates/server_config_server_edit.htm index 07e93c2262..b03b910b77 100644 --- a/interface/web/admin/templates/server_config_server_edit.htm +++ b/interface/web/admin/templates/server_config_server_edit.htm @@ -1,38 +1,41 @@

    +

    - +
    -
    Server - - - {tmpl_var name='auto_network_configuration'} - - - - - - - - - - - - - - - - - - - - - +
    Server +
    +

    {tmpl_var name='auto_network_configuration_txt'}

    +
    + {tmpl_var name='auto_network_configuration'} +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm index 969c01f87b..0a7d4c45f5 100644 --- a/interface/web/admin/templates/server_config_web_edit.htm +++ b/interface/web/admin/templates/server_config_web_edit.htm @@ -1,37 +1,34 @@ -

    - -
    - -
    -
    Web - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Web +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/admin/templates/server_edit_config.htm b/interface/web/admin/templates/server_edit_config.htm index be914febf1..d451f3966a 100644 --- a/interface/web/admin/templates/server_edit_config.htm +++ b/interface/web/admin/templates/server_edit_config.htm @@ -1,18 +1,19 @@

    +

    - +
    -
    Config - - - - +
    Config +
    + + +
    -
    +
    diff --git a/interface/web/admin/templates/server_edit_services.htm b/interface/web/admin/templates/server_edit_services.htm index d67288cbef..abca203219 100644 --- a/interface/web/admin/templates/server_edit_services.htm +++ b/interface/web/admin/templates/server_edit_services.htm @@ -1,46 +1,61 @@

    +

    - +
    -
    Services - - - - - - - {tmpl_var name='mail_server'} - - - - {tmpl_var name='web_server'} - - - - {tmpl_var name='dns_server'} - - - - {tmpl_var name='file_server'} - - - - {tmpl_var name='db_server'} - - - - {tmpl_var name='vserver_server'} - - - - - +
    Services +
    + + +
    +
    +

    {tmpl_var name='mail_server_txt'}

    +
    + {tmpl_var name='mail_server'} +
    +
    +
    +

    {tmpl_var name='web_server_txt'}

    +
    + {tmpl_var name='web_server'} +
    +
    +
    +

    {tmpl_var name='dns_server_txt'}

    +
    + {tmpl_var name='dns_server'} +
    +
    +
    +

    {tmpl_var name='file_server_txt'}

    +
    + {tmpl_var name='file_server'} +
    +
    +
    +

    {tmpl_var name='db_server_txt'}

    +
    + {tmpl_var name='db_server'} +
    +
    +
    +

    {tmpl_var name='vserver_server_txt'}

    +
    + {tmpl_var name='vserver_server'} +
    +
    +
    + + +
    -
    +
    diff --git a/interface/web/admin/templates/server_ip_edit.htm b/interface/web/admin/templates/server_ip_edit.htm index 89c0b785c6..67e60f3c4d 100644 --- a/interface/web/admin/templates/server_ip_edit.htm +++ b/interface/web/admin/templates/server_ip_edit.htm @@ -1,26 +1,31 @@

    +

    - +
    -
    IP Address - - - - - - - - - - - {tmpl_var name='virtualhost'} - +
    IP Address +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='virtualhost_txt'}

    +
    + {tmpl_var name='virtualhost'} +
    +
    -
    +
    diff --git a/interface/web/admin/templates/server_ip_list.htm b/interface/web/admin/templates/server_ip_list.htm index 7f9f069c27..06b12e0ffc 100644 --- a/interface/web/admin/templates/server_ip_list.htm +++ b/interface/web/admin/templates/server_ip_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/admin/templates/server_list.htm b/interface/web/admin/templates/server_list.htm index a254ffd753..b0ca2628a5 100644 --- a/interface/web/admin/templates/server_list.htm +++ b/interface/web/admin/templates/server_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/admin/templates/software_package_list.htm b/interface/web/admin/templates/software_package_list.htm index 83a55c9189..dd465ac6b2 100644 --- a/interface/web/admin/templates/software_package_list.htm +++ b/interface/web/admin/templates/software_package_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/admin/templates/software_repo_edit.htm b/interface/web/admin/templates/software_repo_edit.htm index db6f38e884..90ed5e6f92 100644 --- a/interface/web/admin/templates/software_repo_edit.htm +++ b/interface/web/admin/templates/software_repo_edit.htm @@ -1,34 +1,37 @@

    +

    - +
    -
    Repository - - - - - - - - - - - - - - - - - - - {tmpl_var name='active'} - +
    Repository +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/admin/templates/software_repo_list.htm b/interface/web/admin/templates/software_repo_list.htm index bebdfb5834..6fc1d0896d 100644 --- a/interface/web/admin/templates/software_repo_list.htm +++ b/interface/web/admin/templates/software_repo_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/admin/templates/software_update_list.htm b/interface/web/admin/templates/software_update_list.htm index 219e8b6d4b..10a0acf12b 100644 --- a/interface/web/admin/templates/software_update_list.htm +++ b/interface/web/admin/templates/software_update_list.htm @@ -1,18 +1,19 @@

    +

    -
    Tools +
    Tools
    - - - - +
    + + +
    diff --git a/interface/web/admin/templates/system_config_mail_edit.htm b/interface/web/admin/templates/system_config_mail_edit.htm index 5dd2dc3ea1..06769da774 100644 --- a/interface/web/admin/templates/system_config_mail_edit.htm +++ b/interface/web/admin/templates/system_config_mail_edit.htm @@ -1,19 +1,21 @@

    +

    - +
    -
    Mail - - - {tmpl_var name='mailboxlist_webmail_link'} - - +
    Mail +
    +

    {tmpl_var name='mailboxlist_webmail_link_txt'}

    +
    + {tmpl_var name='mailboxlist_webmail_link'} +
    +
    -
    +
    diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm index 8120d4caff..0e6e700930 100644 --- a/interface/web/admin/templates/system_config_sites_edit.htm +++ b/interface/web/admin/templates/system_config_sites_edit.htm @@ -1,35 +1,37 @@

    +

    - +
    -
    Sites - - - - - - - - - - - - - - - - - - - {tmpl_var name='dblist_phpmyadmin_link'} - - +
    Sites +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='dblist_phpmyadmin_link_txt'}

    +
    + {tmpl_var name='dblist_phpmyadmin_link'} +
    +
    -
    +
    diff --git a/interface/web/admin/templates/users_groups_edit.htm b/interface/web/admin/templates/users_groups_edit.htm index cc98bb8a72..3182d71762 100644 --- a/interface/web/admin/templates/users_groups_edit.htm +++ b/interface/web/admin/templates/users_groups_edit.htm @@ -1,22 +1,27 @@

    +

    - +
    -
    Groups - - - - - - {tmpl_var name='groups_txt'} -
    {tmpl_var name='groups'}
    -
    +
    Groups +
    + + +
    +
    +

    {tmpl_var name='groups_txt'}

    +
    + {tmpl_var name='groups'} +
    +
    -
    +
    diff --git a/interface/web/admin/templates/users_list.htm b/interface/web/admin/templates/users_list.htm index 2442f4ca11..f7ef8bde4f 100644 --- a/interface/web/admin/templates/users_list.htm +++ b/interface/web/admin/templates/users_list.htm @@ -1,59 +1,60 @@ -

    - -
    - -
    -
    Tools -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="username"}{tmpl_var name="vorname"}{tmpl_var name="name"}{tmpl_var name="ort"} - -
    -
    -
    - -
    +

    +

    + +
    + +
    +
    Tools +
    + +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    {tmpl_var name="username"}{tmpl_var name="vorname"}{tmpl_var name="name"}{tmpl_var name="ort"} + +
    +
    +
    + +
    diff --git a/interface/web/admin/templates/users_user_edit.htm b/interface/web/admin/templates/users_user_edit.htm index 9e485ba0c7..6063e32db5 100644 --- a/interface/web/admin/templates/users_user_edit.htm +++ b/interface/web/admin/templates/users_user_edit.htm @@ -1,49 +1,64 @@

    +

    - +
    -
    Users - - - - - - - - - - {tmpl_var name='password_strength_txt'} -
     
    -
    - - {tmpl_var name='modules_txt'} -
    {tmpl_var name='modules'}
    -
    - - - - - - {tmpl_var name='app_theme_txt'} -
    {tmpl_var name='app_theme'}
    -
    - {tmpl_var name='typ_txt'} -
    {tmpl_var name='typ'}
    -
    - - - {tmpl_var name='active'} - - - - - +
    Users +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='password_strength_txt'}

    +
    +

     

    +
    +
    +

    {tmpl_var name='modules_txt'}

    +
    + {tmpl_var name='modules'} +
    +
    +
    + + +
    +
    +

    {tmpl_var name='app_theme_txt'}

    +
    + {tmpl_var name='app_theme'} +
    +
    +
    +

    {tmpl_var name='typ_txt'}

    +
    + {tmpl_var name='typ'} +
    +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + +
    -
    +
    diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm index a767d82dc1..6d2625028c 100644 --- a/interface/web/client/templates/client_edit_address.htm +++ b/interface/web/client/templates/client_edit_address.htm @@ -1,90 +1,98 @@

    +

    -
    Address - - - - - - - *
    -
    - - - *
    -
    - - - *
    -
    - - {tmpl_var name='password_strength_txt'} -
     
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    Address +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='password_strength_txt'}

    +
    +

     

    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm index ee6d4c6574..2eba2227ff 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -1,139 +1,159 @@ -

    - -
    - -
    -
    Templates -
    - - -
    - - - - - - - {tmpl_var name='template_additional_list'} - -
    -
    Limits - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MB - - - - - - - - - - - - - - - - - - - - - - - - {tmpl_var name='web_php_options'} - - - - - - - - - - - - - - - - - - - - {tmpl_var name='ssh_chroot'} - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Tools +
    + + +
    +
    +
    + +
    +
    Limits +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='web_php_options_txt'}

    +
    + {tmpl_var name='web_php_options'} +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='ssh_chroot_txt'}

    +
    + {tmpl_var name='ssh_chroot'} +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm index 57d1035f5d..f98dc23a92 100644 --- a/interface/web/client/templates/client_template_edit_limits.htm +++ b/interface/web/client/templates/client_template_edit_limits.htm @@ -1,98 +1,99 @@

    +

    -
    +
    -
    Limits - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    Limits +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/client/templates/client_template_edit_template.htm b/interface/web/client/templates/client_template_edit_template.htm index 12bafecb78..6c9d905340 100644 --- a/interface/web/client/templates/client_template_edit_template.htm +++ b/interface/web/client/templates/client_template_edit_template.htm @@ -1,25 +1,28 @@

    +

    -
    +
    -
    Template - - - - - - - *
    -
    +
    Template +
    + + +
    +
    + + +
    -
    +
    - +
    diff --git a/interface/web/client/templates/client_template_list.htm b/interface/web/client/templates/client_template_list.htm index 81e5e74f82..b2943d4ddd 100644 --- a/interface/web/client/templates/client_template_list.htm +++ b/interface/web/client/templates/client_template_list.htm @@ -1,52 +1,53 @@ -

    - -
    - -
    -
    Tools -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="template_type"}{tmpl_var name="template_name"} - -
    -
    -
    - +

    +

    + +
    + +
    +
    Tools +
    + +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    {tmpl_var name="template_type"}{tmpl_var name="template_name"} + +
    +
    +
    +
    \ No newline at end of file diff --git a/interface/web/client/templates/clients_list.htm b/interface/web/client/templates/clients_list.htm index 00ba943904..534d586e8e 100644 --- a/interface/web/client/templates/clients_list.htm +++ b/interface/web/client/templates/clients_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/dns/templates/dns_a_edit.htm b/interface/web/dns/templates/dns_a_edit.htm index 7ee7e2e368..2004e6c2d5 100644 --- a/interface/web/dns/templates/dns_a_edit.htm +++ b/interface/web/dns/templates/dns_a_edit.htm @@ -1,35 +1,38 @@ -

    - -
    - -
    -
    DNS A - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS A +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_a_list.htm b/interface/web/dns/templates/dns_a_list.htm index fdfe12262e..89df42ef46 100644 --- a/interface/web/dns/templates/dns_a_list.htm +++ b/interface/web/dns/templates/dns_a_list.htm @@ -1,82 +1,82 @@ -
    -
    Tools -
    - - - - - - - - - - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="type"}{tmpl_var name="name"}{tmpl_var name="data"}{tmpl_var name="aux"} - -
    -
    -
    +
    +
    Tools +
    + + + + + + + + + + +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    {tmpl_var name="type"}{tmpl_var name="name"}{tmpl_var name="data"}{tmpl_var name="aux"} + +
    +
    +
    diff --git a/interface/web/dns/templates/dns_alias_edit.htm b/interface/web/dns/templates/dns_alias_edit.htm index d28f6be77e..928535a471 100644 --- a/interface/web/dns/templates/dns_alias_edit.htm +++ b/interface/web/dns/templates/dns_alias_edit.htm @@ -1,35 +1,38 @@ -

    - -
    - -
    -
    DNS ALIAS - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS ALIAS +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_cname_edit.htm b/interface/web/dns/templates/dns_cname_edit.htm index 20ff6e3656..47d590e14d 100644 --- a/interface/web/dns/templates/dns_cname_edit.htm +++ b/interface/web/dns/templates/dns_cname_edit.htm @@ -1,35 +1,38 @@ -

    - -
    - -
    -
    DNS CNAME - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS CNAME +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_hinfo_edit.htm b/interface/web/dns/templates/dns_hinfo_edit.htm index 856d837532..7dc9a2e0a5 100644 --- a/interface/web/dns/templates/dns_hinfo_edit.htm +++ b/interface/web/dns/templates/dns_hinfo_edit.htm @@ -1,35 +1,38 @@ -

    - -
    - -
    -
    DNS HINFO - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS HINFO +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_mx_edit.htm b/interface/web/dns/templates/dns_mx_edit.htm index 9641444f2a..bab2c1df80 100644 --- a/interface/web/dns/templates/dns_mx_edit.htm +++ b/interface/web/dns/templates/dns_mx_edit.htm @@ -1,39 +1,42 @@ -

    - -
    - -
    -
    DNS mx - - - - - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS mx +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_ns_edit.htm b/interface/web/dns/templates/dns_ns_edit.htm index 486c396b77..f86e7e8a3f 100644 --- a/interface/web/dns/templates/dns_ns_edit.htm +++ b/interface/web/dns/templates/dns_ns_edit.htm @@ -1,35 +1,38 @@ -

    - -
    - -
    -
    DNS ns - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS ns +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_ptr_edit.htm b/interface/web/dns/templates/dns_ptr_edit.htm index b923ef90c2..881d2ecb96 100644 --- a/interface/web/dns/templates/dns_ptr_edit.htm +++ b/interface/web/dns/templates/dns_ptr_edit.htm @@ -1,35 +1,38 @@ -

    - -
    - -
    -
    DNS ptr - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS ptr +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_records_edit.htm b/interface/web/dns/templates/dns_records_edit.htm index 5a60043cb7..1feb3f970c 100644 --- a/interface/web/dns/templates/dns_records_edit.htm +++ b/interface/web/dns/templates/dns_records_edit.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/dns/templates/dns_rp_edit.htm b/interface/web/dns/templates/dns_rp_edit.htm index 9959e96c25..1fafc6af3f 100644 --- a/interface/web/dns/templates/dns_rp_edit.htm +++ b/interface/web/dns/templates/dns_rp_edit.htm @@ -1,35 +1,38 @@ -

    - -
    - -
    -
    DNS RP - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS RP +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_soa_edit.htm b/interface/web/dns/templates/dns_soa_edit.htm index e848108f4b..9616ea7006 100644 --- a/interface/web/dns/templates/dns_soa_edit.htm +++ b/interface/web/dns/templates/dns_soa_edit.htm @@ -1,74 +1,86 @@ -

    - -
    - -
    -
    DNS Zone - - - - - - - - - - - - - - - - - - - e.g. domain.tld. - - - - e.g. ns1.domain.tld. - - - - e.g. webmaster.domain.tld. - - - - Seconds - - - - Seconds - - - - Seconds - - - - Seconds - - - - Seconds - - - - - - - - {tmpl_var name='active'} - -
    - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS Zone + +
    + + +
    +
    + + +
    +
    + +
    + + +
    +
    +
    + + +

    e.g. domain.tld.

    +
    +
    + + +

    e.g. ns1.domain.tld.

    +
    +
    + + +

    e.g. webmaster.domain.tld.

    +
    +
    + +  Seconds +
    +
    + +  Seconds +
    +
    + +  Seconds +
    +
    + +  Seconds +
    +
    + +  Seconds +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_soa_list.htm b/interface/web/dns/templates/dns_soa_list.htm index 3edece814b..14c4903bed 100644 --- a/interface/web/dns/templates/dns_soa_list.htm +++ b/interface/web/dns/templates/dns_soa_list.htm @@ -1,61 +1,62 @@ -

    - -
    - -
    -
    Tools -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="server_id"}{tmpl_var name="origin"}{tmpl_var name="ns"}{tmpl_var name="mbox"} - -
    -
    -
    - -
    +

    +

    + +
    + +
    +
    Tools +
    + +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    {tmpl_var name="server_id"}{tmpl_var name="origin"}{tmpl_var name="ns"}{tmpl_var name="mbox"} + +
    +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_srv_edit.htm b/interface/web/dns/templates/dns_srv_edit.htm index 3fe0b28ee0..9c217addc6 100644 --- a/interface/web/dns/templates/dns_srv_edit.htm +++ b/interface/web/dns/templates/dns_srv_edit.htm @@ -1,35 +1,38 @@ -

    - -
    - -
    -
    DNS SRV - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS SRV +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_template_edit.htm b/interface/web/dns/templates/dns_template_edit.htm index 574a3efd0f..7b695ac25f 100644 --- a/interface/web/dns/templates/dns_template_edit.htm +++ b/interface/web/dns/templates/dns_template_edit.htm @@ -1,30 +1,35 @@

    +

    -
    DNS Template - - - - - - {tmpl_var name='fields_txt'} -
    {tmpl_var name='fields'}
    -
    - - - - - - - {tmpl_var name='visible'} - +
    DNS Template +
    + + +
    +
    +

    {tmpl_var name='fields_txt'}

    +
    + {tmpl_var name='fields'} +
    +
    +
    + + +
    +
    +

    {tmpl_var name='visible_txt'}

    +
    + {tmpl_var name='visible'} +
    +
    -
    +
    diff --git a/interface/web/dns/templates/dns_template_list.htm b/interface/web/dns/templates/dns_template_list.htm index c19a04b19e..83b38bcc5b 100644 --- a/interface/web/dns/templates/dns_template_list.htm +++ b/interface/web/dns/templates/dns_template_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/dns/templates/dns_txt_edit.htm b/interface/web/dns/templates/dns_txt_edit.htm index 4d6b928a94..b465ed84d3 100644 --- a/interface/web/dns/templates/dns_txt_edit.htm +++ b/interface/web/dns/templates/dns_txt_edit.htm @@ -1,35 +1,38 @@ -

    - -
    - -
    -
    DNS TXT - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS TXT +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/dns/templates/dns_wizard.htm b/interface/web/dns/templates/dns_wizard.htm index 42fce51cd6..e788f7d604 100644 --- a/interface/web/dns/templates/dns_wizard.htm +++ b/interface/web/dns/templates/dns_wizard.htm @@ -1,62 +1,68 @@ -

    - -
    - -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    -
    -
    - -
    +

    +

    + +
    + +
    +
    DNS Zone +
    + + +
    + +
    + + +
    +
    + + +
    +
    + +
    + + +
    +
    + +
    + + +
    +
    + +
    + + +
    +
    + +
    + + +
    +
    + +
    + + +
    +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/help/templates/support_message_edit.htm b/interface/web/help/templates/support_message_edit.htm index c222155421..305a47a2b9 100644 --- a/interface/web/help/templates/support_message_edit.htm +++ b/interface/web/help/templates/support_message_edit.htm @@ -1,29 +1,30 @@

    +

    -
    Message - - - - - - - - - - - - - - +
    Message +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/help/templates/support_message_list.htm b/interface/web/help/templates/support_message_list.htm index b0b7a393c1..524766c165 100644 --- a/interface/web/help/templates/support_message_list.htm +++ b/interface/web/help/templates/support_message_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/help/templates/support_message_view.htm b/interface/web/help/templates/support_message_view.htm index 86ef139961..37cb1e4b3f 100644 --- a/interface/web/help/templates/support_message_view.htm +++ b/interface/web/help/templates/support_message_view.htm @@ -1,22 +1,23 @@

    +

    -
    Message - - - - - - - - +
    Message +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/js/uni-form/jquery.js b/interface/web/js/uni-form/jquery.js new file mode 100644 index 0000000000..f954b6b3ce --- /dev/null +++ b/interface/web/js/uni-form/jquery.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('7(1C 1w.6=="T"){1w.T=1w.T;B 6=u(a,c){7(1w==q)v 1p 6(a,c);a=a||17;7(6.1t(a))v 1p 6(17)[6.E.27?"27":"2O"](a);7(1C a=="23"){B m=/^[^<]*(<(.|\\s)+>)[^>]*$/.2Q(a);7(m)a=6.3k([m[1]]);J v 1p 6(c).2o(a)}v q.6r(a.1l==2y&&a||(a.3Y||a.I&&a!=1w&&!a.24&&a[0]!=T&&a[0].24)&&6.3M(a)||[a])};7(1C $!="T")6.2S$=$;B $=6;6.E=6.8p={3Y:"1.1.2",8q:u(){v q.I},I:0,2b:u(1T){v 1T==T?6.3M(q):q[1T]},2r:u(a){B L=6(a);L.6p=q;v L},6r:u(a){q.I=0;[].1g.14(q,a);v q},K:u(E,1E){v 6.K(q,E,1E)},2h:u(1c){B 4c=-1;q.K(u(i){7(q==1c)4c=i});v 4c},1I:u(1Y,O,C){B 1c=1Y;7(1Y.1l==3t)7(O==T)v q.I&&6[C||"1I"](q[0],1Y)||T;J{1c={};1c[1Y]=O}v q.K(u(2h){P(B H 1x 1c)6.1I(C?q.1q:q,H,6.H(q,1c[H],C,2h,H))})},1m:u(1Y,O){v q.1I(1Y,O,"30")},2L:u(e){7(1C e=="23")v q.3u().3r(17.8t(e));B t="";6.K(e||q,u(){6.K(q.2I,u(){7(q.24!=8)t+=q.24!=1?q.60:6.E.2L([q])})});v t},2K:u(){B a=6.3k(1A);v q.K(u(){B b=a[0].3l(U);q.11.2X(b,q);22(b.1b)b=b.1b;b.4C(q)})},3r:u(){v q.3j(1A,U,1,u(a){q.4C(a)})},5i:u(){v q.3j(1A,U,-1,u(a){q.2X(a,q.1b)})},5j:u(){v q.3j(1A,12,1,u(a){q.11.2X(a,q)})},5t:u(){v q.3j(1A,12,-1,u(a){q.11.2X(a,q.2e)})},4g:u(){v q.6p||6([])},2o:u(t){v q.2r(6.31(q,u(a){v 6.2o(t,a)}),t)},4Y:u(4N){v q.2r(6.31(q,u(a){B a=a.3l(4N!=T?4N:U);a.$1H=16;v a}))},1D:u(t){v q.2r(6.1t(t)&&6.2q(q,u(2z,2h){v t.14(2z,[2h])})||6.3z(t,q))},2g:u(t){v q.2r(t.1l==3t&&6.3z(t,q,U)||6.2q(q,u(a){v(t.1l==2y||t.3Y)?6.3y(a,t)<0:a!=t}))},1M:u(t){v q.2r(6.2k(q.2b(),t.1l==3t?6(t).2b():t.I!=T&&(!t.1f||t.1f=="8v")?t:[t]))},4l:u(1s){v 1s?6.1D(1s,q).r.I>0:12},1a:u(1a){v 1a==T?(q.I?q[0].O:16):q.1I("O",1a)},4U:u(1a){v 1a==T?(q.I?q[0].2t:16):q.3u().3r(1a)},3j:u(1E,1P,3Z,E){B 4Y=q.I>1;B a=6.3k(1E);7(3Z<0)a.8w();v q.K(u(){B 1c=q;7(1P&&6.1f(q,"1P")&&6.1f(a[0],"3m"))1c=q.5J("20")[0]||q.4C(17.6n("20"));6.K(a,u(){E.14(1c,[4Y?q.3l(U):q])})})}};6.1z=6.E.1z=u(){B 1O=1A[0],a=1;7(1A.I==1){1O=q;a=0}B H;22(H=1A[a++])P(B i 1x H)1O[i]=H[i];v 1O};6.1z({8x:u(){7(6.2S$)$=6.2S$;v 6},1t:u(E){v!!E&&1C E!="23"&&!E.1f&&1C E[0]=="T"&&/u/i.1n(E+"")},4B:u(D){v D.66&&D.5I&&!D.5I.64},1f:u(D,Y){v D.1f&&D.1f.3K()==Y.3K()},K:u(1c,E,1E){7(1c.I==T)P(B i 1x 1c)E.14(1c[i],1E||[i,1c[i]]);J P(B i=0,6q=1c.I;i<6q;i++)7(E.14(1c[i],1E||[i,1c[i]])===12)3O;v 1c},H:u(D,O,C,2h,H){7(6.1t(O))O=O.3n(D,[2h]);B 6s=/z-?2h|7P-?8A|1d|58|8B-?28/i;v O&&O.1l==3Q&&C=="30"&&!6s.1n(H)?O+"4S":O},19:{1M:u(D,c){6.K(c.3o(/\\s+/),u(i,Q){7(!6.19.2V(D.19,Q))D.19+=(D.19?" ":"")+Q})},2f:u(D,c){D.19=c?6.2q(D.19.3o(/\\s+/),u(Q){v!6.19.2V(c,Q)}).6t(" "):""},2V:u(t,c){t=t.19||t;c=c.1R(/([\\.\\\\\\+\\*\\?\\[\\^\\]\\$\\(\\)\\{\\}\\=\\!\\<\\>\\|\\:])/g,"\\\\$1");v t&&1p 4v("(^|\\\\s)"+c+"(\\\\s|$)").1n(t)}},4d:u(e,o,f){P(B i 1x o){e.1q["1N"+i]=e.1q[i];e.1q[i]=o[i]}f.14(e,[]);P(B i 1x o)e.1q[i]=e.1q["1N"+i]},1m:u(e,p){7(p=="28"||p=="3V"){B 1N={},46,3P,d=["7d","8C","8D","8E"];6.K(d,u(){1N["8F"+q]=0;1N["8G"+q+"8H"]=0});6.4d(e,1N,u(){7(6.1m(e,"1h")!="1Z"){46=e.8I;3P=e.8J}J{e=6(e.3l(U)).2o(":4j").5l("2Z").4g().1m({4n:"1G",45:"8K",1h:"2D",7I:"0",8M:"0"}).5z(e.11)[0];B 3d=6.1m(e.11,"45");7(3d==""||3d=="4b")e.11.1q.45="6x";46=e.6y;3P=e.6z;7(3d==""||3d=="4b")e.11.1q.45="4b";e.11.33(e)}});v p=="28"?46:3P}v 6.30(e,p)},30:u(D,H,53){B L;7(H=="1d"&&6.W.1j)v 6.1I(D.1q,"1d");7(H=="4h"||H=="2v")H=6.W.1j?"3T":"2v";7(!53&&D.1q[H])L=D.1q[H];J 7(17.44&&17.44.4W){7(H=="2v"||H=="3T")H="4h";H=H.1R(/([A-Z])/g,"-$1").4m();B Q=17.44.4W(D,16);7(Q)L=Q.55(H);J 7(H=="1h")L="1Z";J 6.4d(D,{1h:"2D"},u(){B c=17.44.4W(q,"");L=c&&c.55(H)||""})}J 7(D.51){B 56=H.1R(/\\-(\\w)/g,u(m,c){v c.3K()});L=D.51[H]||D.51[56]}v L},3k:u(a){B r=[];6.K(a,u(i,1r){7(!1r)v;7(1r.1l==3Q)1r=1r.6C();7(1C 1r=="23"){B s=6.35(1r),1V=17.6n("1V"),2i=[];B 2K=!s.18("<1u")&&[1,"<42>",""]||(!s.18("<6D")||!s.18("<20")||!s.18("<6E"))&&[1,"<1P>",""]||!s.18("<3m")&&[2,"<1P><20>",""]||(!s.18("<6F")||!s.18("<6G"))&&[3,"<1P><20><3m>",""]||[0,"",""];1V.2t=2K[1]+s+2K[2];22(2K[0]--)1V=1V.1b;7(6.W.1j){7(!s.18("<1P")&&s.18("<20")<0)2i=1V.1b&&1V.1b.2I;J 7(2K[1]=="<1P>"&&s.18("<20")<0)2i=1V.2I;P(B n=2i.I-1;n>=0;--n)7(6.1f(2i[n],"20")&&!2i[n].2I.I)2i[n].11.33(2i[n])}1r=[];P(B i=0,l=1V.2I.I;im[3]-0",2a:"m[3]-0==i",5q:"m[3]-0==i",2u:"i==0",2T:"i==r.I-1",5R:"i%2==0",5S:"i%2","2a-3s":"6.2a(a.11.1b,m[3],\'2e\',a)==a","2u-3s":"6.2a(a.11.1b,1,\'2e\')==a","2T-3s":"6.2a(a.11.7n,1,\'5s\')==a","7p-3s":"6.2B(a.11.1b).I==1",5u:"a.1b",3u:"!a.1b",5v:"6.E.2L.14([a]).18(m[3])>=0",3i:\'a.C!="1G"&&6.1m(a,"1h")!="1Z"&&6.1m(a,"4n")!="1G"\',1G:\'a.C=="1G"||6.1m(a,"1h")=="1Z"||6.1m(a,"4n")=="1G"\',7v:"!a.2W",2W:"a.2W",2Z:"a.2Z",2Y:"a.2Y||6.1I(a,\'2Y\')",2L:"a.C==\'2L\'",4j:"a.C==\'4j\'",5x:"a.C==\'5x\'",4G:"a.C==\'4G\'",5y:"a.C==\'5y\'",4R:"a.C==\'4R\'",5A:"a.C==\'5A\'",5B:"a.C==\'5B\'",3x:\'a.C=="3x"||6.1f(a,"3x")\',5C:"/5C|42|7A|3x/i.1n(a.1f)"},".":"6.19.2V(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"z&&!z.18(m[4])","$=":"z&&z.2U(z.I - m[4].I,m[4].I)==m[4]","*=":"z&&z.18(m[4])>=0","":"z",4u:u(m){v["",m[1],m[3],m[2],m[5]]},5P:"z=a[m[3]];7(!z||/5E|3e/.1n(m[3]))z=6.1I(a,m[3]);"},"[":"6.2o(m[2],a).I"},5M:[/^\\[ *(@)([a-2m-3C-]*) *([!*$^=]*) *(\'?"?)(.*?)\\4 *\\]/i,/^(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]/,/^(:)([a-2m-3C-]*)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/i,/^([:.#]*)([a-2m-3C*-]*)/i],1Q:[/^(\\/?\\.\\.)/,"a.11",/^(>|\\/)/,"6.2B(a.1b)",/^(\\+)/,"6.2a(a,2,\'2e\')",/^(~)/,u(a){B s=6.2B(a.11.1b);v s.3N(6.3y(a,s)+1)}],3z:u(1s,1U,2g){B 1N,Q=[];22(1s&&1s!=1N){1N=1s;B f=6.1D(1s,1U,2g);1s=f.t.1R(/^\\s*,\\s*/,"");Q=2g?1U=f.r:6.2k(Q,f.r)}v Q},2o:u(t,1B){7(1C t!="23")v[t];7(1B&&!1B.24)1B=16;1B=1B||17;7(!t.18("//")){1B=1B.4H;t=t.2U(2,t.I)}J 7(!t.18("/")){1B=1B.4H;t=t.2U(1,t.I);7(t.18("/")>=1)t=t.2U(t.18("/"),t.I)}B L=[1B],2c=[],2T=16;22(t&&2T!=t){B r=[];2T=t;t=6.35(t).1R(/^\\/\\//i,"");B 3B=12;B 1J=/^[\\/>]\\s*([a-2m-9*-]+)/i;B m=1J.2Q(t);7(m){6.K(L,u(){P(B c=q.1b;c;c=c.2e)7(c.24==1&&(6.1f(c,m[1])||m[1]=="*"))r.1g(c)});L=r;t=t.1R(1J,"");7(t.18(" ")==0)5F;3B=U}J{P(B i=0;i<6.1Q.I;i+=2){B 1J=6.1Q[i];B m=1J.2Q(t);7(m){r=L=6.31(L,6.1t(6.1Q[i+1])?6.1Q[i+1]:u(a){v 40(6.1Q[i+1])});t=6.35(t.1R(1J,""));3B=U;3O}}}7(t&&!3B){7(!t.18(",")){7(L[0]==1B)L.4L();6.2k(2c,L);r=L=[1B];t=" "+t.2U(1,t.I)}J{B 34=/^([a-2m-3C-]+)(#)([a-2m-9\\\\*2S-]*)/i;B m=34.2Q(t);7(m){m=[0,m[2],m[3],m[1]]}J{34=/^([#.]?)([a-2m-9\\\\*2S-]*)/i;m=34.2Q(t)}7(m[1]=="#"&&L[L.I-1].4X){B 2l=L[L.I-1].4X(m[2]);7(6.W.1j&&2l&&2l.2J!=m[2])2l=6(\'[@2J="\'+m[2]+\'"]\',L[L.I-1])[0];L=r=2l&&(!m[3]||6.1f(2l,m[3]))?[2l]:[]}J{7(m[1]==".")B 4r=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");6.K(L,u(){B 3E=m[1]!=""||m[0]==""?"*":m[2];7(6.1f(q,"7J")&&3E=="*")3E="3g";6.2k(r,m[1]!=""&&L.I!=1?6.4x(q,[],m[1],m[2],4r):q.5J(3E))});7(m[1]=="."&&L.I==1)r=6.2q(r,u(e){v 4r.1n(e.19)});7(m[1]=="#"&&L.I==1){B 5K=r;r=[];6.K(5K,u(){7(q.36("2J")==m[2]){r=[q];v 12}})}L=r}t=t.1R(34,"")}}7(t){B 1a=6.1D(t,r);L=r=1a.r;t=6.35(1a.t)}}7(L&&L[0]==1B)L.4L();6.2k(2c,L);v 2c},1D:u(t,r,2g){22(t&&/^[a-z[({<*:.#]/i.1n(t)){B p=6.5M,m;6.K(p,u(i,1J){m=1J.2Q(t);7(m){t=t.7M(m[0].I);7(6.1s[m[1]].4u)m=6.1s[m[1]].4u(m);v 12}});7(m[1]==":"&&m[2]=="2g")r=6.1D(m[3],r,U).r;J 7(m[1]=="."){B 1J=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");r=6.2q(r,u(e){v 1J.1n(e.19||"")},2g)}J{B f=6.1s[m[1]];7(1C f!="23")f=6.1s[m[1]][m[2]];40("f = u(a,i){"+(6.1s[m[1]].5P||"")+"v "+f+"}");r=6.2q(r,f,2g)}}v{r:r,t:t}},4x:u(o,r,1Q,Y,1J){P(B s=o.1b;s;s=s.2e)7(s.24==1){B 1M=U;7(1Q==".")1M=s.19&&1J.1n(s.19);J 7(1Q=="#")1M=s.36("2J")==Y;7(1M)r.1g(s);7(1Q=="#"&&r.I)3O;7(s.1b)6.4x(s,r,1Q,Y,1J)}v r},4z:u(D){B 4A=[];B Q=D.11;22(Q&&Q!=17){4A.1g(Q);Q=Q.11}v 4A},2a:u(Q,1i,3Z,D){1i=1i||1;B 1T=0;P(;Q;Q=Q[3Z]){7(Q.24==1)1T++;7(1T==1i||1i=="5R"&&1T%2==0&&1T>1&&Q==D||1i=="5S"&&1T%2==1&&Q==D)v Q}},2B:u(n,D){B r=[];P(;n;n=n.2e){7(n.24==1&&(!D||n!=D))r.1g(n)}v r}});6.G={1M:u(S,C,1o,F){7(6.W.1j&&S.3L!=T)S=1w;7(F)1o.F=F;7(!1o.2A)1o.2A=q.2A++;7(!S.$1H)S.$1H={};B 38=S.$1H[C];7(!38){38=S.$1H[C]={};7(S["39"+C])38[0]=S["39"+C]}38[1o.2A]=1o;S["39"+C]=q.5Y;7(!q.1k[C])q.1k[C]=[];q.1k[C].1g(S)},2A:1,1k:{},2f:u(S,C,1o){7(S.$1H){B i,j,k;7(C&&C.C){1o=C.1o;C=C.C}7(C&&S.$1H[C])7(1o)5U S.$1H[C][1o.2A];J P(i 1x S.$1H[C])5U S.$1H[C][i];J P(j 1x S.$1H)q.2f(S,j);P(k 1x S.$1H[C])7(k){k=U;3O}7(!k)S["39"+C]=16}},1S:u(C,F,S){F=6.3M(F||[]);7(!S)6.K(q.1k[C]||[],u(){6.G.1S(C,F,q)});J{B 1o=S["39"+C],1a,E=6.1t(S[C]);7(1o){F.61(q.2j({C:C,1O:S}));7((1a=1o.14(S,F))!==12)q.4F=U}7(E&&1a!==12)S[C]();q.4F=12}},5Y:u(G){7(1C 6=="T"||6.G.4F)v;G=6.G.2j(G||1w.G||{});B 3R;B c=q.$1H[G.C];B 1E=[].3N.3n(1A,1);1E.61(G);P(B j 1x c){1E[0].1o=c[j];1E[0].F=c[j].F;7(c[j].14(q,1E)===12){G.2n();G.2H();3R=12}}7(6.W.1j)G.1O=G.2n=G.2H=G.1o=G.F=16;v 3R},2j:u(G){7(!G.1O&&G.63)G.1O=G.63;7(G.65==T&&G.67!=T){B e=17.4H,b=17.64;G.65=G.67+(e.68||b.68);G.7Y=G.7Z+(e.6c||b.6c)}7(6.W.2N&&G.1O.24==3){B 3a=G;G=6.1z({},3a);G.1O=3a.1O.11;G.2n=u(){v 3a.2n()};G.2H=u(){v 3a.2H()}}7(!G.2n)G.2n=u(){q.3R=12};7(!G.2H)G.2H=u(){q.82=U};v G}};6.E.1z({3U:u(C,F,E){v q.K(u(){6.G.1M(q,C,E||F,F)})},6u:u(C,F,E){v q.K(u(){6.G.1M(q,C,u(G){6(q).6f(G);v(E||F).14(q,1A)},F)})},6f:u(C,E){v q.K(u(){6.G.2f(q,C,E)})},1S:u(C,F){v q.K(u(){6.G.1S(C,F,q)})},3X:u(){B a=1A;v q.6j(u(e){q.4M=q.4M==0?1:0;e.2n();v a[q.4M].14(q,[e])||12})},83:u(f,g){u 4O(e){B p=(e.C=="41"?e.84:e.85)||e.86;22(p&&p!=q)2G{p=p.11}2w(e){p=q};7(p==q)v 12;v(e.C=="41"?f:g).14(q,[e])}v q.41(4O).6k(4O)},27:u(f){7(6.3W)f.14(17,[6]);J{6.3c.1g(u(){v f.14(q,[6])})}v q}});6.1z({3W:12,3c:[],27:u(){7(!6.3W){6.3W=U;7(6.3c){6.K(6.3c,u(){q.14(17)});6.3c=16}7(6.W.3h||6.W.3f)17.87("6o",6.27,12)}}});1p u(){6.K(("88,8a,2O,8b,8d,52,6j,8e,"+"8f,8g,8h,41,6k,8j,42,"+"4R,8k,8l,8m,2C").3o(","),u(i,o){6.E[o]=u(f){v f?q.3U(o,f):q.1S(o)}});7(6.W.3h||6.W.3f)17.8n("6o",6.27,12);J 7(6.W.1j){17.8o("<8r"+"8s 2J=62 8u=U "+"3e=//:><\\/2d>");B 2d=17.4X("62");7(2d)2d.37=u(){7(q.3D!="1X")v;q.11.33(q);6.27()};2d=16}J 7(6.W.2N)6.50=3L(u(){7(17.3D=="8y"||17.3D=="1X"){4p(6.50);6.50=16;6.27()}},10);6.G.1M(1w,"2O",6.27)};7(6.W.1j)6(1w).6u("52",u(){B 1k=6.G.1k;P(B C 1x 1k){B 4Z=1k[C],i=4Z.I;7(i&&C!=\'52\')6w 6.G.2f(4Z[i-1],C);22(--i)}});6.E.1z({6A:u(V,21,M){q.2O(V,21,M,1)},2O:u(V,21,M,1W){7(6.1t(V))v q.3U("2O",V);M=M||u(){};B C="5d";7(21)7(6.1t(21)){M=21;21=16}J{21=6.3g(21);C="5V"}B 4e=q;6.3v({V:V,C:C,F:21,1W:1W,1X:u(2P,15){7(15=="2M"||!1W&&15=="5L")4e.1I("2t",2P.3G).4V().K(M,[2P.3G,15,2P]);J M.14(4e,[2P.3G,15,2P])}});v q},6B:u(){v 6.3g(q)},4V:u(){v q.2o("2d").K(u(){7(q.3e)6.59(q.3e);J 6.4a(q.2L||q.6H||q.2t||"")}).4g()}});7(!1w.3p)3p=u(){v 1p 6I("6K.6M")};6.K("5m,5Q,5O,5W,5N,5H".3o(","),u(i,o){6.E[o]=u(f){v q.3U(o,f)}});6.1z({2b:u(V,F,M,C,1W){7(6.1t(F)){M=F;F=16}v 6.3v({V:V,F:F,2M:M,4t:C,1W:1W})},6Q:u(V,F,M,C){v 6.2b(V,F,M,C,1)},59:u(V,M){v 6.2b(V,16,M,"2d")},6S:u(V,F,M){v 6.2b(V,F,M,"6m")},6U:u(V,F,M,C){7(6.1t(F)){M=F;F={}}v 6.3v({C:"5V",V:V,F:F,2M:M,4t:C})},6X:u(29){6.3q.29=29},6Y:u(5c){6.1z(6.3q,5c)},3q:{1k:U,C:"5d",29:0,5r:"70/x-73-3w-77",5h:U,48:U,F:16},3S:{},3v:u(s){s=6.1z({},6.3q,s);7(s.F){7(s.5h&&1C s.F!="23")s.F=6.3g(s.F);7(s.C.4m()=="2b"){s.V+=((s.V.18("?")>-1)?"&":"?")+s.F;s.F=16}}7(s.1k&&!6.4E++)6.G.1S("5m");B 4y=12;B N=1p 3p();N.7j(s.C,s.V,s.48);7(s.F)N.3A("7l-7m",s.5r);7(s.1W)N.3A("7o-4K-7q",6.3S[s.V]||"7s, 7t 7w 7x 4o:4o:4o 7z");N.3A("X-7B-7C","3p");7(N.7E)N.3A("7F","7G");7(s.5G)s.5G(N);7(s.1k)6.G.1S("5H",[N,s]);B 37=u(4s){7(N&&(N.3D==4||4s=="29")){4y=U;7(3I){4p(3I);3I=16}B 15;2G{15=6.5Z(N)&&4s!="29"?s.1W&&6.69(N,s.V)?"5L":"2M":"2C";7(15!="2C"){B 3F;2G{3F=N.4P("6b-4K")}2w(e){}7(s.1W&&3F)6.3S[s.V]=3F;B F=6.6i(N,s.4t);7(s.2M)s.2M(F,15);7(s.1k)6.G.1S("5N",[N,s])}J 6.3J(s,N,15)}2w(e){15="2C";6.3J(s,N,15,e)}7(s.1k)6.G.1S("5O",[N,s]);7(s.1k&&!--6.4E)6.G.1S("5Q");7(s.1X)s.1X(N,15);7(s.48)N=16}};B 3I=3L(37,13);7(s.29>0)57(u(){7(N){N.7N();7(!4y)37("29")}},s.29);2G{N.7Q(s.F)}2w(e){6.3J(s,N,16,e)}7(!s.48)37();v N},3J:u(s,N,15,e){7(s.2C)s.2C(N,15,e);7(s.1k)6.G.1S("5W",[N,s,e])},4E:0,5Z:u(r){2G{v!r.15&&7V.7W=="4G:"||(r.15>=5X&&r.15<7X)||r.15==6d||6.W.2N&&r.15==T}2w(e){}v 12},69:u(N,V){2G{B 6e=N.4P("6b-4K");v N.15==6d||6e==6.3S[V]||6.W.2N&&N.15==T}2w(e){}v 12},6i:u(r,C){B 4Q=r.4P("8c-C");B F=!C&&4Q&&4Q.18("N")>=0;F=C=="N"||F?r.8i:r.3G;7(C=="2d")6.4a(F);7(C=="6m")40("F = "+F);7(C=="4U")6("<1V>").4U(F).4V();v F},3g:u(a){B s=[];7(a.1l==2y||a.3Y)6.K(a,u(){s.1g(2x(q.Y)+"="+2x(q.O))});J P(B j 1x a)7(a[j]&&a[j].1l==2y)6.K(a[j],u(){s.1g(2x(j)+"="+2x(q))});J s.1g(2x(j)+"="+2x(a[j]));v s.6t("&")},4a:u(F){7(1w.54)1w.54(F);J 7(6.W.2N)1w.57(F,0);J 40.3n(1w,F)}});6.E.1z({1L:u(R,M){B 1G=q.1D(":1G");R?1G.26({28:"1L",3V:"1L",1d:"1L"},R,M):1G.K(u(){q.1q.1h=q.2E?q.2E:"";7(6.1m(q,"1h")=="1Z")q.1q.1h="2D"});v q},1K:u(R,M){B 3i=q.1D(":3i");R?3i.26({28:"1K",3V:"1K",1d:"1K"},R,M):3i.K(u(){q.2E=q.2E||6.1m(q,"1h");7(q.2E=="1Z")q.2E="2D";q.1q.1h="1Z"});v q},5g:6.E.3X,3X:u(E,4I){B 1E=1A;v 6.1t(E)&&6.1t(4I)?q.5g(E,4I):q.K(u(){6(q)[6(q).4l(":1G")?"1L":"1K"].14(6(q),1E)})},7a:u(R,M){v q.26({28:"1L"},R,M)},7c:u(R,M){v q.26({28:"1K"},R,M)},7f:u(R,M){v q.K(u(){B 5k=6(q).4l(":1G")?"1L":"1K";6(q).26({28:5k},R,M)})},7r:u(R,M){v q.26({1d:"1L"},R,M)},7u:u(R,M){v q.26({1d:"1K"},R,M)},7y:u(R,43,M){v q.26({1d:43},R,M)},26:u(H,R,1v,M){v q.1F(u(){q.2F=6.1z({},H);B 1u=6.R(R,1v,M);P(B p 1x H){B e=1p 6.3b(q,1u,p);7(H[p].1l==3Q)e.2s(e.Q(),H[p]);J e[H[p]](H)}})},1F:u(C,E){7(!E){E=C;C="3b"}v q.K(u(){7(!q.1F)q.1F={};7(!q.1F[C])q.1F[C]=[];q.1F[C].1g(E);7(q.1F[C].I==1)E.14(q)})}});6.1z({R:u(R,1v,E){B 1u=R&&R.1l==7K?R:{1X:E||!E&&1v||6.1t(R)&&R,25:R,1v:E&&1v||1v&&1v.1l!=4w&&1v};1u.25=(1u.25&&1u.25.1l==3Q?1u.25:{7R:7S,7T:5X}[1u.25])||7U;1u.1N=1u.1X;1u.1X=u(){6.6a(q,"3b");7(6.1t(1u.1N))1u.1N.14(q)};v 1u},1v:{},1F:{},6a:u(D,C){C=C||"3b";7(D.1F&&D.1F[C]){D.1F[C].4L();B f=D.1F[C][0];7(f)f.14(D)}},3b:u(D,1e,H){B z=q;B y=D.1q;B 4D=6.1m(D,"1h");y.5T="1G";z.a=u(){7(1e.49)1e.49.14(D,[z.2p]);7(H=="1d")6.1I(y,"1d",z.2p);J 7(6l(z.2p))y[H]=6l(z.2p)+"4S";y.1h="2D"};z.6v=u(){v 4T(6.1m(D,H))};z.Q=u(){B r=4T(6.30(D,H));v r&&r>-8z?r:z.6v()};z.2s=u(4f,43){z.4J=(1p 5o()).5w();z.2p=4f;z.a();z.4q=3L(u(){z.49(4f,43)},13)};z.1L=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1L=U;z.2s(0,D.1y[H]);7(H!="1d")y[H]="5a"};z.1K=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1K=U;z.2s(D.1y[H],0)};z.3X=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();7(4D=="1Z"){1e.1L=U;7(H!="1d")y[H]="5a";z.2s(0,D.1y[H])}J{1e.1K=U;z.2s(D.1y[H],0)}};z.49=u(32,47){B t=(1p 5o()).5w();7(t>1e.25+z.4J){4p(z.4q);z.4q=16;z.2p=47;z.a();7(D.2F)D.2F[H]=U;B 2c=U;P(B i 1x D.2F)7(D.2F[i]!==U)2c=12;7(2c){y.5T="";y.1h=4D;7(6.1m(D,"1h")=="1Z")y.1h="2D";7(1e.1K)y.1h="1Z";7(1e.1K||1e.1L)P(B p 1x D.2F)7(p=="1d")6.1I(y,p,D.1y[p]);J y[p]=""}7(2c&&6.1t(1e.1X))1e.1X.14(D)}J{B n=t-q.4J;B p=n/1e.25;z.2p=1e.1v&&6.1v[1e.1v]?6.1v[1e.1v](p,n,32,(47-32),1e.25):((-6h.7O(p*6h.8L)/2)+0.5)*(47-32)+32;z.a()}}}})}',62,545,'||||||jQuery|if|||||||||||||||||||this||||function|return||||||var|type|elem|fn|data|event|prop|length|else|each|ret|callback|xml|value|for|cur|speed|element|undefined|true|url|browser||name|||parentNode|false||apply|status|null|document|indexOf|className|val|firstChild|obj|opacity|options|nodeName|push|display|result|msie|global|constructor|css|test|handler|new|style|arg|expr|isFunction|opt|easing|window|in|orig|extend|arguments|context|typeof|filter|args|queue|hidden|events|attr|re|hide|show|add|old|target|table|token|replace|trigger|num|elems|div|ifModified|complete|key|none|tbody|params|while|string|nodeType|duration|animate|ready|height|timeout|nth|get|done|script|nextSibling|remove|not|index|tb|fix|merge|oid|z0|preventDefault|find|now|grep|pushStack|custom|innerHTML|first|cssFloat|catch|encodeURIComponent|Array|el|guid|sibling|error|block|oldblock|curAnim|try|stopPropagation|childNodes|id|wrap|text|success|safari|load|res|exec|al|_|last|substr|has|disabled|insertBefore|selected|checked|curCSS|map|firstNum|removeChild|re2|trim|getAttribute|onreadystatechange|handlers|on|originalEvent|fx|readyList|parPos|src|opera|param|mozilla|visible|domManip|clean|cloneNode|tr|call|split|XMLHttpRequest|ajaxSettings|append|child|String|empty|ajax|form|button|inArray|multiFilter|setRequestHeader|foundToken|9_|readyState|tag|modRes|responseText|second|ival|handleError|toUpperCase|setInterval|makeArray|slice|break|oWidth|Number|returnValue|lastModified|styleFloat|bind|width|isReady|toggle|jquery|dir|eval|mouseover|select|to|defaultView|position|oHeight|lastNum|async|step|globalEval|static|pos|swap|self|from|end|float|alpha|radio|inv|is|toLowerCase|visibility|00|clearInterval|timer|rec|isTimeout|dataType|_resort|RegExp|Function|getAll|requestDone|parents|matched|isXMLDoc|appendChild|oldDisplay|active|triggered|file|documentElement|fn2|startTime|Modified|shift|lastToggle|deep|handleHover|getResponseHeader|ct|submit|px|parseFloat|html|evalScripts|getComputedStyle|getElementById|clone|els|safariTimer|currentStyle|unload|force|execScript|getPropertyValue|newProp|setTimeout|zoom|getScript|1px|sl|settings|GET|rl|check|_toggle|processData|prepend|before|state|removeAttr|ajaxStart|lt|Date|gt|eq|contentType|previousSibling|after|parent|contains|getTime|checkbox|password|appendTo|image|reset|input|webkit|href|continue|beforeSend|ajaxSend|ownerDocument|getElementsByTagName|tmp|notmodified|parse|ajaxSuccess|ajaxComplete|_prefix|ajaxStop|even|odd|overflow|delete|POST|ajaxError|200|handle|httpSuccess|nodeValue|unshift|__ie_init|srcElement|body|pageX|tagName|clientX|scrollLeft|httpNotModified|dequeue|Last|scrollTop|304|xmlRes|unbind|100|Math|httpData|click|mouseout|parseInt|json|createElement|DOMContentLoaded|prevObject|ol|setArray|exclude|join|one|max|do|relative|clientHeight|clientWidth|loadIfModified|serialize|toString|thead|tfoot|td|th|textContent|ActiveXObject|htmlFor|Microsoft|class|XMLHTTP|readOnly|gi|match|getIfModified|9999|getJSON|getAttributeNode|post|setAttribute|ig|ajaxTimeout|ajaxSetup|concat|application|userAgent|compatible|www|compatMode|CSS1Compat|next|urlencoded|siblings|children|slideDown|prependTo|slideUp|Top|insertAfter|slideToggle|removeAttribute|addClass|removeClass|open|toggleClass|Content|Type|lastChild|If|only|Since|fadeIn|Thu|01|fadeOut|enabled|Jan|1970|fadeTo|GMT|textarea|Requested|With|prev|overrideMimeType|Connection|close|boxModel|right|object|Object|navigator|substring|abort|cos|font|send|slow|600|fast|400|location|protocol|300|pageY|clientY|method|action|cancelBubble|hover|fromElement|toElement|relatedTarget|removeEventListener|blur|readonly|focus|resize|content|scroll|dblclick|mousedown|mouseup|mousemove|responseXML|change|keydown|keypress|keyup|addEventListener|write|prototype|size|scr|ipt|createTextNode|defer|FORM|reverse|noConflict|loaded|10000|weight|line|Bottom|Right|Left|padding|border|Width|offsetHeight|offsetWidth|absolute|PI|left'.split('|'),0,{})) diff --git a/interface/web/js/uni-form/uni-form.jquery.js b/interface/web/js/uni-form/uni-form.jquery.js new file mode 100644 index 0000000000..9786dde6c1 --- /dev/null +++ b/interface/web/js/uni-form/uni-form.jquery.js @@ -0,0 +1,41 @@ +jQuery.fn.uniform = function(settings) { + settings = jQuery.extend({ + valid_class : 'valid', + invalid_class : 'invalid', + focused_class : 'focused', + holder_class : 'ctrlHolder', + field_selector : 'input, select, textarea' + }, settings); + + return this.each(function() { + var form = jQuery(this); + + // Focus specific control holder + var focusControlHolder = function(element) { + var parent = element.parent(); + + while(typeof(parent) == 'object') { + if(parent) { + if(parent[0] && (parent[0].className.indexOf(settings.holder_class) >= 0)) { + parent.addClass(settings.focused_class); + return; + } // if + } // if + parent = jQuery(parent.parent()); + } // while + }; + + // Select form fields and attach them higlighter functionality + form.find(settings.field_selector).focus(function() { + form.find('.' + settings.focused_class).removeClass(settings.focused_class); + focusControlHolder(jQuery(this)); + }).blur(function() { + form.find('.' + settings.focused_class).removeClass(settings.focused_class); + }); + }); +}; + +// Auto set on page load... +$(document).ready(function() { + jQuery('form.uniForm').uniform(); +}); \ No newline at end of file diff --git a/interface/web/login/templates/index.htm b/interface/web/login/templates/index.htm index 5f19c0828d..ad7709b139 100644 --- a/interface/web/login/templates/index.htm +++ b/interface/web/login/templates/index.htm @@ -1,32 +1,35 @@ -

    Login

    - - \ No newline at end of file +

    Login

    +

    + + diff --git a/interface/web/login/templates/password_reset.htm b/interface/web/login/templates/password_reset.htm index 03ae077fb7..f3f99d2250 100644 --- a/interface/web/login/templates/password_reset.htm +++ b/interface/web/login/templates/password_reset.htm @@ -1,32 +1,33 @@

    Password Reset

    +

    - -
    -
    - -
    + +

    - + +

    ERROR

    +
    +
    -
    - - - *
    -
    - - - *
    -
    +
    Password reset +
    + + +
    +
    + + +
    - + -
    +
    -
    \ No newline at end of file +
    diff --git a/interface/web/mail/templates/mail_alias_edit.htm b/interface/web/mail/templates/mail_alias_edit.htm index 8ce690a1a3..512d0ece4b 100644 --- a/interface/web/mail/templates/mail_alias_edit.htm +++ b/interface/web/mail/templates/mail_alias_edit.htm @@ -1,27 +1,36 @@

    +

    -
    Email Alias - - - @ - - - - - - - - {tmpl_var name='active'} - +
    Email Alias +
    +

    * {tmpl_var name='email_txt'}

    +
    + + + +
    +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/mail/templates/mail_alias_list.htm b/interface/web/mail/templates/mail_alias_list.htm index 98c1373f9b..671a0fbe9d 100644 --- a/interface/web/mail/templates/mail_alias_list.htm +++ b/interface/web/mail/templates/mail_alias_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/mail_blacklist_edit.htm b/interface/web/mail/templates/mail_blacklist_edit.htm index 16db8e6420..752e5cd9ab 100644 --- a/interface/web/mail/templates/mail_blacklist_edit.htm +++ b/interface/web/mail/templates/mail_blacklist_edit.htm @@ -1,31 +1,38 @@

    +

    -
    Blacklist - - - - - - - - - - - - - - - {tmpl_var name='active'} - +
    Blacklist +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    - -
    + +
    diff --git a/interface/web/mail/templates/mail_blacklist_list.htm b/interface/web/mail/templates/mail_blacklist_list.htm index b38a1f5d62..29ad203099 100644 --- a/interface/web/mail/templates/mail_blacklist_list.htm +++ b/interface/web/mail/templates/mail_blacklist_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/mail_content_filter_edit.htm b/interface/web/mail/templates/mail_content_filter_edit.htm index 0fae05bbae..be0c7200c1 100644 --- a/interface/web/mail/templates/mail_content_filter_edit.htm +++ b/interface/web/mail/templates/mail_content_filter_edit.htm @@ -1,38 +1,47 @@

    +

    -
    Filter - - - - - - - - - - - - - - - - - - - - - - - {tmpl_var name='active'} - +
    Filter +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/mail/templates/mail_content_filter_list.htm b/interface/web/mail/templates/mail_content_filter_list.htm index 4ad767d215..9548b88936 100644 --- a/interface/web/mail/templates/mail_content_filter_list.htm +++ b/interface/web/mail/templates/mail_content_filter_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/mail_domain_catchall_edit.htm b/interface/web/mail/templates/mail_domain_catchall_edit.htm index 2a65a7ce9e..8117511b1f 100644 --- a/interface/web/mail/templates/mail_domain_catchall_edit.htm +++ b/interface/web/mail/templates/mail_domain_catchall_edit.htm @@ -1,27 +1,36 @@

    +

    -
    Email Catchall - - - @ - - - - - - - - {tmpl_var name='active'} - +
    Email Catchall +
    +

    * {tmpl_var name='email_txt'}

    +
    + + + +
    +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/mail/templates/mail_domain_catchall_list.htm b/interface/web/mail/templates/mail_domain_catchall_list.htm index 69760da04d..7bf6381abe 100644 --- a/interface/web/mail/templates/mail_domain_catchall_list.htm +++ b/interface/web/mail/templates/mail_domain_catchall_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/mail_domain_edit.htm b/interface/web/mail/templates/mail_domain_edit.htm index 62174947ea..68ab821721 100644 --- a/interface/web/mail/templates/mail_domain_edit.htm +++ b/interface/web/mail/templates/mail_domain_edit.htm @@ -1,49 +1,59 @@ -

    - -
    - -
    -
    Domain - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Domain + +
    + + +
    +
    + + +
    +
    + + +
    + + +
    +
    + +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/mail/templates/mail_domain_list.htm b/interface/web/mail/templates/mail_domain_list.htm index 39a37ee49a..1039d5fdb8 100644 --- a/interface/web/mail/templates/mail_domain_list.htm +++ b/interface/web/mail/templates/mail_domain_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/mail_forward_edit.htm b/interface/web/mail/templates/mail_forward_edit.htm index 489196b8cc..9e9091b3dc 100644 --- a/interface/web/mail/templates/mail_forward_edit.htm +++ b/interface/web/mail/templates/mail_forward_edit.htm @@ -1,28 +1,34 @@

    +

    -
    Email Forward - - - @ - - - - - - - - - {tmpl_var name='active'} - +
    Email Forward +
    +

    * {tmpl_var name='email_txt'}

    +
    + + + +
    +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/mail/templates/mail_forward_list.htm b/interface/web/mail/templates/mail_forward_list.htm index f333a76790..7d0313a6aa 100644 --- a/interface/web/mail/templates/mail_forward_list.htm +++ b/interface/web/mail/templates/mail_forward_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/mail_get_edit.htm b/interface/web/mail/templates/mail_get_edit.htm index eb58c0970f..c57aa6ffeb 100644 --- a/interface/web/mail/templates/mail_get_edit.htm +++ b/interface/web/mail/templates/mail_get_edit.htm @@ -1,48 +1,51 @@

    +

    -
    Get Email - - - - - - - - - - - - - - - - - - - - {tmpl_var name='source_delete'} - - - - - - - - {tmpl_var name='active'} - +
    Get Email +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='source_delete_txt'}

    +
    + {tmpl_var name='source_delete'} +
    +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/mail/templates/mail_get_list.htm b/interface/web/mail/templates/mail_get_list.htm index 092a1f704a..1072e416c0 100644 --- a/interface/web/mail/templates/mail_get_list.htm +++ b/interface/web/mail/templates/mail_get_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/mail_transport_edit.htm b/interface/web/mail/templates/mail_transport_edit.htm index 0adc07f475..1bfb88af1e 100644 --- a/interface/web/mail/templates/mail_transport_edit.htm +++ b/interface/web/mail/templates/mail_transport_edit.htm @@ -1,42 +1,53 @@

    +

    -
    Email transport - - - - - - - - - - - - - - - - - - - - - - - - - - - {tmpl_var name='active'} - +
    Email transport +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='mx_txt'}

    +
    + +
    +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/mail/templates/mail_transport_list.htm b/interface/web/mail/templates/mail_transport_list.htm index 247ec03ce1..d7d56e42d1 100644 --- a/interface/web/mail/templates/mail_transport_list.htm +++ b/interface/web/mail/templates/mail_transport_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/mail_user_autoresponder_edit.htm b/interface/web/mail/templates/mail_user_autoresponder_edit.htm index 3e51e53854..5c47d576eb 100644 --- a/interface/web/mail/templates/mail_user_autoresponder_edit.htm +++ b/interface/web/mail/templates/mail_user_autoresponder_edit.htm @@ -1,22 +1,25 @@

    +

    -
    Autoresponder - - - {tmpl_var name='autoresponder'} - - - - - +
    Autoresponder +
    + + +
    +
    +

    {tmpl_var name='autoresponder_txt'}

    +
    + {tmpl_var name='autoresponder'} +
    +
    -
    +
    diff --git a/interface/web/mail/templates/mail_user_custom_rules_edit.htm b/interface/web/mail/templates/mail_user_custom_rules_edit.htm index 1d51f99093..01b0668cfe 100644 --- a/interface/web/mail/templates/mail_user_custom_rules_edit.htm +++ b/interface/web/mail/templates/mail_user_custom_rules_edit.htm @@ -1,18 +1,19 @@

    +

    -
    Custom Rules - - - - +
    Custom Rules +
    + + +
    -
    +
    diff --git a/interface/web/mail/templates/mail_user_filter_edit.htm b/interface/web/mail/templates/mail_user_filter_edit.htm index 6c748891f0..8ef2396c9a 100644 --- a/interface/web/mail/templates/mail_user_filter_edit.htm +++ b/interface/web/mail/templates/mail_user_filter_edit.htm @@ -1,37 +1,38 @@ -

    - -
    - -
    -
    Filter - - - - - - - - - - - - - - - - - - {tmpl_var name='active'} - -
    - - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Filter + + + + + + + + + + + + + + + + + + {tmpl_var name='active'} + +
    + + + + +
    + + +
    +
    + +
    diff --git a/interface/web/mail/templates/mail_user_list.htm b/interface/web/mail/templates/mail_user_list.htm index ce15a42981..8ed1360c25 100644 --- a/interface/web/mail/templates/mail_user_list.htm +++ b/interface/web/mail/templates/mail_user_list.htm @@ -1,54 +1,55 @@ -

    - -
    - -
    -
    Tools -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="email"}{tmpl_var name="autoresponder"} - -
    -
    -
    - -
    +

    +

    + +
    + +
    +
    Tools +
    + +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    {tmpl_var name="email"}{tmpl_var name="autoresponder"} + +
    +
    +
    + +
    diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm index e7a0ca7993..55737c261a 100644 --- a/interface/web/mail/templates/mail_user_mailbox_edit.htm +++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm @@ -1,50 +1,61 @@ -

    - -
    - -
    -
    Mailbox - - -  @  - - - - - - - - {tmpl_var name='password_strength_txt'} -
     
    -
    - - - MB - - - - - - - - {tmpl_var name='postfix'} - - - - {tmpl_var name='disableimap'} - - - - {tmpl_var name='disablepop3'} - -
    - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Mailbox +
    +

    * {tmpl_var name='email_txt'}

    +
    + + + +
    +
    +
    + + +
    +
    +

    {tmpl_var name='password_strength_txt'}

    +
    +

     

    +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='postfix_txt'}

    +
    + {tmpl_var name='postfix'} +
    +
    +
    +

    {tmpl_var name='disableimap_txt'}

    +
    + {tmpl_var name='disableimap'} +
    +
    +
    +

    {tmpl_var name='disablepop3_txt'}

    +
    + {tmpl_var name='disablepop3'} +
    +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/mail/templates/mail_user_mailfilter_edit.htm b/interface/web/mail/templates/mail_user_mailfilter_edit.htm index d6956fc65c..dffddcd6d6 100644 --- a/interface/web/mail/templates/mail_user_mailfilter_edit.htm +++ b/interface/web/mail/templates/mail_user_mailfilter_edit.htm @@ -1,13 +1,15 @@

    +

    - {tmpl_var name='filter_records'} -
    +
    Mail Filter +
    + -
    +
    diff --git a/interface/web/mail/templates/mail_user_stats_list.htm b/interface/web/mail/templates/mail_user_stats_list.htm index fd7253de62..4cf5b56ac7 100644 --- a/interface/web/mail/templates/mail_user_stats_list.htm +++ b/interface/web/mail/templates/mail_user_stats_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/mail_whitelist_edit.htm b/interface/web/mail/templates/mail_whitelist_edit.htm index 11eec61860..171fbcc109 100644 --- a/interface/web/mail/templates/mail_whitelist_edit.htm +++ b/interface/web/mail/templates/mail_whitelist_edit.htm @@ -1,31 +1,38 @@

    +

    -
    Witelist - - - - - - - - - - - - - - - {tmpl_var name='active'} - +
    Witelist +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/mail/templates/mail_whitelist_list.htm b/interface/web/mail/templates/mail_whitelist_list.htm index 8b6edff84c..4a3fc1a294 100644 --- a/interface/web/mail/templates/mail_whitelist_list.htm +++ b/interface/web/mail/templates/mail_whitelist_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/spamfilter_blacklist_edit.htm b/interface/web/mail/templates/spamfilter_blacklist_edit.htm index 9f52ef3ea2..9ba650e6d7 100644 --- a/interface/web/mail/templates/spamfilter_blacklist_edit.htm +++ b/interface/web/mail/templates/spamfilter_blacklist_edit.htm @@ -1,37 +1,46 @@

    +

    -
    Blacklist +
    Blacklist - - - - - - - - - - - - - - - {tmpl_var name='active'} - +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/mail/templates/spamfilter_blacklist_list.htm b/interface/web/mail/templates/spamfilter_blacklist_list.htm index 6a91f46682..38b47dfd9e 100644 --- a/interface/web/mail/templates/spamfilter_blacklist_list.htm +++ b/interface/web/mail/templates/spamfilter_blacklist_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/spamfilter_config_getmail_edit.htm b/interface/web/mail/templates/spamfilter_config_getmail_edit.htm index a41ced78f5..393cf28d03 100644 --- a/interface/web/mail/templates/spamfilter_config_getmail_edit.htm +++ b/interface/web/mail/templates/spamfilter_config_getmail_edit.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/spamfilter_config_list.htm b/interface/web/mail/templates/spamfilter_config_list.htm index c9d8625662..7ff6e67453 100644 --- a/interface/web/mail/templates/spamfilter_config_list.htm +++ b/interface/web/mail/templates/spamfilter_config_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/spamfilter_config_mail_edit.htm b/interface/web/mail/templates/spamfilter_config_mail_edit.htm index 78481af2aa..78f4336966 100644 --- a/interface/web/mail/templates/spamfilter_config_mail_edit.htm +++ b/interface/web/mail/templates/spamfilter_config_mail_edit.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/spamfilter_config_server_edit.htm b/interface/web/mail/templates/spamfilter_config_server_edit.htm index 1eb1f1034b..c5d6233163 100644 --- a/interface/web/mail/templates/spamfilter_config_server_edit.htm +++ b/interface/web/mail/templates/spamfilter_config_server_edit.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/spamfilter_other_edit.htm b/interface/web/mail/templates/spamfilter_other_edit.htm index 103bad5949..a4cd26044e 100644 --- a/interface/web/mail/templates/spamfilter_other_edit.htm +++ b/interface/web/mail/templates/spamfilter_other_edit.htm @@ -1,70 +1,77 @@

    +

    -
    Other - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    Other +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/mail/templates/spamfilter_policy_edit.htm b/interface/web/mail/templates/spamfilter_policy_edit.htm index 3f7d634fa1..c2cf6f0168 100644 --- a/interface/web/mail/templates/spamfilter_policy_edit.htm +++ b/interface/web/mail/templates/spamfilter_policy_edit.htm @@ -1,46 +1,61 @@

    +

    -
    Policy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    Policy +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/mail/templates/spamfilter_policy_list.htm b/interface/web/mail/templates/spamfilter_policy_list.htm index 0380824ed4..20cf2ffeae 100644 --- a/interface/web/mail/templates/spamfilter_policy_list.htm +++ b/interface/web/mail/templates/spamfilter_policy_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/spamfilter_quarantine_edit.htm b/interface/web/mail/templates/spamfilter_quarantine_edit.htm index eb10a9a0d3..2bc97974fa 100644 --- a/interface/web/mail/templates/spamfilter_quarantine_edit.htm +++ b/interface/web/mail/templates/spamfilter_quarantine_edit.htm @@ -1,40 +1,41 @@

    +

    -
    Quarantine - - - - - - - - - - - - - - - - +
    Quarantine +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/mail/templates/spamfilter_taglevel_edit.htm b/interface/web/mail/templates/spamfilter_taglevel_edit.htm index dd07fd4b38..1707457f34 100644 --- a/interface/web/mail/templates/spamfilter_taglevel_edit.htm +++ b/interface/web/mail/templates/spamfilter_taglevel_edit.htm @@ -1,46 +1,49 @@

    +

    -
    Tag-Level - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    Tag-Level +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/mail/templates/spamfilter_users_edit.htm b/interface/web/mail/templates/spamfilter_users_edit.htm index 220b3bcd27..6fc90e17a7 100644 --- a/interface/web/mail/templates/spamfilter_users_edit.htm +++ b/interface/web/mail/templates/spamfilter_users_edit.htm @@ -1,38 +1,47 @@

    +

    -
    Users - - - - - - - - - - - - - - - - - - - - - - - - +
    Users +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/mail/templates/spamfilter_users_list.htm b/interface/web/mail/templates/spamfilter_users_list.htm index cbb7ab9470..43296c01c5 100644 --- a/interface/web/mail/templates/spamfilter_users_list.htm +++ b/interface/web/mail/templates/spamfilter_users_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/mail/templates/spamfilter_whitelist_edit.htm b/interface/web/mail/templates/spamfilter_whitelist_edit.htm index 2e4b5f1bbb..eead71c979 100644 --- a/interface/web/mail/templates/spamfilter_whitelist_edit.htm +++ b/interface/web/mail/templates/spamfilter_whitelist_edit.htm @@ -1,37 +1,46 @@

    +

    -
    Whitelist +
    Whitelist - - - - - - - - - - - - - - - {tmpl_var name='active'} - +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    - -
    + +
    diff --git a/interface/web/mail/templates/spamfilter_whitelist_list.htm b/interface/web/mail/templates/spamfilter_whitelist_list.htm index 489e5009ac..3a7942257f 100644 --- a/interface/web/mail/templates/spamfilter_whitelist_list.htm +++ b/interface/web/mail/templates/spamfilter_whitelist_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/monitor/templates/datalog_list.htm b/interface/web/monitor/templates/datalog_list.htm index 3fec814b34..93eede0574 100644 --- a/interface/web/monitor/templates/datalog_list.htm +++ b/interface/web/monitor/templates/datalog_list.htm @@ -1,48 +1,49 @@ -

    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
     
    {tmpl_var name="tstamp"}{tmpl_var name="server_id"}{tmpl_var name="action"}{tmpl_var name="dbtable"} -
    - -
    -
    -
    -
    - -
    +

    +

    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
     
    {tmpl_var name="tstamp"}{tmpl_var name="server_id"}{tmpl_var name="action"}{tmpl_var name="dbtable"} +
    + +
    +
    +
    +
    + +
    diff --git a/interface/web/monitor/templates/show_data.htm b/interface/web/monitor/templates/show_data.htm index df399fbd55..f83440fe46 100644 --- a/interface/web/monitor/templates/show_data.htm +++ b/interface/web/monitor/templates/show_data.htm @@ -1,4 +1,5 @@ -

    +

    +

    diff --git a/interface/web/monitor/templates/show_log.htm b/interface/web/monitor/templates/show_log.htm index 6da3d5af33..b6077277cd 100644 --- a/interface/web/monitor/templates/show_log.htm +++ b/interface/web/monitor/templates/show_log.htm @@ -1,15 +1,21 @@ -

    +

    +

    -
    +
    - +
    + + +
    - +
    diff --git a/interface/web/monitor/templates/show_sys_state.htm b/interface/web/monitor/templates/show_sys_state.htm index 006163704e..904361cb1f 100644 --- a/interface/web/monitor/templates/show_sys_state.htm +++ b/interface/web/monitor/templates/show_sys_state.htm @@ -1,15 +1,21 @@ -

    +

    +

    -
    +
    -
    +
    - +
    + + +
    - +
    diff --git a/interface/web/monitor/templates/syslog_list.htm b/interface/web/monitor/templates/syslog_list.htm index d484dca69a..0bbb03cfbc 100644 --- a/interface/web/monitor/templates/syslog_list.htm +++ b/interface/web/monitor/templates/syslog_list.htm @@ -1,55 +1,56 @@ -

    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
     
    {tmpl_var name="tstamp"}{tmpl_var name="server_id"}{tmpl_var name="loglevel"}{tmpl_var name="message"} - - - - - - -
    -
    -
    - -
    +

    +

    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
     
    {tmpl_var name="tstamp"}{tmpl_var name="server_id"}{tmpl_var name="loglevel"}{tmpl_var name="message"} + + + + + + +
    +
    +
    + +
    diff --git a/interface/web/sites/templates/database_edit.htm b/interface/web/sites/templates/database_edit.htm index a8b5edb968..706ea1976c 100644 --- a/interface/web/sites/templates/database_edit.htm +++ b/interface/web/sites/templates/database_edit.htm @@ -1,67 +1,83 @@ -

    - -
    - -
    -
    Database - - - - - - - - - - - - - - - - - - - - - - - {tmpl_var name='database_name_prefix'} - *
    -
    - - - {tmpl_var name='database_user_prefix'} - *
    -
    - - - *
    -
    - - {tmpl_var name='password_strength_txt'} -
     
    -
    - - - - - - - {tmpl_var name='remote_access'} - - - - {tmpl_var name='active'} - -
    - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Database + +
    + + +
    +
    + + +
    +
    + +
    + + +
    +
    +
    + + +
    +
    + +
    {tmpl_var name='database_name_prefix'}
    + +
    +
    + +
    {tmpl_var name='database_user_prefix'}
    + +
    +
    + + +
    +
    +

    {tmpl_var name='password_strength_txt'}

    +
    +

     

    +
    +
    + + +
    +
    +

    {tmpl_var name='remote_access_txt'}

    +
    + {tmpl_var name='remote_access'} +
    +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/sites/templates/database_list.htm b/interface/web/sites/templates/database_list.htm index 3e721c2fef..17cefd90a8 100644 --- a/interface/web/sites/templates/database_list.htm +++ b/interface/web/sites/templates/database_list.htm @@ -1,60 +1,61 @@ -

    - -
    - -
    -
    Tools -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="remote_access"}{tmpl_var name="server_id"}{tmpl_var name="database_name"} - -
    -
    -
    - -
    +

    +

    + +
    + +
    +
    Tools +
    + +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    {tmpl_var name="active"}{tmpl_var name="remote_access"}{tmpl_var name="server_id"}{tmpl_var name="database_name"} + +
    +
    +
    + +
    diff --git a/interface/web/sites/templates/ftp_user_advanced.htm b/interface/web/sites/templates/ftp_user_advanced.htm index d0321d646f..608fc6f55d 100644 --- a/interface/web/sites/templates/ftp_user_advanced.htm +++ b/interface/web/sites/templates/ftp_user_advanced.htm @@ -1,46 +1,47 @@

    +

    -
    Options - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    Options +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/sites/templates/ftp_user_edit.htm b/interface/web/sites/templates/ftp_user_edit.htm index d3e961c066..e6d24a28c8 100644 --- a/interface/web/sites/templates/ftp_user_edit.htm +++ b/interface/web/sites/templates/ftp_user_edit.htm @@ -1,43 +1,48 @@ -

    - -
    - -
    -
    FTP User - - - - - - - {tmpl_var name='username_prefix'} - - - - - - - - {tmpl_var name='password_strength_txt'} -
     
    -
    - - - MB - - - - {tmpl_var name='active'} - - -
    - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    FTP User +
    + + +
    +
    + +
    {tmpl_var name='username_prefix'}
    + +
    +
    + + +
    +
    +

    {tmpl_var name='password_strength_txt'}

    +
    +

     

    +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/sites/templates/ftp_user_list.htm b/interface/web/sites/templates/ftp_user_list.htm index a5c3214658..534cd0bdf1 100644 --- a/interface/web/sites/templates/ftp_user_list.htm +++ b/interface/web/sites/templates/ftp_user_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/sites/templates/shell_user_advanced.htm b/interface/web/sites/templates/shell_user_advanced.htm index 803d5f6dfb..48ecceed0f 100644 --- a/interface/web/sites/templates/shell_user_advanced.htm +++ b/interface/web/sites/templates/shell_user_advanced.htm @@ -1,30 +1,31 @@

    +

    -
    Options - - - - - - - - - - - - - - - - +
    Options +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/sites/templates/shell_user_edit.htm b/interface/web/sites/templates/shell_user_edit.htm index a6f5c3a491..6a048cd34c 100644 --- a/interface/web/sites/templates/shell_user_edit.htm +++ b/interface/web/sites/templates/shell_user_edit.htm @@ -1,46 +1,54 @@ -

    - -
    - -
    -
    Shell User - - - - - - - {tmpl_var name='username_prefix'} - - - - - - - - {tmpl_var name='password_strength_txt'} -
     
    -
    - - - - - - - MB - - - - {tmpl_var name='active'} - -
    - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Shell User +
    + + +
    +
    + +
    {tmpl_var name='username_prefix'}
    + +
    +
    + + +
    +
    +

    {tmpl_var name='password_strength_txt'}

    +
    +

     

    +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/sites/templates/shell_user_list.htm b/interface/web/sites/templates/shell_user_list.htm index 463e9773e8..531740ad6a 100644 --- a/interface/web/sites/templates/shell_user_list.htm +++ b/interface/web/sites/templates/shell_user_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/sites/templates/web_aliasdomain_edit.htm b/interface/web/sites/templates/web_aliasdomain_edit.htm index 2709aab9ff..9de6619bc4 100644 --- a/interface/web/sites/templates/web_aliasdomain_edit.htm +++ b/interface/web/sites/templates/web_aliasdomain_edit.htm @@ -1,38 +1,47 @@

    +

    -
    Domain - - - - - - - - - - - - - - - - - - - - - - - {tmpl_var name='active'} - +
    Domain +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/sites/templates/web_aliasdomain_list.htm b/interface/web/sites/templates/web_aliasdomain_list.htm index 62a183a7a8..408c553396 100644 --- a/interface/web/sites/templates/web_aliasdomain_list.htm +++ b/interface/web/sites/templates/web_aliasdomain_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/sites/templates/web_domain_advanced.htm b/interface/web/sites/templates/web_domain_advanced.htm index 6871d70007..f0a4b0ba8e 100644 --- a/interface/web/sites/templates/web_domain_advanced.htm +++ b/interface/web/sites/templates/web_domain_advanced.htm @@ -1,36 +1,34 @@ -

    - -
    - -
    -
    Options - - - - - - - - - - - - - - -
    - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Options +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/sites/templates/web_domain_edit.htm b/interface/web/sites/templates/web_domain_edit.htm index e79557246d..9fd5c40628 100644 --- a/interface/web/sites/templates/web_domain_edit.htm +++ b/interface/web/sites/templates/web_domain_edit.htm @@ -1,101 +1,132 @@ -

    - -
    - -
    -
    Domain - - - - - - - - - - - - - - - - - - - - - - - - - - - - MB - - - - - {tmpl_var name='cgi'} - - - - {tmpl_var name='ssi'} - - - - {tmpl_var name='suexec'} - - - - {tmpl_var name='errordocs'} - - - - {tmpl_var name='is_subdomainwww'} - - - - - - - - {tmpl_var name='ssl'} - - - - - - - - {tmpl_var name='active'} - -
    - - - -
    - - -
    -
    - -
    +

    +

    + +
    + +
    +
    Domain + +
    + + +
    +
    + + +
    +
    + +
    + + +
    +
    +
    + + +
    +
    + + +
    + +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='cgi_txt'}

    +
    + {tmpl_var name='cgi'} +
    +
    +
    +

    {tmpl_var name='ssi_txt'}

    +
    + {tmpl_var name='ssi'} +
    +
    +
    +

    {tmpl_var name='suexec_txt'}

    +
    + {tmpl_var name='suexec'} +
    +
    +
    +

    {tmpl_var name='errordocs_txt'}

    +
    + {tmpl_var name='errordocs'} +
    +
    +
    +

    {tmpl_var name='is_subdomainwww_txt'}

    +
    + {tmpl_var name='is_subdomainwww'} +
    +
    +
    + + +
    +
    +

    {tmpl_var name='ssl_txt'}

    +
    + {tmpl_var name='ssl'} +
    +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    +
    + + + +
    + + +
    +
    + +
    diff --git a/interface/web/sites/templates/web_domain_list.htm b/interface/web/sites/templates/web_domain_list.htm index 10770dd78f..a7126ed405 100644 --- a/interface/web/sites/templates/web_domain_list.htm +++ b/interface/web/sites/templates/web_domain_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/sites/templates/web_domain_redirect.htm b/interface/web/sites/templates/web_domain_redirect.htm index 10734bdf09..510066f4e4 100644 --- a/interface/web/sites/templates/web_domain_redirect.htm +++ b/interface/web/sites/templates/web_domain_redirect.htm @@ -1,22 +1,25 @@

    +

    -
    Redirect - - - - - - - - +
    Redirect +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/sites/templates/web_domain_ssl.htm b/interface/web/sites/templates/web_domain_ssl.htm index b6df61ab45..94e0eedf74 100644 --- a/interface/web/sites/templates/web_domain_ssl.htm +++ b/interface/web/sites/templates/web_domain_ssl.htm @@ -1,50 +1,53 @@

    +

    -
    SSL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    SSL +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    +
    diff --git a/interface/web/sites/templates/web_subdomain_edit.htm b/interface/web/sites/templates/web_subdomain_edit.htm index 0e4736fae2..3441feed08 100644 --- a/interface/web/sites/templates/web_subdomain_edit.htm +++ b/interface/web/sites/templates/web_subdomain_edit.htm @@ -1,31 +1,35 @@

    +

    -
    Domain - - -  .  - - - - - - - - - - - - - {tmpl_var name='active'} - +
    Domain +
    + + +
    +
    + + +
    +
    + + +
    +
    +

    {tmpl_var name='active_txt'}

    +
    + {tmpl_var name='active'} +
    +
    -
    +
    diff --git a/interface/web/sites/templates/web_subdomain_list.htm b/interface/web/sites/templates/web_subdomain_list.htm index 18a01543bf..3dbc0c6bbb 100644 --- a/interface/web/sites/templates/web_subdomain_list.htm +++ b/interface/web/sites/templates/web_subdomain_list.htm @@ -1,4 +1,5 @@

    +

    diff --git a/interface/web/themes/default/css/central.css b/interface/web/themes/default/css/central.css index 3bd25612cb..e9268d5bff 100644 --- a/interface/web/themes/default/css/central.css +++ b/interface/web/themes/default/css/central.css @@ -24,8 +24,9 @@ @import url(screen/basemod.css); @import url(screen/basemod_2col_left_seo.css); @import url(screen/content.css); +@import url(screen/uni-form-generic.css); +@import url(screen/uni-form.css); @import url(screen/content_ispc.css); -@import url(screen/wforms.css); /* import print layout | Druck-Layout einbinden */ @import url(print/print_100.css); diff --git a/interface/web/themes/default/css/screen/content_ispc.css b/interface/web/themes/default/css/screen/content_ispc.css index b07974e91f..fd335e30dc 100644 --- a/interface/web/themes/default/css/screen/content_ispc.css +++ b/interface/web/themes/default/css/screen/content_ispc.css @@ -1,304 +1,792 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Uniform design of ISPConfig elements - ISPConfig 3: default theme - * (de) Einheitliche Standardformatierungen f�r ISPConfig-Elemente - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - .pageForm_description { - font-size: 12px; - } - - /* Tab-Box */ - .tabbox_tabs { - border-bottom: 1px solid #d3d3d3; - } - .tabbox_tabs ul { - list-style: none; - padding: 0; - margin: 0; - } - .tabbox_tabs li { - display: inline; - margin: 0 2px 0 0; - } - .tabbox_tabs a { - padding: 0 1em; - text-decoration: none; - color: black; - background: #d3d3d3; - border: 1px solid #d3d3d3; - } - .tabbox_tabs a:hover { - background: #fc0; - color: #540; - } - .tabbox_tabs .active a { - font-weight: bold; - color: #ff6600; - background: #ffffff; - } - - .pnl_toolsarea fieldset, .pnl_listarea fieldset, .pnl_formarea fieldset { - border-color: #D0D0D0 -moz-use-text-color -moz-use-text-color; - border-style: solid none none; - border-width: 1px medium medium; - margin: 20px 0; - } - .pnl_toolsarea fieldset legend , .pnl_listarea fieldset legend, .pnl_formarea fieldset { - font-weight: bold; - } - - .error { - color: #FF0000; - margin-bottom: 10px; - border-width: 1px; - border-style: solid; - border-color: #FF0000; - padding: 5px; - } - - .box { - padding:4px; - margin: 0 0 20px 0; - } - .box_error { border: 4px solid #CC0000; } - .box_error h1 { color: #CC0000; } - .box_support { border: 1px solid #6495ed; } - .box_support h1 { color: #6495ed; } - .box_msg { border: 2px solid #6495ed; } - .box_msg h1 { color: #6495ed; } - - .codeview { - margin:20px 0; - padding:2px; - border: 1px solid #ffcc00; - background: #fffaea; - font-family: Consolas, "Lucida Console", "Courier New", monospace; - font-size: 0.9em; - } - - /* Lists */ - table.list { - width: 100%; - border: 1px solid #d3d3d3 !important; - } - table.list thead th { font-size: 10px; } - table.list tbody { border: 1px solid #d3d3d3 !important; } - table.list tfoot td { text-align: center; background: #f8f8f8 url(../../images/lists_tfoot_bg.png) repeat-x bottom left; padding: 24px 8px 8px 8px; } - table.list .tbl_row_even { background: #fcfcfc; } - table.list .tbl_row_uneven { background: #f0f8ff; } - table.list tr:hover { background: #fffacd; } - - /* Password Strength */ - #passBar { - width: 101px; height: 10px; - background: url(../../images/meter_bg.gif) repeat-x bottom left; - margin: 2px 0; - float: left; - } - #passText { - padding: 0 8px; - float: left; - } - - /* Systemmonitor */ - .systemmonitor-state { - margin: 10px 0; - font-family: Consolas, "Lucida Console", "Courier New", monospace; - font-size: 0.9em; - } - .systemmonitor-state.state-no_state { - border-top: 4px solid #95A19F; - background-color: #FBF6EE; - } - .systemmonitor-state.state-unknown { - border-top: 4px solid #30302e; - background-color: #cecfc5; - } - .systemmonitor-state.state-ok { - border-top: 4px solid #23fb00; - background-color: #adffa2; - } - .systemmonitor-state.state-info { - border-top: 4px solid #fdff00; - background-color: #fdffa2; - } - .systemmonitor-state.state-warning { - border-top: 4px solid #ffa800; - background-color: #ffda93; - } - .systemmonitor-state.state-critical { - border-top: 4px solid #ff0000; - background-color: #ffb9b9; - } - .systemmonitor-state.state-error { - border-top: 4px solid #ff0000; - background-color: #ff7f7f; - } - - .systemmonitor-device { - background-repeat: no-repeat; - background-position: 12px 4px; - min-height: 80px; - } - .systemmonitor-device.device-system { background-image: url("../../icons/x64/network.png"); } - .systemmonitor-device.device-server { background-image: url("../../icons/x64/server.png"); } - - .systemmonitor-content.icons32 { - padding:2px 10px 2px 80px; - background-repeat: no-repeat; - background-position: 12px 4px; - } - .systemmonitor-content.icons32.ico-no_state { /*background-image:url("../../icons/x32/state_no.png"); */ } - .systemmonitor-content.icons32.ico-unknown { background-image:url("../../icons/x32/state_unknown.png"); } - .systemmonitor-content.icons32.ico-ok { background-image:url("../../icons/x32/state_ok.png"); } - .systemmonitor-content.icons32.ico-info { background-image:url("../../icons/x32/state_info.png"); } - .systemmonitor-content.icons32.ico-warning { background-image:url("../../icons/x32/state_warning.png"); } - .systemmonitor-content.icons32.ico-critical { background-image:url("../../icons/x32/state_critical.png"); } - .systemmonitor-content.icons32.ico-error { background-image:url("../../icons/x32/state_error.png"); } - - .systemmonitor-content table { - border: none; - margin-top: 10px; - } - - .systemmonitor-content * .online { - border: 1px solid #ffffff; - background-color: #E3FFB8; - color: #000000; - padding:0px 5px; - } - .systemmonitor-content * .offline { - border: 1px solid #ffffff; - background-color: #d12f19; - color:#ffffff; - padding:0px 5px; - } - - /* Image-Replacement */ - .swap { background-repeat:no-repeat; } - .swap span { display:none; height:16px; } - #ir-HeaderLogo { background-image:url("../../images/header_logo.png"); height:32px; } - #ir-Yes { background-image:url("../../icons/x16/tick_circle.png"); height:16px; } - #ir-No { background-image:url("../../icons/x16/cross_circle.png"); height:16px; } - - /* BUTTONS */ - .buttons a, .buttons button{ - display:block; - float:left; - margin:0 7px 0 0; - background-color:#f5f5f5; - border:1px solid #dedede; - border-top:1px solid #eee; - border-left:1px solid #eee; - - font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif; - font-size:90%; - line-height:130%; - text-decoration:none; - font-weight:bold; - color:#565656; - cursor:pointer; - padding:5px 10px 6px 7px; /* Links */ - } - .buttons button{ - width:auto; - overflow:visible; - padding:4px 10px 3px 7px; /* IE6 */ - } - .buttons button[type]{ - padding:5px 10px 5px 7px; /* Firefox */ - line-height:17px; /* Safari */ - } - *:first-child+html button[type]{ - padding:4px 10px 3px 7px; /* IE7 */ - } - .buttons button img, .buttons a img{ - margin:0 3px -3px 0 !important; - padding:0; - border:none; - width:16px; - height:16px; - } - - /* BUTTONS STANDARD */ - button:hover, .buttons a:hover{ - background-color:#dff4ff; - border:1px solid #c2e1ef; - color:#336699; - } - .buttons a:active{ - background-color:#6299c5; - border:1px solid #6299c5; - color:#fff; - } - - /* BUTTONS POSITIVE */ - button.positive, .buttons a.positive{ - color:#529214; - } - .buttons a.positive:hover, button.positive:hover{ - background-color:#E6EFC2; - border:1px solid #C6D880; - color:#529214; - } - .buttons a.positive:active{ - background-color:#529214; - border:1px solid #529214; - color:#fff; - } - - /* BUTTONS NEGATIVE */ - .buttons a.negative, button.negative{ - color:#d12f19; - } - .buttons a.negative:hover, button.negative:hover{ - background-color:#fbe3e4; - border:1px solid #fbc2c4; - color:#d12f19; - } - .buttons a.negative:active{ - background-color:#d12f19; - border:1px solid #d12f19; - color:#fff; - } - - /* Button with icon and text */ - .iconstxt { - background-repeat: no-repeat; - background-position: 4px 4px; - } - .iconstxt span { padding-left: 20px; } - .iconstxt.icoPositive { background-image: url("../../icons/x16/tick_circle_frame.png"); } - .iconstxt.icoNegative { background-image: url("../../icons/x16/cross_circle_frame.png"); } - .iconstxt.icoAdd { background-image: url(../../icons/x16/plus_circle_frame.png); } - .iconstxt.icoKey { background-image: url("../../icons/x16/key.png"); } - .iconstxt.icoDelete { background-image: url("../../icons/x16/minus_circle_frame.png"); } - - /* Button with icon and without text */ - .icons16 span { display: none; } - a.icons16 { height: 18px; width: 18px; padding: 0; background-repeat: no-repeat; background-position: 1px 1px;} - button.icons16 { height: 20px; width: 20px; padding: 0; background-repeat: no-repeat; background-position: 1px 1px;} - - .icons16.icoDelete { background-image: url("../../icons/x16/minus_circle_frame.png"); } - .icons16.icoFilter { background-image: url(../../icons/x16/funnel.png); } - .icons16.icoEdit { background-image: url("../../icons/x16/wrench.png"); } - .icons16.icoDbAdmin { background-image: url("../../icons/x16/database.png"); } - .icons16.icoLoginAs { background-image: url("../../icons/x16/user_go.png"); } - .icons16.icoWebmailer { background-image: url("../../icons/x16/mails_arrow.png"); } -} - +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) Uniform design of ISPConfig elements - ISPConfig 3: default theme + * (de) Einheitliche Standardformatierungen f�r ISPConfig-Elemente - ISPConfig 3: default theme + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + * @appdef yaml + */ + +@media all +{ + .pageForm_description { + font-size: 12px; + } + + /* Tab-Box */ + .tabbox_tabs { + border-bottom: 1px solid #d3d3d3; + } + .tabbox_tabs ul { + list-style: none; + padding: 0; + margin: 0; + } + .tabbox_tabs li { + display: inline; + margin: 0 2px 0 0; + } + .tabbox_tabs a { + padding: 0 1em; + text-decoration: none; + color: black; + background: #d3d3d3; + border: 1px solid #d3d3d3; + } + .tabbox_tabs a:hover { + background: #fc0; + color: #540; + } + .tabbox_tabs .active a { + font-weight: bold; + color: #ff6600; + background: #ffffff; + } + + .pnl_toolsarea fieldset, .pnl_listarea fieldset, .pnl_formsarea fieldset { + border-color: #6299c5 -moz-use-text-color -moz-use-text-color; + border-style: solid none none; + border-width: 1px medium medium; + margin: 20px 0; + } + .pnl_toolsarea fieldset legend , .pnl_listarea fieldset legend, .pnl_formarea fieldset { + font-weight: bold; + color: #6299c5; + } + + .codeview { + margin:20px 0; + padding:2px; + border: 1px solid #ffcc00; + background: #fffaea; + font-family: Consolas, "Lucida Console", "Courier New", monospace; + font-size: 0.9em; + } + + /* Lists */ + table.list { + width: 100%; + border: 1px solid #d3d3d3 !important; + } + table.list thead th { font-size: 10px; } + table.list tbody { border: 1px solid #d3d3d3 !important; } + table.list tfoot td { text-align: center; background: #f8f8f8 url(../../images/lists_tfoot_bg.png) repeat-x bottom left; padding: 24px 8px 8px 8px; } + table.list .tbl_row_even { background: #fcfcfc; } + table.list .tbl_row_uneven { background: #f0f8ff; } + table.list tr:hover { background: #fffacd; } + + /* Password Strength */ + #passBar { + width: 101px; height: 10px; + background: url(../../images/meter_bg.gif) repeat-x bottom left; + margin: 2px 0; + float: left; + } + #passText { + padding: 0; + float: left; + } + + /* Systemmonitor */ + .systemmonitor-state { + margin: 10px 0; + font-family: Consolas, "Lucida Console", "Courier New", monospace; + font-size: 0.9em; + } + .systemmonitor-state.state-no_state { + border-top: 4px solid #95A19F; + background-color: #f8f8ff; + } + .systemmonitor-state.state-unknown { + border-top: 4px solid #30302e; + background-color: #cecfc5; + } + .systemmonitor-state.state-ok { + border-top: 4px solid #23fb00; + background-color: #adffa2; + } + .systemmonitor-state.state-info { + border-top: 4px solid #fdff00; + background-color: #fdffa2; + } + .systemmonitor-state.state-warning { + border-top: 4px solid #ffa800; + background-color: #ffda93; + } + .systemmonitor-state.state-critical { + border-top: 4px solid #ff0000; + background-color: #ffb9b9; + } + .systemmonitor-state.state-error { + border-top: 4px solid #ff0000; + background-color: #ff7f7f; + } + + .systemmonitor-device { + background-repeat: no-repeat; + background-position: 12px 4px; + min-height: 80px; + } + .systemmonitor-device.device-system { background-image: url("../../icons/x64/network.png"); } + .systemmonitor-device.device-server { background-image: url("../../icons/x64/server.png"); } + + .systemmonitor-content.icons32 { + padding:2px 10px 2px 80px; + background-repeat: no-repeat; + background-position: 12px 4px; + } + .systemmonitor-content.icons32.ico-no_state { /*background-image:url("../../icons/x32/state_no.png"); */ } + .systemmonitor-content.icons32.ico-unknown { background-image:url("../../icons/x32/state_unknown.png"); } + .systemmonitor-content.icons32.ico-ok { background-image:url("../../icons/x32/state_ok.png"); } + .systemmonitor-content.icons32.ico-info { background-image:url("../../icons/x32/state_info.png"); } + .systemmonitor-content.icons32.ico-warning { background-image:url("../../icons/x32/state_warning.png"); } + .systemmonitor-content.icons32.ico-critical { background-image:url("../../icons/x32/state_critical.png"); } + .systemmonitor-content.icons32.ico-error { background-image:url("../../icons/x32/state_error.png"); } + + .systemmonitor-content table { + border: none; + margin-top: 10px; + } + + .systemmonitor-content * .online { + border: 1px solid #ffffff; + background-color: #E3FFB8; + color: #000000; + padding:0px 5px; + } + .systemmonitor-content * .offline { + border: 1px solid #ffffff; + background-color: #d12f19; + color:#ffffff; + padding:0px 5px; + } + + /* Image-Replacement */ + .swap { background-repeat:no-repeat; } + .swap span { display:none; height:16px; } + #ir-HeaderLogo { background-image:url("../../images/header_logo.png"); height:32px; } + #ir-Yes { background-image:url("../../icons/x16/tick_circle.png"); height:16px; } + #ir-No { background-image:url("../../icons/x16/cross_circle.png"); height:16px; } + + /* BUTTONS */ + .buttons a, .buttons button{ + display:block; + float:left; + margin:0 7px 0 0; + background-color:#f5f5f5; + border:1px solid #777777; + border-top: 1px solid #c8c8c8; + border-left:1px solid #c8c8c8; + + font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif; + font-size:90%; + line-height:130%; + text-decoration:none; + font-weight:bold; + color:#565656; + cursor:pointer; + padding:5px 10px 6px 7px; /* Links */ + } + .buttons button{ + width:auto; + overflow:visible; + padding:4px 10px 3px 7px; /* IE6 */ + } + .buttons button[type]{ + padding:5px 10px 5px 7px; /* Firefox */ + line-height:17px; /* Safari */ + } + *:first-child+html button[type]{ + padding:4px 10px 3px 7px; /* IE7 */ + } + .buttons button img, .buttons a img{ + margin:0 3px -3px 0 !important; + padding:0; + border:none; + width:16px; + height:16px; + } + + /* BUTTONS STANDARD */ + button:hover, .buttons a:hover{ + background-color:#dff4ff; + border:1px solid #c2e1ef; + color:#336699; + } + .buttons a:active{ + background-color:#6299c5; + border:1px solid #6299c5; + color:#fff; + } + + /* BUTTONS POSITIVE */ + button.positive, .buttons a.positive{ + color:#529214; + } + .buttons a.positive:hover, button.positive:hover{ + background-color:#E6EFC2; + border:1px solid #C6D880; + color:#529214; + } + .buttons a.positive:active{ + background-color:#529214; + border:1px solid #529214; + color:#fff; + } + + /* BUTTONS NEGATIVE */ + .buttons a.negative, button.negative{ + color:#d12f19; + } + .buttons a.negative:hover, button.negative:hover{ + background-color:#fbe3e4; + border:1px solid #fbc2c4; + color:#d12f19; + } + .buttons a.negative:active{ + background-color:#d12f19; + border:1px solid #d12f19; + color:#fff; + } + + /* Button with icon and text */ + .iconstxt { + background-repeat: no-repeat; + background-position: 4px 4px; + } + .iconstxt span { padding-left: 20px; } + .iconstxt.icoPositive { background-image: url("../../icons/x16/tick_circle_frame.png"); } + .iconstxt.icoNegative { background-image: url("../../icons/x16/cross_circle_frame.png"); } + .iconstxt.icoAdd { background-image: url(../../icons/x16/plus_circle_frame.png); } + .iconstxt.icoKey { background-image: url("../../icons/x16/key.png"); } + .iconstxt.icoDelete { background-image: url("../../icons/x16/minus_circle_frame.png"); } + + /* Button with icon and without text */ + .icons16 span { display: none; } + a.icons16 { height: 18px; width: 18px; padding: 0; background-repeat: no-repeat; background-position: 1px 1px;} + button.icons16 { height: 20px; width: 20px; padding: 0; background-repeat: no-repeat; background-position: 1px 1px;} + + .icons16.icoDelete { background-image: url("../../icons/x16/minus_circle_frame.png"); } + .icons16.icoFilter { background-image: url(../../icons/x16/funnel.png); } + .icons16.icoEdit { background-image: url("../../icons/x16/wrench.png"); } + .icons16.icoDbAdmin { background-image: url("../../icons/x16/database.png"); } + .icons16.icoLoginAs { background-image: url("../../icons/x16/user_go.png"); } + .icons16.icoWebmailer { background-image: url("../../icons/x16/mails_arrow.png"); } + + + + .blockLabel.email_at { + width: 20px !important; + margin: 1.6em 0.3em 0 0 !important + } + .textDisplay { display: block; } + + select#language { width: 100px; } + .panel_dns_soa * input#refresh, .panel_dns_soa * input#retry, .panel_dns_soa * input#expire, .panel_dns_soa * input#minimum, .panel_dns_soa * input#ttl { width: 100px; } + + + + /* Select Menu with Images */ + select.withicons option { + background-repeat:no-repeat; + background-position: 1px; + padding-left:24px; + } + select.withicons#country option[value="AD"] { background-image:url(../../icons/flags/ad.png); } + select.withicons#country option[value="AE"] { background-image:url(../../icons/flags/ae.png); } + select.withicons#country option[value="AF"] { background-image:url(../../icons/flags/af.png); } + select.withicons#country option[value="AG"] { background-image:url(../../icons/flags/ag.png); } + select.withicons#country option[value="AI"] { background-image:url(../../icons/flags/ai.png); } + select.withicons#country option[value="AL"] { background-image:url(../../icons/flags/al.png); } + select.withicons#country option[value="AM"] { background-image:url(../../icons/flags/am.png); } + select.withicons#country option[value="AN"] { background-image:url(../../icons/flags/an.png); } + select.withicons#country option[value="AO"] { background-image:url(../../icons/flags/ao.png); } + select.withicons#country option[value="AQ"] { background-image:url(../../icons/flags/aq.png); } + select.withicons#country option[value="AR"] { background-image:url(../../icons/flags/ar.png); } + select.withicons#country option[value="AS"] { background-image:url(../../icons/flags/as.png); } + select.withicons#country option[value="AT"] { background-image:url(../../icons/flags/at.png); } + select.withicons#country option[value="AU"] { background-image:url(../../icons/flags/au.png); } + select.withicons#country option[value="AW"] { background-image:url(../../icons/flags/aw.png); } + select.withicons#country option[value="AX"] { background-image:url(../../icons/flags/ax.png); } + select.withicons#country option[value="AZ"] { background-image:url(../../icons/flags/az.png); } + select.withicons#country option[value="BA"] { background-image:url(../../icons/flags/ba.png); } + select.withicons#country option[value="BB"] { background-image:url(../../icons/flags/bb.png); } + select.withicons#country option[value="BD"] { background-image:url(../../icons/flags/bd.png); } + select.withicons#country option[value="BE"] { background-image:url(../../icons/flags/be.png); } + select.withicons#country option[value="BF"] { background-image:url(../../icons/flags/bf.png); } + select.withicons#country option[value="BG"] { background-image:url(../../icons/flags/bg.png); } + select.withicons#country option[value="BH"] { background-image:url(../../icons/flags/bh.png); } + select.withicons#country option[value="BI"] { background-image:url(../../icons/flags/bi.png); } + select.withicons#country option[value="BJ"] { background-image:url(../../icons/flags/bj.png); } + select.withicons#country option[value="BM"] { background-image:url(../../icons/flags/bm.png); } + select.withicons#country option[value="BN"] { background-image:url(../../icons/flags/bn.png); } + select.withicons#country option[value="BO"] { background-image:url(../../icons/flags/bo.png); } + select.withicons#country option[value="BR"] { background-image:url(../../icons/flags/br.png); } + select.withicons#country option[value="BS"] { background-image:url(../../icons/flags/bs.png); } + select.withicons#country option[value="BT"] { background-image:url(../../icons/flags/bt.png); } + select.withicons#country option[value="BV"] { background-image:url(../../icons/flags/bv.png); } + select.withicons#country option[value="BW"] { background-image:url(../../icons/flags/bw.png); } + select.withicons#country option[value="BY"] { background-image:url(../../icons/flags/by.png); } + select.withicons#country option[value="BZ"] { background-image:url(../../icons/flags/bz.png); } + select.withicons#country option[value="CA"] { background-image:url(../../icons/flags/ca.png); } + select.withicons#country option[value="CC"] { background-image:url(../../icons/flags/cc.png); } + select.withicons#country option[value="CD"] { background-image:url(../../icons/flags/cd.png); } + select.withicons#country option[value="CF"] { background-image:url(../../icons/flags/cf.png); } + select.withicons#country option[value="CG"] { background-image:url(../../icons/flags/cg.png); } + select.withicons#country option[value="CH"] { background-image:url(../../icons/flags/ch.png); } + select.withicons#country option[value="CI"] { background-image:url(../../icons/flags/ci.png); } + select.withicons#country option[value="CK"] { background-image:url(../../icons/flags/ck.png); } + select.withicons#country option[value="CL"] { background-image:url(../../icons/flags/cl.png); } + select.withicons#country option[value="CM"] { background-image:url(../../icons/flags/cm.png); } + select.withicons#country option[value="CN"] { background-image:url(../../icons/flags/cn.png); } + select.withicons#country option[value="CO"] { background-image:url(../../icons/flags/co.png); } + select.withicons#country option[value="CR"] { background-image:url(../../icons/flags/cr.png); } + select.withicons#country option[value="CS"] { background-image:url(../../icons/flags/cs.png); } + select.withicons#country option[value="CU"] { background-image:url(../../icons/flags/cu.png); } + select.withicons#country option[value="CV"] { background-image:url(../../icons/flags/cv.png); } + select.withicons#country option[value="CX"] { background-image:url(../../icons/flags/cx.png); } + select.withicons#country option[value="CY"] { background-image:url(../../icons/flags/cy.png); } + select.withicons#country option[value="CZ"] { background-image:url(../../icons/flags/cz.png); } + select.withicons#country option[value="DE"] { background-image:url(../../icons/flags/de.png); } + select.withicons#country option[value="DJ"] { background-image:url(../../icons/flags/dj.png); } + select.withicons#country option[value="DK"] { background-image:url(../../icons/flags/dk.png); } + select.withicons#country option[value="DM"] { background-image:url(../../icons/flags/dm.png); } + select.withicons#country option[value="DO"] { background-image:url(../../icons/flags/do.png); } + select.withicons#country option[value="DZ"] { background-image:url(../../icons/flags/dz.png); } + select.withicons#country option[value="EC"] { background-image:url(../../icons/flags/ec.png); } + select.withicons#country option[value="EE"] { background-image:url(../../icons/flags/ee.png); } + select.withicons#country option[value="EG"] { background-image:url(../../icons/flags/eg.png); } + select.withicons#country option[value="EH"] { background-image:url(../../icons/flags/eh.png); } + select.withicons#country option[value="ER"] { background-image:url(../../icons/flags/er.png); } + select.withicons#country option[value="ES"] { background-image:url(../../icons/flags/es.png); } + select.withicons#country option[value="ET"] { background-image:url(../../icons/flags/et.png); } + select.withicons#country option[value="FI"] { background-image:url(../../icons/flags/fi.png); } + select.withicons#country option[value="FJ"] { background-image:url(../../icons/flags/fj.png); } + select.withicons#country option[value="FK"] { background-image:url(../../icons/flags/fk.png); } + select.withicons#country option[value="FM"] { background-image:url(../../icons/flags/fm.png); } + select.withicons#country option[value="FO"] { background-image:url(../../icons/flags/fo.png); } + select.withicons#country option[value="FR"] { background-image:url(../../icons/flags/fr.png); } + select.withicons#country option[value="GA"] { background-image:url(../../icons/flags/ga.png); } + select.withicons#country option[value="GB"] { background-image:url(../../icons/flags/gb.png); } + select.withicons#country option[value="GD"] { background-image:url(../../icons/flags/gd.png); } + select.withicons#country option[value="GE"] { background-image:url(../../icons/flags/ge.png); } + select.withicons#country option[value="GF"] { background-image:url(../../icons/flags/gf.png); } + select.withicons#country option[value="GH"] { background-image:url(../../icons/flags/gh.png); } + select.withicons#country option[value="GI"] { background-image:url(../../icons/flags/gi.png); } + select.withicons#country option[value="GL"] { background-image:url(../../icons/flags/gl.png); } + select.withicons#country option[value="GM"] { background-image:url(../../icons/flags/gm.png); } + select.withicons#country option[value="GN"] { background-image:url(../../icons/flags/gn.png); } + select.withicons#country option[value="GP"] { background-image:url(../../icons/flags/gp.png); } + select.withicons#country option[value="GQ"] { background-image:url(../../icons/flags/gq.png); } + select.withicons#country option[value="GR"] { background-image:url(../../icons/flags/gr.png); } + select.withicons#country option[value="GS"] { background-image:url(../../icons/flags/gs.png); } + select.withicons#country option[value="GT"] { background-image:url(../../icons/flags/gt.png); } + select.withicons#country option[value="GU"] { background-image:url(../../icons/flags/gu.png); } + select.withicons#country option[value="GW"] { background-image:url(../../icons/flags/gw.png); } + select.withicons#country option[value="GY"] { background-image:url(../../icons/flags/gy.png); } + select.withicons#country option[value="HK"] { background-image:url(../../icons/flags/hk.png); } + select.withicons#country option[value="HM"] { background-image:url(../../icons/flags/hm.png); } + select.withicons#country option[value="HN"] { background-image:url(../../icons/flags/hn.png); } + select.withicons#country option[value="HR"] { background-image:url(../../icons/flags/hr.png); } + select.withicons#country option[value="HT"] { background-image:url(../../icons/flags/ht.png); } + select.withicons#country option[value="HU"] { background-image:url(../../icons/flags/hu.png); } + select.withicons#country option[value="ID"] { background-image:url(../../icons/flags/id.png); } + select.withicons#country option[value="IE"] { background-image:url(../../icons/flags/ie.png); } + select.withicons#country option[value="IL"] { background-image:url(../../icons/flags/il.png); } + select.withicons#country option[value="IN"] { background-image:url(../../icons/flags/in.png); } + select.withicons#country option[value="IO"] { background-image:url(../../icons/flags/io.png); } + select.withicons#country option[value="IQ"] { background-image:url(../../icons/flags/iq.png); } + select.withicons#country option[value="IR"] { background-image:url(../../icons/flags/ir.png); } + select.withicons#country option[value="IS"] { background-image:url(../../icons/flags/is.png); } + select.withicons#country option[value="IT"] { background-image:url(../../icons/flags/it.png); } + select.withicons#country option[value="JM"] { background-image:url(../../icons/flags/jm.png); } + select.withicons#country option[value="JO"] { background-image:url(../../icons/flags/jo.png); } + select.withicons#country option[value="JP"] { background-image:url(../../icons/flags/jp.png); } + select.withicons#country option[value="KE"] { background-image:url(../../icons/flags/ke.png); } + select.withicons#country option[value="KG"] { background-image:url(../../icons/flags/kg.png); } + select.withicons#country option[value="KH"] { background-image:url(../../icons/flags/kh.png); } + select.withicons#country option[value="KI"] { background-image:url(../../icons/flags/ki.png); } + select.withicons#country option[value="KM"] { background-image:url(../../icons/flags/km.png); } + select.withicons#country option[value="KN"] { background-image:url(../../icons/flags/kn.png); } + select.withicons#country option[value="KP"] { background-image:url(../../icons/flags/kp.png); } + select.withicons#country option[value="KR"] { background-image:url(../../icons/flags/kr.png); } + select.withicons#country option[value="KW"] { background-image:url(../../icons/flags/kw.png); } + select.withicons#country option[value="KY"] { background-image:url(../../icons/flags/ky.png); } + select.withicons#country option[value="KZ"] { background-image:url(../../icons/flags/kz.png); } + select.withicons#country option[value="LA"] { background-image:url(../../icons/flags/la.png); } + select.withicons#country option[value="LB"] { background-image:url(../../icons/flags/lb.png); } + select.withicons#country option[value="LC"] { background-image:url(../../icons/flags/lc.png); } + select.withicons#country option[value="LI"] { background-image:url(../../icons/flags/li.png); } + select.withicons#country option[value="LK"] { background-image:url(../../icons/flags/lk.png); } + select.withicons#country option[value="LR"] { background-image:url(../../icons/flags/lr.png); } + select.withicons#country option[value="LS"] { background-image:url(../../icons/flags/ls.png); } + select.withicons#country option[value="LT"] { background-image:url(../../icons/flags/lt.png); } + select.withicons#country option[value="LU"] { background-image:url(../../icons/flags/lu.png); } + select.withicons#country option[value="LV"] { background-image:url(../../icons/flags/lv.png); } + select.withicons#country option[value="LY"] { background-image:url(../../icons/flags/ly.png); } + select.withicons#country option[value="MA"] { background-image:url(../../icons/flags/ma.png); } + select.withicons#country option[value="MC"] { background-image:url(../../icons/flags/mc.png); } + select.withicons#country option[value="MD"] { background-image:url(../../icons/flags/md.png); } + select.withicons#country option[value="ME"] { background-image:url(../../icons/flags/me.png); } + select.withicons#country option[value="MG"] { background-image:url(../../icons/flags/mg.png); } + select.withicons#country option[value="MH"] { background-image:url(../../icons/flags/mh.png); } + select.withicons#country option[value="MK"] { background-image:url(../../icons/flags/mk.png); } + select.withicons#country option[value="ML"] { background-image:url(../../icons/flags/ml.png); } + select.withicons#country option[value="MM"] { background-image:url(../../icons/flags/mm.png); } + select.withicons#country option[value="MN"] { background-image:url(../../icons/flags/mn.png); } + select.withicons#country option[value="MO"] { background-image:url(../../icons/flags/mo.png); } + select.withicons#country option[value="MP"] { background-image:url(../../icons/flags/mp.png); } + select.withicons#country option[value="MQ"] { background-image:url(../../icons/flags/mq.png); } + select.withicons#country option[value="MR"] { background-image:url(../../icons/flags/mr.png); } + select.withicons#country option[value="MS"] { background-image:url(../../icons/flags/ms.png); } + select.withicons#country option[value="MT"] { background-image:url(../../icons/flags/mt.png); } + select.withicons#country option[value="MU"] { background-image:url(../../icons/flags/mu.png); } + select.withicons#country option[value="MV"] { background-image:url(../../icons/flags/mv.png); } + select.withicons#country option[value="MW"] { background-image:url(../../icons/flags/mw.png); } + select.withicons#country option[value="MX"] { background-image:url(../../icons/flags/mx.png); } + select.withicons#country option[value="MY"] { background-image:url(../../icons/flags/my.png); } + select.withicons#country option[value="MZ"] { background-image:url(../../icons/flags/mz.png); } + select.withicons#country option[value="NA"] { background-image:url(../../icons/flags/na.png); } + select.withicons#country option[value="NC"] { background-image:url(../../icons/flags/nc.png); } + select.withicons#country option[value="NE"] { background-image:url(../../icons/flags/ne.png); } + select.withicons#country option[value="NF"] { background-image:url(../../icons/flags/nf.png); } + select.withicons#country option[value="NG"] { background-image:url(../../icons/flags/ng.png); } + select.withicons#country option[value="NI"] { background-image:url(../../icons/flags/ni.png); } + select.withicons#country option[value="NL"] { background-image:url(../../icons/flags/nl.png); } + select.withicons#country option[value="NO"] { background-image:url(../../icons/flags/no.png); } + select.withicons#country option[value="NP"] { background-image:url(../../icons/flags/np.png); } + select.withicons#country option[value="NR"] { background-image:url(../../icons/flags/nr.png); } + select.withicons#country option[value="NU"] { background-image:url(../../icons/flags/nu.png); } + select.withicons#country option[value="NZ"] { background-image:url(../../icons/flags/nz.png); } + select.withicons#country option[value="OM"] { background-image:url(../../icons/flags/om.png); } + select.withicons#country option[value="PA"] { background-image:url(../../icons/flags/pa.png); } + select.withicons#country option[value="PE"] { background-image:url(../../icons/flags/pe.png); } + select.withicons#country option[value="PF"] { background-image:url(../../icons/flags/pf.png); } + select.withicons#country option[value="PG"] { background-image:url(../../icons/flags/pg.png); } + select.withicons#country option[value="PH"] { background-image:url(../../icons/flags/ph.png); } + select.withicons#country option[value="PK"] { background-image:url(../../icons/flags/pk.png); } + select.withicons#country option[value="PL"] { background-image:url(../../icons/flags/pl.png); } + select.withicons#country option[value="PM"] { background-image:url(../../icons/flags/pm.png); } + select.withicons#country option[value="PN"] { background-image:url(../../icons/flags/pn.png); } + select.withicons#country option[value="PR"] { background-image:url(../../icons/flags/pr.png); } + select.withicons#country option[value="PS"] { background-image:url(../../icons/flags/ps.png); } + select.withicons#country option[value="PT"] { background-image:url(../../icons/flags/pt.png); } + select.withicons#country option[value="PW"] { background-image:url(../../icons/flags/pw.png); } + select.withicons#country option[value="PY"] { background-image:url(../../icons/flags/py.png); } + select.withicons#country option[value="QA"] { background-image:url(../../icons/flags/qa.png); } + select.withicons#country option[value="RE"] { background-image:url(../../icons/flags/re.png); } + select.withicons#country option[value="RO"] { background-image:url(../../icons/flags/ro.png); } + select.withicons#country option[value="RS"] { background-image:url(../../icons/flags/rs.png); } + select.withicons#country option[value="RU"] { background-image:url(../../icons/flags/ru.png); } + select.withicons#country option[value="RW"] { background-image:url(../../icons/flags/rw.png); } + select.withicons#country option[value="SA"] { background-image:url(../../icons/flags/sa.png); } + select.withicons#country option[value="SB"] { background-image:url(../../icons/flags/sb.png); } + select.withicons#country option[value="SC"] { background-image:url(../../icons/flags/sc.png); } + select.withicons#country option[value="SD"] { background-image:url(../../icons/flags/sd.png); } + select.withicons#country option[value="SE"] { background-image:url(../../icons/flags/se.png); } + select.withicons#country option[value="SG"] { background-image:url(../../icons/flags/sg.png); } + select.withicons#country option[value="SH"] { background-image:url(../../icons/flags/sh.png); } + select.withicons#country option[value="SI"] { background-image:url(../../icons/flags/si.png); } + select.withicons#country option[value="SJ"] { background-image:url(../../icons/flags/sj.png); } + select.withicons#country option[value="SK"] { background-image:url(../../icons/flags/sk.png); } + select.withicons#country option[value="SL"] { background-image:url(../../icons/flags/sl.png); } + select.withicons#country option[value="SM"] { background-image:url(../../icons/flags/sm.png); } + select.withicons#country option[value="SN"] { background-image:url(../../icons/flags/sn.png); } + select.withicons#country option[value="SO"] { background-image:url(../../icons/flags/so.png); } + select.withicons#country option[value="SR"] { background-image:url(../../icons/flags/sr.png); } + select.withicons#country option[value="ST"] { background-image:url(../../icons/flags/st.png); } + select.withicons#country option[value="SV"] { background-image:url(../../icons/flags/sv.png); } + select.withicons#country option[value="SY"] { background-image:url(../../icons/flags/sy.png); } + select.withicons#country option[value="SZ"] { background-image:url(../../icons/flags/sz.png); } + select.withicons#country option[value="TC"] { background-image:url(../../icons/flags/tc.png); } + select.withicons#country option[value="TD"] { background-image:url(../../icons/flags/td.png); } + select.withicons#country option[value="TF"] { background-image:url(../../icons/flags/tf.png); } + select.withicons#country option[value="TG"] { background-image:url(../../icons/flags/tg.png); } + select.withicons#country option[value="TH"] { background-image:url(../../icons/flags/th.png); } + select.withicons#country option[value="TJ"] { background-image:url(../../icons/flags/tj.png); } + select.withicons#country option[value="TK"] { background-image:url(../../icons/flags/tk.png); } + select.withicons#country option[value="TL"] { background-image:url(../../icons/flags/tl.png); } + select.withicons#country option[value="TM"] { background-image:url(../../icons/flags/tm.png); } + select.withicons#country option[value="TN"] { background-image:url(../../icons/flags/tn.png); } + select.withicons#country option[value="TO"] { background-image:url(../../icons/flags/to.png); } + select.withicons#country option[value="TR"] { background-image:url(../../icons/flags/tr.png); } + select.withicons#country option[value="TT"] { background-image:url(../../icons/flags/tt.png); } + select.withicons#country option[value="TV"] { background-image:url(../../icons/flags/tv.png); } + select.withicons#country option[value="TW"] { background-image:url(../../icons/flags/tw.png); } + select.withicons#country option[value="TZ"] { background-image:url(../../icons/flags/tz.png); } + select.withicons#country option[value="UA"] { background-image:url(../../icons/flags/ua.png); } + select.withicons#country option[value="UG"] { background-image:url(../../icons/flags/ug.png); } + select.withicons#country option[value="UM"] { background-image:url(../../icons/flags/um.png); } + select.withicons#country option[value="US"] { background-image:url(../../icons/flags/us.png); } + select.withicons#country option[value="UY"] { background-image:url(../../icons/flags/uy.png); } + select.withicons#country option[value="UZ"] { background-image:url(../../icons/flags/uz.png); } + select.withicons#country option[value="VA"] { background-image:url(../../icons/flags/va.png); } + select.withicons#country option[value="VC"] { background-image:url(../../icons/flags/vc.png); } + select.withicons#country option[value="VE"] { background-image:url(../../icons/flags/ve.png); } + select.withicons#country option[value="VG"] { background-image:url(../../icons/flags/vg.png); } + select.withicons#country option[value="VI"] { background-image:url(../../icons/flags/vi.png); } + select.withicons#country option[value="VN"] { background-image:url(../../icons/flags/vn.png); } + select.withicons#country option[value="VU"] { background-image:url(../../icons/flags/vu.png); } + select.withicons#country option[value="WF"] { background-image:url(../../icons/flags/wf.png); } + select.withicons#country option[value="WS"] { background-image:url(../../icons/flags/ws.png); } + select.withicons#country option[value="YE"] { background-image:url(../../icons/flags/ye.png); } + select.withicons#country option[value="YT"] { background-image:url(../../icons/flags/yt.png); } + select.withicons#country option[value="ZA"] { background-image:url(../../icons/flags/za.png); } + select.withicons#country option[value="ZM"] { background-image:url(../../icons/flags/zm.png); } + select.withicons#country option[value="ZW"] { background-image:url(../../icons/flags/zw.png); } + + select.withicons#language option[value="ad"] { background-image:url(../../icons/flags/ad.png); } + select.withicons#language option[value="ae"] { background-image:url(../../icons/flags/ae.png); } + select.withicons#language option[value="af"] { background-image:url(../../icons/flags/af.png); } + select.withicons#language option[value="ag"] { background-image:url(../../icons/flags/ag.png); } + select.withicons#language option[value="ai"] { background-image:url(../../icons/flags/ai.png); } + select.withicons#language option[value="al"] { background-image:url(../../icons/flags/al.png); } + select.withicons#language option[value="am"] { background-image:url(../../icons/flags/am.png); } + select.withicons#language option[value="an"] { background-image:url(../../icons/flags/an.png); } + select.withicons#language option[value="ao"] { background-image:url(../../icons/flags/ao.png); } + select.withicons#language option[value="aq"] { background-image:url(../../icons/flags/aq.png); } + select.withicons#language option[value="ar"] { background-image:url(../../icons/flags/ar.png); } + select.withicons#language option[value="as"] { background-image:url(../../icons/flags/as.png); } + select.withicons#language option[value="at"] { background-image:url(../../icons/flags/at.png); } + select.withicons#language option[value="au"] { background-image:url(../../icons/flags/au.png); } + select.withicons#language option[value="aw"] { background-image:url(../../icons/flags/aw.png); } + select.withicons#language option[value="ax"] { background-image:url(../../icons/flags/ax.png); } + select.withicons#language option[value="az"] { background-image:url(../../icons/flags/az.png); } + select.withicons#language option[value="ba"] { background-image:url(../../icons/flags/ba.png); } + select.withicons#language option[value="bb"] { background-image:url(../../icons/flags/bb.png); } + select.withicons#language option[value="bd"] { background-image:url(../../icons/flags/bd.png); } + select.withicons#language option[value="be"] { background-image:url(../../icons/flags/be.png); } + select.withicons#language option[value="bf"] { background-image:url(../../icons/flags/bf.png); } + select.withicons#language option[value="bg"] { background-image:url(../../icons/flags/bg.png); } + select.withicons#language option[value="bh"] { background-image:url(../../icons/flags/bh.png); } + select.withicons#language option[value="bi"] { background-image:url(../../icons/flags/bi.png); } + select.withicons#language option[value="bj"] { background-image:url(../../icons/flags/bj.png); } + select.withicons#language option[value="bm"] { background-image:url(../../icons/flags/bm.png); } + select.withicons#language option[value="bn"] { background-image:url(../../icons/flags/bn.png); } + select.withicons#language option[value="bo"] { background-image:url(../../icons/flags/bo.png); } + select.withicons#language option[value="br"] { background-image:url(../../icons/flags/br.png); } + select.withicons#language option[value="bs"] { background-image:url(../../icons/flags/bs.png); } + select.withicons#language option[value="bt"] { background-image:url(../../icons/flags/bt.png); } + select.withicons#language option[value="bv"] { background-image:url(../../icons/flags/bv.png); } + select.withicons#language option[value="bw"] { background-image:url(../../icons/flags/bw.png); } + select.withicons#language option[value="by"] { background-image:url(../../icons/flags/by.png); } + select.withicons#language option[value="bz"] { background-image:url(../../icons/flags/bz.png); } + select.withicons#language option[value="ca"] { background-image:url(../../icons/flags/ca.png); } + select.withicons#language option[value="cc"] { background-image:url(../../icons/flags/cc.png); } + select.withicons#language option[value="cd"] { background-image:url(../../icons/flags/cd.png); } + select.withicons#language option[value="cf"] { background-image:url(../../icons/flags/cf.png); } + select.withicons#language option[value="cg"] { background-image:url(../../icons/flags/cg.png); } + select.withicons#language option[value="ch"] { background-image:url(../../icons/flags/ch.png); } + select.withicons#language option[value="ci"] { background-image:url(../../icons/flags/ci.png); } + select.withicons#language option[value="ck"] { background-image:url(../../icons/flags/ck.png); } + select.withicons#language option[value="cl"] { background-image:url(../../icons/flags/cl.png); } + select.withicons#language option[value="cm"] { background-image:url(../../icons/flags/cm.png); } + select.withicons#language option[value="cn"] { background-image:url(../../icons/flags/cn.png); } + select.withicons#language option[value="co"] { background-image:url(../../icons/flags/co.png); } + select.withicons#language option[value="cr"] { background-image:url(../../icons/flags/cr.png); } + select.withicons#language option[value="cs"] { background-image:url(../../icons/flags/cs.png); } + select.withicons#language option[value="cu"] { background-image:url(../../icons/flags/cu.png); } + select.withicons#language option[value="cv"] { background-image:url(../../icons/flags/cv.png); } + select.withicons#language option[value="cx"] { background-image:url(../../icons/flags/cx.png); } + select.withicons#language option[value="cy"] { background-image:url(../../icons/flags/cy.png); } + select.withicons#language option[value="cz"] { background-image:url(../../icons/flags/cz.png); } + select.withicons#language option[value="de"] { background-image:url(../../icons/flags/de.png); } + select.withicons#language option[value="dj"] { background-image:url(../../icons/flags/dj.png); } + select.withicons#language option[value="dk"] { background-image:url(../../icons/flags/dk.png); } + select.withicons#language option[value="dm"] { background-image:url(../../icons/flags/dm.png); } + select.withicons#language option[value="do"] { background-image:url(../../icons/flags/do.png); } + select.withicons#language option[value="dz"] { background-image:url(../../icons/flags/dz.png); } + select.withicons#language option[value="ec"] { background-image:url(../../icons/flags/ec.png); } + select.withicons#language option[value="ee"] { background-image:url(../../icons/flags/ee.png); } + select.withicons#language option[value="eg"] { background-image:url(../../icons/flags/eg.png); } + select.withicons#language option[value="eh"] { background-image:url(../../icons/flags/eh.png); } + select.withicons#language option[value="en"] { background-image:url(../../icons/flags/gb.png); } + select.withicons#language option[value="er"] { background-image:url(../../icons/flags/er.png); } + select.withicons#language option[value="es"] { background-image:url(../../icons/flags/es.png); } + select.withicons#language option[value="et"] { background-image:url(../../icons/flags/et.png); } + select.withicons#language option[value="fi"] { background-image:url(../../icons/flags/fi.png); } + select.withicons#language option[value="fj"] { background-image:url(../../icons/flags/fj.png); } + select.withicons#language option[value="fk"] { background-image:url(../../icons/flags/fk.png); } + select.withicons#language option[value="fm"] { background-image:url(../../icons/flags/fm.png); } + select.withicons#language option[value="fo"] { background-image:url(../../icons/flags/fo.png); } + select.withicons#language option[value="fr"] { background-image:url(../../icons/flags/fr.png); } + select.withicons#language option[value="ga"] { background-image:url(../../icons/flags/ga.png); } + select.withicons#language option[value="gb"] { background-image:url(../../icons/flags/gb.png); } + select.withicons#language option[value="gd"] { background-image:url(../../icons/flags/gd.png); } + select.withicons#language option[value="ge"] { background-image:url(../../icons/flags/ge.png); } + select.withicons#language option[value="gf"] { background-image:url(../../icons/flags/gf.png); } + select.withicons#language option[value="gh"] { background-image:url(../../icons/flags/gh.png); } + select.withicons#language option[value="gi"] { background-image:url(../../icons/flags/gi.png); } + select.withicons#language option[value="gl"] { background-image:url(../../icons/flags/gl.png); } + select.withicons#language option[value="gm"] { background-image:url(../../icons/flags/gm.png); } + select.withicons#language option[value="gn"] { background-image:url(../../icons/flags/gn.png); } + select.withicons#language option[value="gp"] { background-image:url(../../icons/flags/gp.png); } + select.withicons#language option[value="gq"] { background-image:url(../../icons/flags/gq.png); } + select.withicons#language option[value="gr"] { background-image:url(../../icons/flags/gr.png); } + select.withicons#language option[value="gs"] { background-image:url(../../icons/flags/gs.png); } + select.withicons#language option[value="gt"] { background-image:url(../../icons/flags/gt.png); } + select.withicons#language option[value="gu"] { background-image:url(../../icons/flags/gu.png); } + select.withicons#language option[value="gw"] { background-image:url(../../icons/flags/gw.png); } + select.withicons#language option[value="gy"] { background-image:url(../../icons/flags/gy.png); } + select.withicons#language option[value="hk"] { background-image:url(../../icons/flags/hk.png); } + select.withicons#language option[value="hm"] { background-image:url(../../icons/flags/hm.png); } + select.withicons#language option[value="hn"] { background-image:url(../../icons/flags/hn.png); } + select.withicons#language option[value="hr"] { background-image:url(../../icons/flags/hr.png); } + select.withicons#language option[value="ht"] { background-image:url(../../icons/flags/ht.png); } + select.withicons#language option[value="hu"] { background-image:url(../../icons/flags/hu.png); } + select.withicons#language option[value="id"] { background-image:url(../../icons/flags/id.png); } + select.withicons#language option[value="ie"] { background-image:url(../../icons/flags/ie.png); } + select.withicons#language option[value="il"] { background-image:url(../../icons/flags/il.png); } + select.withicons#language option[value="in"] { background-image:url(../../icons/flags/in.png); } + select.withicons#language option[value="io"] { background-image:url(../../icons/flags/io.png); } + select.withicons#language option[value="iq"] { background-image:url(../../icons/flags/iq.png); } + select.withicons#language option[value="ir"] { background-image:url(../../icons/flags/ir.png); } + select.withicons#language option[value="is"] { background-image:url(../../icons/flags/is.png); } + select.withicons#language option[value="it"] { background-image:url(../../icons/flags/it.png); } + select.withicons#language option[value="jm"] { background-image:url(../../icons/flags/jm.png); } + select.withicons#language option[value="jo"] { background-image:url(../../icons/flags/jo.png); } + select.withicons#language option[value="jp"] { background-image:url(../../icons/flags/jp.png); } + select.withicons#language option[value="ke"] { background-image:url(../../icons/flags/ke.png); } + select.withicons#language option[value="kg"] { background-image:url(../../icons/flags/kg.png); } + select.withicons#language option[value="kh"] { background-image:url(../../icons/flags/kh.png); } + select.withicons#language option[value="ki"] { background-image:url(../../icons/flags/ki.png); } + select.withicons#language option[value="km"] { background-image:url(../../icons/flags/km.png); } + select.withicons#language option[value="kn"] { background-image:url(../../icons/flags/kn.png); } + select.withicons#language option[value="kp"] { background-image:url(../../icons/flags/kp.png); } + select.withicons#language option[value="kr"] { background-image:url(../../icons/flags/kr.png); } + select.withicons#language option[value="kw"] { background-image:url(../../icons/flags/kw.png); } + select.withicons#language option[value="ky"] { background-image:url(../../icons/flags/ky.png); } + select.withicons#language option[value="kz"] { background-image:url(../../icons/flags/kz.png); } + select.withicons#language option[value="la"] { background-image:url(../../icons/flags/la.png); } + select.withicons#language option[value="lb"] { background-image:url(../../icons/flags/lb.png); } + select.withicons#language option[value="lc"] { background-image:url(../../icons/flags/lc.png); } + select.withicons#language option[value="li"] { background-image:url(../../icons/flags/li.png); } + select.withicons#language option[value="lk"] { background-image:url(../../icons/flags/lk.png); } + select.withicons#language option[value="lr"] { background-image:url(../../icons/flags/lr.png); } + select.withicons#language option[value="ls"] { background-image:url(../../icons/flags/ls.png); } + select.withicons#language option[value="lt"] { background-image:url(../../icons/flags/lt.png); } + select.withicons#language option[value="lu"] { background-image:url(../../icons/flags/lu.png); } + select.withicons#language option[value="lv"] { background-image:url(../../icons/flags/lv.png); } + select.withicons#language option[value="ly"] { background-image:url(../../icons/flags/ly.png); } + select.withicons#language option[value="ma"] { background-image:url(../../icons/flags/ma.png); } + select.withicons#language option[value="mc"] { background-image:url(../../icons/flags/mc.png); } + select.withicons#language option[value="md"] { background-image:url(../../icons/flags/md.png); } + select.withicons#language option[value="me"] { background-image:url(../../icons/flags/me.png); } + select.withicons#language option[value="mg"] { background-image:url(../../icons/flags/mg.png); } + select.withicons#language option[value="mh"] { background-image:url(../../icons/flags/mh.png); } + select.withicons#language option[value="mk"] { background-image:url(../../icons/flags/mk.png); } + select.withicons#language option[value="ml"] { background-image:url(../../icons/flags/ml.png); } + select.withicons#language option[value="mm"] { background-image:url(../../icons/flags/mm.png); } + select.withicons#language option[value="mn"] { background-image:url(../../icons/flags/mn.png); } + select.withicons#language option[value="mo"] { background-image:url(../../icons/flags/mo.png); } + select.withicons#language option[value="mp"] { background-image:url(../../icons/flags/mp.png); } + select.withicons#language option[value="mq"] { background-image:url(../../icons/flags/mq.png); } + select.withicons#language option[value="mr"] { background-image:url(../../icons/flags/mr.png); } + select.withicons#language option[value="ms"] { background-image:url(../../icons/flags/ms.png); } + select.withicons#language option[value="mt"] { background-image:url(../../icons/flags/mt.png); } + select.withicons#language option[value="mu"] { background-image:url(../../icons/flags/mu.png); } + select.withicons#language option[value="mv"] { background-image:url(../../icons/flags/mv.png); } + select.withicons#language option[value="mw"] { background-image:url(../../icons/flags/mw.png); } + select.withicons#language option[value="mx"] { background-image:url(../../icons/flags/mx.png); } + select.withicons#language option[value="my"] { background-image:url(../../icons/flags/my.png); } + select.withicons#language option[value="mz"] { background-image:url(../../icons/flags/mz.png); } + select.withicons#language option[value="na"] { background-image:url(../../icons/flags/na.png); } + select.withicons#language option[value="nc"] { background-image:url(../../icons/flags/nc.png); } + select.withicons#language option[value="ne"] { background-image:url(../../icons/flags/ne.png); } + select.withicons#language option[value="nf"] { background-image:url(../../icons/flags/nf.png); } + select.withicons#language option[value="ng"] { background-image:url(../../icons/flags/ng.png); } + select.withicons#language option[value="ni"] { background-image:url(../../icons/flags/ni.png); } + select.withicons#language option[value="nl"] { background-image:url(../../icons/flags/nl.png); } + select.withicons#language option[value="no"] { background-image:url(../../icons/flags/no.png); } + select.withicons#language option[value="np"] { background-image:url(../../icons/flags/np.png); } + select.withicons#language option[value="nr"] { background-image:url(../../icons/flags/nr.png); } + select.withicons#language option[value="nu"] { background-image:url(../../icons/flags/nu.png); } + select.withicons#language option[value="nz"] { background-image:url(../../icons/flags/nz.png); } + select.withicons#language option[value="om"] { background-image:url(../../icons/flags/om.png); } + select.withicons#language option[value="pa"] { background-image:url(../../icons/flags/pa.png); } + select.withicons#language option[value="pe"] { background-image:url(../../icons/flags/pe.png); } + select.withicons#language option[value="pf"] { background-image:url(../../icons/flags/pf.png); } + select.withicons#language option[value="pg"] { background-image:url(../../icons/flags/pg.png); } + select.withicons#language option[value="ph"] { background-image:url(../../icons/flags/ph.png); } + select.withicons#language option[value="pk"] { background-image:url(../../icons/flags/pk.png); } + select.withicons#language option[value="pl"] { background-image:url(../../icons/flags/pl.png); } + select.withicons#language option[value="pm"] { background-image:url(../../icons/flags/pm.png); } + select.withicons#language option[value="pn"] { background-image:url(../../icons/flags/pn.png); } + select.withicons#language option[value="pr"] { background-image:url(../../icons/flags/pr.png); } + select.withicons#language option[value="ps"] { background-image:url(../../icons/flags/ps.png); } + select.withicons#language option[value="pt"] { background-image:url(../../icons/flags/pt.png); } + select.withicons#language option[value="pw"] { background-image:url(../../icons/flags/pw.png); } + select.withicons#language option[value="py"] { background-image:url(../../icons/flags/py.png); } + select.withicons#language option[value="qa"] { background-image:url(../../icons/flags/qa.png); } + select.withicons#language option[value="re"] { background-image:url(../../icons/flags/re.png); } + select.withicons#language option[value="ro"] { background-image:url(../../icons/flags/ro.png); } + select.withicons#language option[value="rs"] { background-image:url(../../icons/flags/rs.png); } + select.withicons#language option[value="ru"] { background-image:url(../../icons/flags/ru.png); } + select.withicons#language option[value="rw"] { background-image:url(../../icons/flags/rw.png); } + select.withicons#language option[value="sa"] { background-image:url(../../icons/flags/sa.png); } + select.withicons#language option[value="sb"] { background-image:url(../../icons/flags/sb.png); } + select.withicons#language option[value="sc"] { background-image:url(../../icons/flags/sc.png); } + select.withicons#language option[value="sd"] { background-image:url(../../icons/flags/sd.png); } + select.withicons#language option[value="se"] { background-image:url(../../icons/flags/se.png); } + select.withicons#language option[value="sg"] { background-image:url(../../icons/flags/sg.png); } + select.withicons#language option[value="sh"] { background-image:url(../../icons/flags/sh.png); } + select.withicons#language option[value="si"] { background-image:url(../../icons/flags/si.png); } + select.withicons#language option[value="sj"] { background-image:url(../../icons/flags/sj.png); } + select.withicons#language option[value="sk"] { background-image:url(../../icons/flags/sk.png); } + select.withicons#language option[value="sl"] { background-image:url(../../icons/flags/sl.png); } + select.withicons#language option[value="sm"] { background-image:url(../../icons/flags/sm.png); } + select.withicons#language option[value="sn"] { background-image:url(../../icons/flags/sn.png); } + select.withicons#language option[value="so"] { background-image:url(../../icons/flags/so.png); } + select.withicons#language option[value="sr"] { background-image:url(../../icons/flags/sr.png); } + select.withicons#language option[value="st"] { background-image:url(../../icons/flags/st.png); } + select.withicons#language option[value="sv"] { background-image:url(../../icons/flags/sv.png); } + select.withicons#language option[value="sy"] { background-image:url(../../icons/flags/sy.png); } + select.withicons#language option[value="sz"] { background-image:url(../../icons/flags/sz.png); } + select.withicons#language option[value="tc"] { background-image:url(../../icons/flags/tc.png); } + select.withicons#language option[value="td"] { background-image:url(../../icons/flags/td.png); } + select.withicons#language option[value="tf"] { background-image:url(../../icons/flags/tf.png); } + select.withicons#language option[value="tg"] { background-image:url(../../icons/flags/tg.png); } + select.withicons#language option[value="th"] { background-image:url(../../icons/flags/th.png); } + select.withicons#language option[value="tj"] { background-image:url(../../icons/flags/tj.png); } + select.withicons#language option[value="tk"] { background-image:url(../../icons/flags/tk.png); } + select.withicons#language option[value="tl"] { background-image:url(../../icons/flags/tl.png); } + select.withicons#language option[value="tm"] { background-image:url(../../icons/flags/tm.png); } + select.withicons#language option[value="tn"] { background-image:url(../../icons/flags/tn.png); } + select.withicons#language option[value="to"] { background-image:url(../../icons/flags/to.png); } + select.withicons#language option[value="tr"] { background-image:url(../../icons/flags/tr.png); } + select.withicons#language option[value="tt"] { background-image:url(../../icons/flags/tt.png); } + select.withicons#language option[value="tv"] { background-image:url(../../icons/flags/tv.png); } + select.withicons#language option[value="tw"] { background-image:url(../../icons/flags/tw.png); } + select.withicons#language option[value="tz"] { background-image:url(../../icons/flags/tz.png); } + select.withicons#language option[value="ua"] { background-image:url(../../icons/flags/ua.png); } + select.withicons#language option[value="ug"] { background-image:url(../../icons/flags/ug.png); } + select.withicons#language option[value="um"] { background-image:url(../../icons/flags/um.png); } + select.withicons#language option[value="us"] { background-image:url(../../icons/flags/us.png); } + select.withicons#language option[value="uy"] { background-image:url(../../icons/flags/uy.png); } + select.withicons#language option[value="uz"] { background-image:url(../../icons/flags/uz.png); } + select.withicons#language option[value="va"] { background-image:url(../../icons/flags/va.png); } + select.withicons#language option[value="vc"] { background-image:url(../../icons/flags/vc.png); } + select.withicons#language option[value="ve"] { background-image:url(../../icons/flags/ve.png); } + select.withicons#language option[value="vg"] { background-image:url(../../icons/flags/vg.png); } + select.withicons#language option[value="vi"] { background-image:url(../../icons/flags/vi.png); } + select.withicons#language option[value="vn"] { background-image:url(../../icons/flags/vn.png); } + select.withicons#language option[value="vu"] { background-image:url(../../icons/flags/vu.png); } + select.withicons#language option[value="wf"] { background-image:url(../../icons/flags/wf.png); } + select.withicons#language option[value="ws"] { background-image:url(../../icons/flags/ws.png); } + select.withicons#language option[value="ye"] { background-image:url(../../icons/flags/ye.png); } + select.withicons#language option[value="yt"] { background-image:url(../../icons/flags/yt.png); } + select.withicons#language option[value="za"] { background-image:url(../../icons/flags/za.png); } + select.withicons#language option[value="zm"] { background-image:url(../../icons/flags/zm.png); } + select.withicons#language option[value="zw"] { background-image:url(../../icons/flags/zw.png); } + +} + diff --git a/interface/web/themes/default/css/screen/uni-form-generic.css b/interface/web/themes/default/css/screen/uni-form-generic.css new file mode 100644 index 0000000000..f9e0f390cc --- /dev/null +++ b/interface/web/themes/default/css/screen/uni-form-generic.css @@ -0,0 +1,136 @@ +/* Uni-Form by Dragan Babic [Superawesome Industries] - http: //sprawsm.com/uni-form/ */ +/* Some rights reserved - http: //creativecommons.org/licenses/by-sa/2.5/ */ +/* Do not edit this file directly, make your changes to uni-form.css in the same folder */ + +/* ------------------------------------------------------------------------------ */ + +.uniForm{ margin: 0; padding: 0; position: relative; z-index: 1; } /* reset stuff */ + + /* Some generals and more resets */ + .uniForm fieldset{ border: none; margin: 0; padding: 0; } + .uniForm fieldset legend{ margin: 0; padding: 0; } + + /* This is the main unit that contains our form elements */ + .uniForm .ctrlHolder, + .uniForm .buttonHolder{ margin: 0; padding: 0; clear: both; } + + /* Clear all floats */ + .uniForm:after, + .uniForm .buttonHolder:after, + .uniForm .ctrlHolder:after, + .uniForm .ctrlHolder .multiField:after, + .uniForm .inlineLabel:after{ content: "."; display: block; height: 0; line-height: 0; font-size: 0; clear: both; min-height: 0; visibility: hidden; } + + /* A class to be used on a label that contains a checkbox or a radio button */ + .uniForm .inlineLabel, + .uniForm .inlineLabels .inlineLabel, + .uniForm .blockLabels .inlineLabel{ width: auto; float: none; margin: 0; display: block; } + /* IE shows borders & padding on checkboxes and radio buttons if they are declared on an input element, remove them */ + /* Legacy/Inheritance fix */ + .uniForm .inlineLabel input, + .uniForm .inlineLabels .inlineLabel input, + .uniForm .blockLabels .inlineLabel input{ border: none; padding: 0; margin: 0; } + +/* ------------------------------------------------------------------------------ */ + + /* Styles for form controls where labels are above the input elements */ + /* Set the class of the parent (preferably to a fieldset) to .blockLabels */ + + .uniForm label, + .uniForm .label, + .uniForm .blockLabels label, + .uniForm .blockLabels .label{ display: block; float: none; padding: 0; line-height: 100%; width: auto; } + + /* Float the input elements */ + .uniForm .textInput, + .uniForm .blockLabels .textInput, + .uniForm .blockLabels .fileUpload, + .uniForm .selectInput, + .uniForm .blockLabels .selectInput, + .uniForm .blockLabels select, + .uniForm textarea, + .uniForm .blockLabels textarea{ float: left; } + + /* Postition the hints */ + .uniForm .formHint, + .uniForm .blockLabels .formHint{ float: right; margin: 0; clear: none; } + + /* Position the elements inside combo boxes (multiple selects/checkboxes/radio buttons per unit) */ + .uniForm .multiField, + .uniForm .blockLabels .multiField{ width: auto; float: left; } + .uniForm .multiField .inlineLabel, + .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } + .uniForm .multiField .blockLabel, + .uniForm .blockLabels .multiField .blockLabel{ float: left; width: auto; margin: 0; } + .uniForm .multiField .blockLabel .textInput, + .uniForm .multiField .blockLabel .selectInput, + .uniForm .multiField .blockLabel select, + .uniForm .blockLabels .multiField .blockLabel .textInput, + .uniForm .blockLabels .multiField .blockLabel .selectInput, + .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: 0; } + +/* ------------------------------------------------------------------------------ */ + + /* Styles for form controls where labels are in line with the input elements */ + /* Set the class of the parent (preferably to a fieldset) to .inlineLabels */ + .uniForm .inlineLabels label, + .uniForm .inlineLabels .label{ float: left; margin: 0; padding: 0; line-height: 100%; position: relative; } + + /* Float the input elements */ + .uniForm .inlineLabels .textInput, + .uniForm .inlineLabels .fileUpload, + .uniForm .inlineLabels .selectInput, + .uniForm .inlineLabels select, + .uniForm .inlineLabels textarea{ float: left; } + + /* Postition the hints */ + .uniForm .inlineLabels .formHint{ clear: both; float: none; } + .uniForm .inlineLabels .multiField{ float: left; } + .uniForm .inlineLabels .multiField .inlineLabel{} + .uniForm .inlineLabels .multiField .blockLabel{} + .uniForm .inlineLabels .multiField .blockLabel .textInput, + .uniForm .inlineLabels .multiField .blockLabel .selectInput, + .uniForm .inlineLabels .multiField .blockLabel select{ display: block; width: 100%; float: none; } + .uniForm .inlineLabels .multiField select{ float: left; } + +/* ------------------------------------------------------------------------------ */ + + /* Required fields asterisk styling for .blockLabels */ + .uniForm label em, + .uniForm .label em, + .uniForm .blockLabels label em, + .uniForm .blockLabels .label em{ position: absolute; left: -7px; } + + /* Required fields asterisk styling for .inlineLabels */ + .uniForm .inlineLabels label em, + .uniForm .inlineLabels .label em{ display: block; position: absolute; left: auto; right: 0; font-style: normal; font-weight: bold; } + .uniForm .inlineLabel em{ position: absolute; left: 7px; } + +/* ------------------------------------------------------------------------------ */ + + /* Messages */ + .uniForm #errorMsg, + .uniForm .error{ + } + .uniForm #errorMsg dt, + .uniForm #errorMsg h3{ + } + .uniForm #errorMsg dd{ + } + .uniForm #errorMsg ol{ + } + .uniForm #errorMsg ol li{ + } + .uniForm .errorField{ + } + + .uniForm #OKMsg{ + } + +/* ------------------------------------------------------------------------------ */ + + /* Columns */ + + .uniForm .col{ float: left; } + .uniForm .col.first{} + .uniForm .col.last{} \ No newline at end of file diff --git a/interface/web/themes/default/css/screen/uni-form.css b/interface/web/themes/default/css/screen/uni-form.css new file mode 100644 index 0000000000..f773fbac49 --- /dev/null +++ b/interface/web/themes/default/css/screen/uni-form.css @@ -0,0 +1,128 @@ +/* Keep in mind that wherever you see 'Required property' it means that the property must exist */ + +/* ------------------------------------------------------------------------------ */ + + /* Generals */ + .uniForm fieldset{} + .uniForm fieldset legend{ color: #333; font-weight: bold; font-size: 100%; margin: 0; padding: 1.5em 1.5em 1.5em 0; } + + /* This is the main unit that contains our form elements */ + .uniForm .ctrlHolder{ padding: 3px; border-bottom: 1px dotted #dfdfdf; } + + .uniForm .buttonHolder{ + text-align: right; + background: #CEDEEF url("../../images/buttonHolder_bg.gif") no-repeat right; + margin: 1em 0; + padding: 8px; + } + .uniForm .resetButton{ float: left; } + .uniForm .primaryAction{ font-weight: bold; } + + /* This class gets added to div.ctrlHolder to highlight the row */ + .uniForm .focused{ background: #fffcdf; } + + /* .inlineLabel is used for inputs within labels - checkboxes and radio buttons */ + .uniForm .inlineLabel input, + .uniForm .inlineLabels .inlineLabel input, + .uniForm .blockLabels .inlineLabel input{ float: left; margin: 0 .4em 0 0; } + .uniForm .inlineLabel span{ float: left; width: 90%; } + +/* ------------------------------------------------------------------------------ */ + + /* .blockLabels (default style, will be applied even if you don't class the parent element) */ + .uniForm .blockLabels .ctrlHolder{} + + .uniForm label, + .uniForm .blockLabels label, + .uniForm .blockLabels .label{ margin: 0 0 .5em 0; } + + .uniForm .textInput, + .uniForm .blockLabels .textInput, + .uniForm .blockLabels .fileUpload{ width: 53%; /* <- Required property */ } + + .uniForm .selectInput, + .uniForm select, + .uniForm .blockLabels .selectInput, + .uniForm .blockLabels select{ width: 53.5%; /* <- Required property */ } + .uniForm textarea, + .uniForm .blockLabels textarea{ width: 53%; /* <- Required property */ height: 12em; } + + .uniForm .formHint, + .uniForm .blockLabels .formHint{ width: 45%; /* <- Required property */ font-size: .9em; color: #777; position: relative; top: -.5em; } + + .uniForm .multiField, + .uniForm .blockLabels .multiField{ width: 53%; } + .uniForm .multiField .inlineLabel, + .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } + .uniForm .multiField .blockLabel, + .uniForm .blockLabels .multiField .blockLabel{ width: 30%; margin: 0 10px 0 0; } + .uniForm .multiField .blockLabel .textInput, + .uniForm .multiField .blockLabel .selectInput, + .uniForm .multiField .blockLabel select, + .uniForm .blockLabels .multiField .blockLabel .textInput, + .uniForm .blockLabels .multiField .blockLabel .selectInput, + .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: .3em 0 0 0; } + +/* ------------------------------------------------------------------------------ */ + + /* .inlineLabels */ + .uniForm .inlineLabels .ctrlHolder{} + + .uniForm .inlineLabels label, + .uniForm .inlineLabels .label{ width: 45%; /* <- Required property */ margin: .3em 2% 0 0; /* <- Required property */ } + + .uniForm .inlineLabels .textInput, + .uniForm .inlineLabels .fileUpload{ width: 45%; /* <- Required property */ } + + .uniForm .inlineLabels .selectInput, + .uniForm .inlineLabels select{ width: 45%; /* <- Required property */ } + + .uniForm .inlineLabels textarea{ width: 45%; /* <- Required property */ height: 12em; } + + .uniForm .inlineLabels .formHint{ margin-top: 0; margin-left: 47%; font-size: .9em; color: #777; position: static; } + + .uniForm .inlineLabels .multiField{ width: 45%; /* <- Required property */ margin: 0 0 .3em 0; } + .uniForm .inlineLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } + .uniForm .inlineLabels .multiField .blockLabel{ float: left; width: 26%; margin: 0 3% 0 0; } + .uniForm .inlineLabels .multiField .blockLabel .textInput, + .uniForm .inlineLabels .multiField .blockLabel .selectInput, + .uniForm .inlineLabels .multiField .blockLabel select{ width: 100%; margin: .3em 0 0 0; } + +/* Focus pseudoclasses */ +.uniForm .ctrlHolder .textInput:focus{ outline: none; /* Get rid of the 'glow' effect in WebKit, optional */ } +.uniForm .ctrlHolder textarea:focus{ outline: none; /* Get rid of the 'glow' effect in WebKit, optional */ } +.uniForm div.focused .formHint{ color: #333; } + +/* Columns (they are floated left by default) */ +.uniForm .col{ width: 47.9%; /* <- Required property */ margin: 0 2% 20px 0; } +/* Use .first and .last classes to control the layout/spacing of your columns */ +.uniForm .col.first{ width: 49%; /* <- Required property */ float: left; clear: none; } +.uniForm .col.last{ width: 49%; /* <- Required property */ float: right; clear: none; margin-right: 0; } + +/* Messages */ +.uniForm #errorMsg{ background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 0 0 1.5em 0; padding: 7px; } +.uniForm .error{ background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; } + + .uniForm #errorMsg dt, .uniForm #errorMsg h3{ margin: 0 0 .5em 0; font-size: 100%; line-height: 100%; font-weight: bold; } + .uniForm #errorMsg dd{ margin: 0; padding: 0; } + .uniForm #errorMsg ol{ margin: 0; padding: 0; } + .uniForm #errorMsg ol li{ margin: 0; padding: 2px; list-style-position: inside; border-bottom: 1px dotted #df7d7d; position: relative; } + .uniForm .errorField{ color: #af4c4c; margin: 0 0 6px 0; padding: 4px; background: #ffbfbf; } + +.uniForm #OKMsg{ background: #C8FFBF; border: 1px solid #A2EF95; border-width: 1px 0; margin: 0 0 1.5em 0; padding: 7px; } + .uniForm #OKMsg p{ margin: 0; } + +/* +IT IS STRONGLY ADVISED TO MAKE YOUR CHANGES AFTER THIS COMMENT BY REPEATING (COPYING) THE SELECTOR FROM ABOVE, +AND MODIFYING IT WITH YOUR OWN PROPERTIES/VALUES. THIS IS RECOMMENDED BECAUSE IF YOU HAPPEN TO RUN INTO TROUBLE, +YOU CAN VERY EASILY REVERT TO A GENERIC STYLE OF UNI-FORM. BEST OF LUCK... +*/ + +/* ------------------------------------------------------------------------------ */ + +/* This is the main unit that contains our form elements */ + +.uniForm .textInput, .uniForm select, .uniForm textarea { + background:#FFFFFF none repeat scroll 0 0; + border: 2px solid #DFDFDF; +} diff --git a/interface/web/themes/default/css/screen/wforms.css b/interface/web/themes/default/css/screen/wforms.css deleted file mode 100644 index e273ee8ca3..0000000000 --- a/interface/web/themes/default/css/screen/wforms.css +++ /dev/null @@ -1,805 +0,0 @@ -@charset "UTF-8"; -/* - wFORMS 2.0 Stylesheet - ISPConfig 3: default theme - See http://www.formassembly.com/wForms - - To be used along with wforms-jsonly.css - This stylesheet and the associated images are Copyright (c) 2005 Cedric Savarese (http://www.4213miles.com) - and licensed under the Creative Commons Attribution-ShareAlike License (http://creativecommons.org/licenses/by-sa/2.0/) -*/ - -@media all -{ - /* Form Sections ======================================================================== */ - - /* Fieldset */ - .pnl_formsarea fieldset { - border-color: #D0D0D0 -moz-use-text-color -moz-use-text-color; - border-style: solid none none; - border-width: 1px medium medium; - margin: 20px 0; - overflow: auto; - } - .pnl_formsarea legend { - padding: 0 10px 0 0; - font-weight: bold; - } - /* Nested Fieldset */ - .pnl_formsarea fieldset fieldset { - } - .pnl_formsarea fieldset fieldset legend { - } - /* Inline Section */ - .pnl_formsarea .wf_inlineSection { - overflow: auto; - width: 100%; - } - - - /* Combo Label + Input Field =========================================================== */ - form .pnl_formsarea .wf_oneField { - margin: 6px 0; - display: block; - vertical-align: middle; - } - form .pnl_formsarea .wf_inlineSection .wf_oneField { - margin-right: 2px; - white-space: nowrap; - display: inline; - } - /* Ties together a label and its checkbox or radio */ - form .pnl_formsarea .wf_oneChoice { - white-space: nowrap; - } - - /* Field Labels ======================================================================== */ - - /* Base */ - .pnl_formsarea label, form .pnl_formsarea .wf_label { - color: #333; - margin: 0; - } - /* Text inputs / Select label */ - .pnl_formsarea label.wf_preField { - display: -moz-inline-box; - display: inline-block; - margin: 0 4px 0 0; - padding: 0 4px; - width: 30%; - text-align: right; - font-size: 90%; - } - /* Radio / Checkbox group label */ - form .pnl_formsarea .wf_label { - display: inline-block; - text-align: right; - margin: 0.6em 4px 0 0; - padding: 2px; - width: 30%; - font-size: 90%; - float: left; - } - /* Individual Checkbox / Radio label */ - .pnl_formsarea label.wf_postField { - margin: 0 4px 0 4px; - font-size: 90%; - } - /* Label when inside an inline section */ - form .pnl_formsarea .wf_inlineSection .wf_oneField .wf_inlineLabel { - display: -moz-inline-box; - display: inline-block; - margin: 0.6em 4px 0 0; - padding: 0 2px; - min-width: 7em; - white-space: normal; - } - - /* Inputs ======================================================================== */ - - .pnl_formsarea textarea { - padding: 1px 0; - vertical-align: top; - margin: 0px 2px 0 0; - vertical-align: top; - width: 300px; - height: 300px; - scroll: auto; - } - .pnl_formsarea input { - font-size: 1.0em; - margin: 0 2px 0 0; - padding: 1px 0; - vertical-align: top; - } - .pnl_formsarea select { - margin: 0 2px 0 0; - padding: 1px; - font-size: 1.0em; - vertical-align: top; - } - .pnl_formsarea .wf_inlineSection .wf_oneField select { - margin: 0 2px 1px 0 !important; - vertical-align: top; - } - .pnl_formsarea .wf_gridSection select { - margin: 0 !important; - vertical-align: top; - } - .pnl_formsarea * option { - padding-left: 1em; - vertical-align: top; - } - - /* SPANS ======================================================================= */ - .pnl_formsarea span.wf_preField { - display: -moz-inline-box; - display: inline-block; - margin: 0 8px 0 0; - padding: 0 4px; - width: 30%; - text-align: right; - font-size: 90%; - float: left; - } - .wf_passwordStrength { - font-size: 1.0em; - margin: 0 2px 0 0; - padding: 1px 0; - vertical-align: top; - } - - /* Buttons ======================================================================= */ - - form .pnl_formsarea .wf_actions { - margin: 20px 0 10px 0; - padding: 10px 5px; - border-top: 2px solid #339933; - text-align: left; - } - /* Submit button */ - form .pnl_formsarea .wf_primaryAction { - } - /* Cancel button */ - form .pnl_formsarea .wf_secondaryAction { - color: grey; - } - form .pnl_formsarea .wf_secondaryAction:hover { - color: black; - } - - /* Form Builder Related Rules ===================================================== */ - - /* Form or Fieldset instruction paragraph. */ - form .pnl_formsarea .wf_instructions { - margin: 1.5em 0; - padding: 3px; - background-color:#FFFFCC; - } - /* Asterisk on required fields */ - form .pnl_formsarea .wf_reqMark { - color: #F00; - padding: 0 4px; - } - /* wForms Related Rules ========================================================== */ - - /* Field w/ a validation error */ - form .pnl_formsarea .wf_errFld { - padding: 1px; - border: 1px solid #F00; - } - /* Styling for message associated with a validation error. */ - form .pnl_formsarea .wf_errMsg { - color: #CC3333 !important; - display: block; - } - /* Field-Hint with focus */ - form .pnl_formsarea .wf_field-hint { - position: absolute; - width: 180px; - z-index: 50; - background-image: url(/images/v2/hint_topborder.gif); - background-repeat: no-repeat; - background-position: left top; - padding: 14px 0 0 0; - margin: 2px 0 0 10px; - color: #000; - } - form .pnl_formsarea .wf_field-hint div { - background-color: #fffbb8; - border-left: 1px solid #ffc20d; - border-right: 1px solid #ffc20d; - border-bottom: 1px solid #ffc20d; - padding: 4px - } - /* Field-Hint without focus */ - form .pnl_formsarea .wf_field-hint-inactive { - visibility: hidden; - position: absolute; - } - /* Repeat Behavior divs (when not set on a fieldset) */ - .pnl_formsarea div.wf_repeat { - margin: 3px 0; - padding-right: 6px; - border: 1px dotted #ddd; - background-color: #FFFFFF; - } - .pnl_formsarea div.wf_removeable { - margin: 3px 0; - padding-right: 6px; - border: 1px dotted #ccc; - background-color: #F3F3F3; - - } - /* Links generated by the Repeat Behavior */ - form .pnl_formsarea .wf_duplicateLink { - line-height: 260%; - font-weight: bold; - } - form .pnl_formsarea .wf_removeLink { - line-height: 260%; - } - form .pnl_formsarea td .wf_duplicateLink, form .pnl_formsarea td .wf_removeLink { - margin: 0; - line-height: 100%; - } - /* Switch Behavior Classes */ - .onstate-a, .onstate-b, .onstate-c, .onstate-d, - .onstate-e, .onstate-f, .onstate-g, .onstate-h, - .onstate-i, .onstate-j, .onstate-k, .onstate-l, - .onstate-m, .onstate-n, .onstate-o, .onstate-p, - .onstate-q, .onstate-r, .onstate-s, .onstate-t, - .onstate-u, .onstate-v, .onstate-w, .onstate-x, - .onstate-y, .onstate-z, .onstate-aa, .onstate-ab, - .onstate-ac, .onstate-ad, .onstate-ae, .onstate-af, - .onstate-ag, .onstate-ah, .onstate-ai, .onstate-aj, - .onstate-ak, .onstate-al, .onstate-am, .onstate-an, - .onstate-ao, .onstate-ap, .onstate-aq, .onstate-ar, - .onstate-as, .onstate-at, .onstate-au, .onstate-av, - .onstate-aw, .onstate-ax, .onstate-ay, .onstate-az { - display: block; - } - /* offstate classes for the Switch Behavior are in wforms-jsonly.css */ - - /* Select Menu with Images */ - select.withicons option { - background-repeat:no-repeat; - background-position: 1px; - padding-left:24px; - } - -select#country option[value="AD"] { background-image:url(../../icons/flags/ad.png); } -select#country option[value="AE"] { background-image:url(../../icons/flags/ae.png); } -select#country option[value="AF"] { background-image:url(../../icons/flags/af.png); } -select#country option[value="AG"] { background-image:url(../../icons/flags/ag.png); } -select#country option[value="AI"] { background-image:url(../../icons/flags/ai.png); } -select#country option[value="AL"] { background-image:url(../../icons/flags/al.png); } -select#country option[value="AM"] { background-image:url(../../icons/flags/am.png); } -select#country option[value="AN"] { background-image:url(../../icons/flags/an.png); } -select#country option[value="AO"] { background-image:url(../../icons/flags/ao.png); } -select#country option[value="AQ"] { background-image:url(../../icons/flags/aq.png); } -select#country option[value="AR"] { background-image:url(../../icons/flags/ar.png); } -select#country option[value="AS"] { background-image:url(../../icons/flags/as.png); } -select#country option[value="AT"] { background-image:url(../../icons/flags/at.png); } -select#country option[value="AU"] { background-image:url(../../icons/flags/au.png); } -select#country option[value="AW"] { background-image:url(../../icons/flags/aw.png); } -select#country option[value="AX"] { background-image:url(../../icons/flags/ax.png); } -select#country option[value="AZ"] { background-image:url(../../icons/flags/az.png); } -select#country option[value="BA"] { background-image:url(../../icons/flags/ba.png); } -select#country option[value="BB"] { background-image:url(../../icons/flags/bb.png); } -select#country option[value="BD"] { background-image:url(../../icons/flags/bd.png); } -select#country option[value="BE"] { background-image:url(../../icons/flags/be.png); } -select#country option[value="BF"] { background-image:url(../../icons/flags/bf.png); } -select#country option[value="BG"] { background-image:url(../../icons/flags/bg.png); } -select#country option[value="BH"] { background-image:url(../../icons/flags/bh.png); } -select#country option[value="BI"] { background-image:url(../../icons/flags/bi.png); } -select#country option[value="BJ"] { background-image:url(../../icons/flags/bj.png); } -select#country option[value="BM"] { background-image:url(../../icons/flags/bm.png); } -select#country option[value="BN"] { background-image:url(../../icons/flags/bn.png); } -select#country option[value="BO"] { background-image:url(../../icons/flags/bo.png); } -select#country option[value="BR"] { background-image:url(../../icons/flags/br.png); } -select#country option[value="BS"] { background-image:url(../../icons/flags/bs.png); } -select#country option[value="BT"] { background-image:url(../../icons/flags/bt.png); } -select#country option[value="BV"] { background-image:url(../../icons/flags/bv.png); } -select#country option[value="BW"] { background-image:url(../../icons/flags/bw.png); } -select#country option[value="BY"] { background-image:url(../../icons/flags/by.png); } -select#country option[value="BZ"] { background-image:url(../../icons/flags/bz.png); } -select#country option[value="CA"] { background-image:url(../../icons/flags/ca.png); } -select#country option[value="CC"] { background-image:url(../../icons/flags/cc.png); } -select#country option[value="CD"] { background-image:url(../../icons/flags/cd.png); } -select#country option[value="CF"] { background-image:url(../../icons/flags/cf.png); } -select#country option[value="CG"] { background-image:url(../../icons/flags/cg.png); } -select#country option[value="CH"] { background-image:url(../../icons/flags/ch.png); } -select#country option[value="CI"] { background-image:url(../../icons/flags/ci.png); } -select#country option[value="CK"] { background-image:url(../../icons/flags/ck.png); } -select#country option[value="CL"] { background-image:url(../../icons/flags/cl.png); } -select#country option[value="CM"] { background-image:url(../../icons/flags/cm.png); } -select#country option[value="CN"] { background-image:url(../../icons/flags/cn.png); } -select#country option[value="CO"] { background-image:url(../../icons/flags/co.png); } -select#country option[value="CR"] { background-image:url(../../icons/flags/cr.png); } -select#country option[value="CS"] { background-image:url(../../icons/flags/cs.png); } -select#country option[value="CU"] { background-image:url(../../icons/flags/cu.png); } -select#country option[value="CV"] { background-image:url(../../icons/flags/cv.png); } -select#country option[value="CX"] { background-image:url(../../icons/flags/cx.png); } -select#country option[value="CY"] { background-image:url(../../icons/flags/cy.png); } -select#country option[value="CZ"] { background-image:url(../../icons/flags/cz.png); } -select#country option[value="DE"] { background-image:url(../../icons/flags/de.png); } -select#country option[value="DJ"] { background-image:url(../../icons/flags/dj.png); } -select#country option[value="DK"] { background-image:url(../../icons/flags/dk.png); } -select#country option[value="DM"] { background-image:url(../../icons/flags/dm.png); } -select#country option[value="DO"] { background-image:url(../../icons/flags/do.png); } -select#country option[value="DZ"] { background-image:url(../../icons/flags/dz.png); } -select#country option[value="EC"] { background-image:url(../../icons/flags/ec.png); } -select#country option[value="EE"] { background-image:url(../../icons/flags/ee.png); } -select#country option[value="EG"] { background-image:url(../../icons/flags/eg.png); } -select#country option[value="EH"] { background-image:url(../../icons/flags/eh.png); } -select#country option[value="ER"] { background-image:url(../../icons/flags/er.png); } -select#country option[value="ES"] { background-image:url(../../icons/flags/es.png); } -select#country option[value="ET"] { background-image:url(../../icons/flags/et.png); } -select#country option[value="FI"] { background-image:url(../../icons/flags/fi.png); } -select#country option[value="FJ"] { background-image:url(../../icons/flags/fj.png); } -select#country option[value="FK"] { background-image:url(../../icons/flags/fk.png); } -select#country option[value="FM"] { background-image:url(../../icons/flags/fm.png); } -select#country option[value="FO"] { background-image:url(../../icons/flags/fo.png); } -select#country option[value="FR"] { background-image:url(../../icons/flags/fr.png); } -select#country option[value="GA"] { background-image:url(../../icons/flags/ga.png); } -select#country option[value="GB"] { background-image:url(../../icons/flags/gb.png); } -select#country option[value="GD"] { background-image:url(../../icons/flags/gd.png); } -select#country option[value="GE"] { background-image:url(../../icons/flags/ge.png); } -select#country option[value="GF"] { background-image:url(../../icons/flags/gf.png); } -select#country option[value="GH"] { background-image:url(../../icons/flags/gh.png); } -select#country option[value="GI"] { background-image:url(../../icons/flags/gi.png); } -select#country option[value="GL"] { background-image:url(../../icons/flags/gl.png); } -select#country option[value="GM"] { background-image:url(../../icons/flags/gm.png); } -select#country option[value="GN"] { background-image:url(../../icons/flags/gn.png); } -select#country option[value="GP"] { background-image:url(../../icons/flags/gp.png); } -select#country option[value="GQ"] { background-image:url(../../icons/flags/gq.png); } -select#country option[value="GR"] { background-image:url(../../icons/flags/gr.png); } -select#country option[value="GS"] { background-image:url(../../icons/flags/gs.png); } -select#country option[value="GT"] { background-image:url(../../icons/flags/gt.png); } -select#country option[value="GU"] { background-image:url(../../icons/flags/gu.png); } -select#country option[value="GW"] { background-image:url(../../icons/flags/gw.png); } -select#country option[value="GY"] { background-image:url(../../icons/flags/gy.png); } -select#country option[value="HK"] { background-image:url(../../icons/flags/hk.png); } -select#country option[value="HM"] { background-image:url(../../icons/flags/hm.png); } -select#country option[value="HN"] { background-image:url(../../icons/flags/hn.png); } -select#country option[value="HR"] { background-image:url(../../icons/flags/hr.png); } -select#country option[value="HT"] { background-image:url(../../icons/flags/ht.png); } -select#country option[value="HU"] { background-image:url(../../icons/flags/hu.png); } -select#country option[value="ID"] { background-image:url(../../icons/flags/id.png); } -select#country option[value="IE"] { background-image:url(../../icons/flags/ie.png); } -select#country option[value="IL"] { background-image:url(../../icons/flags/il.png); } -select#country option[value="IN"] { background-image:url(../../icons/flags/in.png); } -select#country option[value="IO"] { background-image:url(../../icons/flags/io.png); } -select#country option[value="IQ"] { background-image:url(../../icons/flags/iq.png); } -select#country option[value="IR"] { background-image:url(../../icons/flags/ir.png); } -select#country option[value="IS"] { background-image:url(../../icons/flags/is.png); } -select#country option[value="IT"] { background-image:url(../../icons/flags/it.png); } -select#country option[value="JM"] { background-image:url(../../icons/flags/jm.png); } -select#country option[value="JO"] { background-image:url(../../icons/flags/jo.png); } -select#country option[value="JP"] { background-image:url(../../icons/flags/jp.png); } -select#country option[value="KE"] { background-image:url(../../icons/flags/ke.png); } -select#country option[value="KG"] { background-image:url(../../icons/flags/kg.png); } -select#country option[value="KH"] { background-image:url(../../icons/flags/kh.png); } -select#country option[value="KI"] { background-image:url(../../icons/flags/ki.png); } -select#country option[value="KM"] { background-image:url(../../icons/flags/km.png); } -select#country option[value="KN"] { background-image:url(../../icons/flags/kn.png); } -select#country option[value="KP"] { background-image:url(../../icons/flags/kp.png); } -select#country option[value="KR"] { background-image:url(../../icons/flags/kr.png); } -select#country option[value="KW"] { background-image:url(../../icons/flags/kw.png); } -select#country option[value="KY"] { background-image:url(../../icons/flags/ky.png); } -select#country option[value="KZ"] { background-image:url(../../icons/flags/kz.png); } -select#country option[value="LA"] { background-image:url(../../icons/flags/la.png); } -select#country option[value="LB"] { background-image:url(../../icons/flags/lb.png); } -select#country option[value="LC"] { background-image:url(../../icons/flags/lc.png); } -select#country option[value="LI"] { background-image:url(../../icons/flags/li.png); } -select#country option[value="LK"] { background-image:url(../../icons/flags/lk.png); } -select#country option[value="LR"] { background-image:url(../../icons/flags/lr.png); } -select#country option[value="LS"] { background-image:url(../../icons/flags/ls.png); } -select#country option[value="LT"] { background-image:url(../../icons/flags/lt.png); } -select#country option[value="LU"] { background-image:url(../../icons/flags/lu.png); } -select#country option[value="LV"] { background-image:url(../../icons/flags/lv.png); } -select#country option[value="LY"] { background-image:url(../../icons/flags/ly.png); } -select#country option[value="MA"] { background-image:url(../../icons/flags/ma.png); } -select#country option[value="MC"] { background-image:url(../../icons/flags/mc.png); } -select#country option[value="MD"] { background-image:url(../../icons/flags/md.png); } -select#country option[value="ME"] { background-image:url(../../icons/flags/me.png); } -select#country option[value="MG"] { background-image:url(../../icons/flags/mg.png); } -select#country option[value="MH"] { background-image:url(../../icons/flags/mh.png); } -select#country option[value="MK"] { background-image:url(../../icons/flags/mk.png); } -select#country option[value="ML"] { background-image:url(../../icons/flags/ml.png); } -select#country option[value="MM"] { background-image:url(../../icons/flags/mm.png); } -select#country option[value="MN"] { background-image:url(../../icons/flags/mn.png); } -select#country option[value="MO"] { background-image:url(../../icons/flags/mo.png); } -select#country option[value="MP"] { background-image:url(../../icons/flags/mp.png); } -select#country option[value="MQ"] { background-image:url(../../icons/flags/mq.png); } -select#country option[value="MR"] { background-image:url(../../icons/flags/mr.png); } -select#country option[value="MS"] { background-image:url(../../icons/flags/ms.png); } -select#country option[value="MT"] { background-image:url(../../icons/flags/mt.png); } -select#country option[value="MU"] { background-image:url(../../icons/flags/mu.png); } -select#country option[value="MV"] { background-image:url(../../icons/flags/mv.png); } -select#country option[value="MW"] { background-image:url(../../icons/flags/mw.png); } -select#country option[value="MX"] { background-image:url(../../icons/flags/mx.png); } -select#country option[value="MY"] { background-image:url(../../icons/flags/my.png); } -select#country option[value="MZ"] { background-image:url(../../icons/flags/mz.png); } -select#country option[value="NA"] { background-image:url(../../icons/flags/na.png); } -select#country option[value="NC"] { background-image:url(../../icons/flags/nc.png); } -select#country option[value="NE"] { background-image:url(../../icons/flags/ne.png); } -select#country option[value="NF"] { background-image:url(../../icons/flags/nf.png); } -select#country option[value="NG"] { background-image:url(../../icons/flags/ng.png); } -select#country option[value="NI"] { background-image:url(../../icons/flags/ni.png); } -select#country option[value="NL"] { background-image:url(../../icons/flags/nl.png); } -select#country option[value="NO"] { background-image:url(../../icons/flags/no.png); } -select#country option[value="NP"] { background-image:url(../../icons/flags/np.png); } -select#country option[value="NR"] { background-image:url(../../icons/flags/nr.png); } -select#country option[value="NU"] { background-image:url(../../icons/flags/nu.png); } -select#country option[value="NZ"] { background-image:url(../../icons/flags/nz.png); } -select#country option[value="OM"] { background-image:url(../../icons/flags/om.png); } -select#country option[value="PA"] { background-image:url(../../icons/flags/pa.png); } -select#country option[value="PE"] { background-image:url(../../icons/flags/pe.png); } -select#country option[value="PF"] { background-image:url(../../icons/flags/pf.png); } -select#country option[value="PG"] { background-image:url(../../icons/flags/pg.png); } -select#country option[value="PH"] { background-image:url(../../icons/flags/ph.png); } -select#country option[value="PK"] { background-image:url(../../icons/flags/pk.png); } -select#country option[value="PL"] { background-image:url(../../icons/flags/pl.png); } -select#country option[value="PM"] { background-image:url(../../icons/flags/pm.png); } -select#country option[value="PN"] { background-image:url(../../icons/flags/pn.png); } -select#country option[value="PR"] { background-image:url(../../icons/flags/pr.png); } -select#country option[value="PS"] { background-image:url(../../icons/flags/ps.png); } -select#country option[value="PT"] { background-image:url(../../icons/flags/pt.png); } -select#country option[value="PW"] { background-image:url(../../icons/flags/pw.png); } -select#country option[value="PY"] { background-image:url(../../icons/flags/py.png); } -select#country option[value="QA"] { background-image:url(../../icons/flags/qa.png); } -select#country option[value="RE"] { background-image:url(../../icons/flags/re.png); } -select#country option[value="RO"] { background-image:url(../../icons/flags/ro.png); } -select#country option[value="RS"] { background-image:url(../../icons/flags/rs.png); } -select#country option[value="RU"] { background-image:url(../../icons/flags/ru.png); } -select#country option[value="RW"] { background-image:url(../../icons/flags/rw.png); } -select#country option[value="SA"] { background-image:url(../../icons/flags/sa.png); } -select#country option[value="SB"] { background-image:url(../../icons/flags/sb.png); } -select#country option[value="SC"] { background-image:url(../../icons/flags/sc.png); } -select#country option[value="SD"] { background-image:url(../../icons/flags/sd.png); } -select#country option[value="SE"] { background-image:url(../../icons/flags/se.png); } -select#country option[value="SG"] { background-image:url(../../icons/flags/sg.png); } -select#country option[value="SH"] { background-image:url(../../icons/flags/sh.png); } -select#country option[value="SI"] { background-image:url(../../icons/flags/si.png); } -select#country option[value="SJ"] { background-image:url(../../icons/flags/sj.png); } -select#country option[value="SK"] { background-image:url(../../icons/flags/sk.png); } -select#country option[value="SL"] { background-image:url(../../icons/flags/sl.png); } -select#country option[value="SM"] { background-image:url(../../icons/flags/sm.png); } -select#country option[value="SN"] { background-image:url(../../icons/flags/sn.png); } -select#country option[value="SO"] { background-image:url(../../icons/flags/so.png); } -select#country option[value="SR"] { background-image:url(../../icons/flags/sr.png); } -select#country option[value="ST"] { background-image:url(../../icons/flags/st.png); } -select#country option[value="SV"] { background-image:url(../../icons/flags/sv.png); } -select#country option[value="SY"] { background-image:url(../../icons/flags/sy.png); } -select#country option[value="SZ"] { background-image:url(../../icons/flags/sz.png); } -select#country option[value="TC"] { background-image:url(../../icons/flags/tc.png); } -select#country option[value="TD"] { background-image:url(../../icons/flags/td.png); } -select#country option[value="TF"] { background-image:url(../../icons/flags/tf.png); } -select#country option[value="TG"] { background-image:url(../../icons/flags/tg.png); } -select#country option[value="TH"] { background-image:url(../../icons/flags/th.png); } -select#country option[value="TJ"] { background-image:url(../../icons/flags/tj.png); } -select#country option[value="TK"] { background-image:url(../../icons/flags/tk.png); } -select#country option[value="TL"] { background-image:url(../../icons/flags/tl.png); } -select#country option[value="TM"] { background-image:url(../../icons/flags/tm.png); } -select#country option[value="TN"] { background-image:url(../../icons/flags/tn.png); } -select#country option[value="TO"] { background-image:url(../../icons/flags/to.png); } -select#country option[value="TR"] { background-image:url(../../icons/flags/tr.png); } -select#country option[value="TT"] { background-image:url(../../icons/flags/tt.png); } -select#country option[value="TV"] { background-image:url(../../icons/flags/tv.png); } -select#country option[value="TW"] { background-image:url(../../icons/flags/tw.png); } -select#country option[value="TZ"] { background-image:url(../../icons/flags/tz.png); } -select#country option[value="UA"] { background-image:url(../../icons/flags/ua.png); } -select#country option[value="UG"] { background-image:url(../../icons/flags/ug.png); } -select#country option[value="UM"] { background-image:url(../../icons/flags/um.png); } -select#country option[value="US"] { background-image:url(../../icons/flags/us.png); } -select#country option[value="UY"] { background-image:url(../../icons/flags/uy.png); } -select#country option[value="UZ"] { background-image:url(../../icons/flags/uz.png); } -select#country option[value="VA"] { background-image:url(../../icons/flags/va.png); } -select#country option[value="VC"] { background-image:url(../../icons/flags/vc.png); } -select#country option[value="VE"] { background-image:url(../../icons/flags/ve.png); } -select#country option[value="VG"] { background-image:url(../../icons/flags/vg.png); } -select#country option[value="VI"] { background-image:url(../../icons/flags/vi.png); } -select#country option[value="VN"] { background-image:url(../../icons/flags/vn.png); } -select#country option[value="VU"] { background-image:url(../../icons/flags/vu.png); } -select#country option[value="WF"] { background-image:url(../../icons/flags/wf.png); } -select#country option[value="WS"] { background-image:url(../../icons/flags/ws.png); } -select#country option[value="YE"] { background-image:url(../../icons/flags/ye.png); } -select#country option[value="YT"] { background-image:url(../../icons/flags/yt.png); } -select#country option[value="ZA"] { background-image:url(../../icons/flags/za.png); } -select#country option[value="ZM"] { background-image:url(../../icons/flags/zm.png); } -select#country option[value="ZW"] { background-image:url(../../icons/flags/zw.png); } - -select#language option[value="ad"] { background-image:url(../../icons/flags/ad.png); } -select#language option[value="ae"] { background-image:url(../../icons/flags/ae.png); } -select#language option[value="af"] { background-image:url(../../icons/flags/af.png); } -select#language option[value="ag"] { background-image:url(../../icons/flags/ag.png); } -select#language option[value="ai"] { background-image:url(../../icons/flags/ai.png); } -select#language option[value="al"] { background-image:url(../../icons/flags/al.png); } -select#language option[value="am"] { background-image:url(../../icons/flags/am.png); } -select#language option[value="an"] { background-image:url(../../icons/flags/an.png); } -select#language option[value="ao"] { background-image:url(../../icons/flags/ao.png); } -select#language option[value="aq"] { background-image:url(../../icons/flags/aq.png); } -select#language option[value="ar"] { background-image:url(../../icons/flags/ar.png); } -select#language option[value="as"] { background-image:url(../../icons/flags/as.png); } -select#language option[value="at"] { background-image:url(../../icons/flags/at.png); } -select#language option[value="au"] { background-image:url(../../icons/flags/au.png); } -select#language option[value="aw"] { background-image:url(../../icons/flags/aw.png); } -select#language option[value="ax"] { background-image:url(../../icons/flags/ax.png); } -select#language option[value="az"] { background-image:url(../../icons/flags/az.png); } -select#language option[value="ba"] { background-image:url(../../icons/flags/ba.png); } -select#language option[value="bb"] { background-image:url(../../icons/flags/bb.png); } -select#language option[value="bd"] { background-image:url(../../icons/flags/bd.png); } -select#language option[value="be"] { background-image:url(../../icons/flags/be.png); } -select#language option[value="bf"] { background-image:url(../../icons/flags/bf.png); } -select#language option[value="bg"] { background-image:url(../../icons/flags/bg.png); } -select#language option[value="bh"] { background-image:url(../../icons/flags/bh.png); } -select#language option[value="bi"] { background-image:url(../../icons/flags/bi.png); } -select#language option[value="bj"] { background-image:url(../../icons/flags/bj.png); } -select#language option[value="bm"] { background-image:url(../../icons/flags/bm.png); } -select#language option[value="bn"] { background-image:url(../../icons/flags/bn.png); } -select#language option[value="bo"] { background-image:url(../../icons/flags/bo.png); } -select#language option[value="br"] { background-image:url(../../icons/flags/br.png); } -select#language option[value="bs"] { background-image:url(../../icons/flags/bs.png); } -select#language option[value="bt"] { background-image:url(../../icons/flags/bt.png); } -select#language option[value="bv"] { background-image:url(../../icons/flags/bv.png); } -select#language option[value="bw"] { background-image:url(../../icons/flags/bw.png); } -select#language option[value="by"] { background-image:url(../../icons/flags/by.png); } -select#language option[value="bz"] { background-image:url(../../icons/flags/bz.png); } -select#language option[value="ca"] { background-image:url(../../icons/flags/ca.png); } -select#language option[value="cc"] { background-image:url(../../icons/flags/cc.png); } -select#language option[value="cd"] { background-image:url(../../icons/flags/cd.png); } -select#language option[value="cf"] { background-image:url(../../icons/flags/cf.png); } -select#language option[value="cg"] { background-image:url(../../icons/flags/cg.png); } -select#language option[value="ch"] { background-image:url(../../icons/flags/ch.png); } -select#language option[value="ci"] { background-image:url(../../icons/flags/ci.png); } -select#language option[value="ck"] { background-image:url(../../icons/flags/ck.png); } -select#language option[value="cl"] { background-image:url(../../icons/flags/cl.png); } -select#language option[value="cm"] { background-image:url(../../icons/flags/cm.png); } -select#language option[value="cn"] { background-image:url(../../icons/flags/cn.png); } -select#language option[value="co"] { background-image:url(../../icons/flags/co.png); } -select#language option[value="cr"] { background-image:url(../../icons/flags/cr.png); } -select#language option[value="cs"] { background-image:url(../../icons/flags/cs.png); } -select#language option[value="cu"] { background-image:url(../../icons/flags/cu.png); } -select#language option[value="cv"] { background-image:url(../../icons/flags/cv.png); } -select#language option[value="cx"] { background-image:url(../../icons/flags/cx.png); } -select#language option[value="cy"] { background-image:url(../../icons/flags/cy.png); } -select#language option[value="cz"] { background-image:url(../../icons/flags/cz.png); } -select#language option[value="de"] { background-image:url(../../icons/flags/de.png); } -select#language option[value="dj"] { background-image:url(../../icons/flags/dj.png); } -select#language option[value="dk"] { background-image:url(../../icons/flags/dk.png); } -select#language option[value="dm"] { background-image:url(../../icons/flags/dm.png); } -select#language option[value="do"] { background-image:url(../../icons/flags/do.png); } -select#language option[value="dz"] { background-image:url(../../icons/flags/dz.png); } -select#language option[value="ec"] { background-image:url(../../icons/flags/ec.png); } -select#language option[value="ee"] { background-image:url(../../icons/flags/ee.png); } -select#language option[value="eg"] { background-image:url(../../icons/flags/eg.png); } -select#language option[value="eh"] { background-image:url(../../icons/flags/eh.png); } -select#language option[value="en"] { background-image:url(../../icons/flags/gb.png); } -select#language option[value="er"] { background-image:url(../../icons/flags/er.png); } -select#language option[value="es"] { background-image:url(../../icons/flags/es.png); } -select#language option[value="et"] { background-image:url(../../icons/flags/et.png); } -select#language option[value="fi"] { background-image:url(../../icons/flags/fi.png); } -select#language option[value="fj"] { background-image:url(../../icons/flags/fj.png); } -select#language option[value="fk"] { background-image:url(../../icons/flags/fk.png); } -select#language option[value="fm"] { background-image:url(../../icons/flags/fm.png); } -select#language option[value="fo"] { background-image:url(../../icons/flags/fo.png); } -select#language option[value="fr"] { background-image:url(../../icons/flags/fr.png); } -select#language option[value="ga"] { background-image:url(../../icons/flags/ga.png); } -select#language option[value="gb"] { background-image:url(../../icons/flags/gb.png); } -select#language option[value="gd"] { background-image:url(../../icons/flags/gd.png); } -select#language option[value="ge"] { background-image:url(../../icons/flags/ge.png); } -select#language option[value="gf"] { background-image:url(../../icons/flags/gf.png); } -select#language option[value="gh"] { background-image:url(../../icons/flags/gh.png); } -select#language option[value="gi"] { background-image:url(../../icons/flags/gi.png); } -select#language option[value="gl"] { background-image:url(../../icons/flags/gl.png); } -select#language option[value="gm"] { background-image:url(../../icons/flags/gm.png); } -select#language option[value="gn"] { background-image:url(../../icons/flags/gn.png); } -select#language option[value="gp"] { background-image:url(../../icons/flags/gp.png); } -select#language option[value="gq"] { background-image:url(../../icons/flags/gq.png); } -select#language option[value="gr"] { background-image:url(../../icons/flags/gr.png); } -select#language option[value="gs"] { background-image:url(../../icons/flags/gs.png); } -select#language option[value="gt"] { background-image:url(../../icons/flags/gt.png); } -select#language option[value="gu"] { background-image:url(../../icons/flags/gu.png); } -select#language option[value="gw"] { background-image:url(../../icons/flags/gw.png); } -select#language option[value="gy"] { background-image:url(../../icons/flags/gy.png); } -select#language option[value="hk"] { background-image:url(../../icons/flags/hk.png); } -select#language option[value="hm"] { background-image:url(../../icons/flags/hm.png); } -select#language option[value="hn"] { background-image:url(../../icons/flags/hn.png); } -select#language option[value="hr"] { background-image:url(../../icons/flags/hr.png); } -select#language option[value="ht"] { background-image:url(../../icons/flags/ht.png); } -select#language option[value="hu"] { background-image:url(../../icons/flags/hu.png); } -select#language option[value="id"] { background-image:url(../../icons/flags/id.png); } -select#language option[value="ie"] { background-image:url(../../icons/flags/ie.png); } -select#language option[value="il"] { background-image:url(../../icons/flags/il.png); } -select#language option[value="in"] { background-image:url(../../icons/flags/in.png); } -select#language option[value="io"] { background-image:url(../../icons/flags/io.png); } -select#language option[value="iq"] { background-image:url(../../icons/flags/iq.png); } -select#language option[value="ir"] { background-image:url(../../icons/flags/ir.png); } -select#language option[value="is"] { background-image:url(../../icons/flags/is.png); } -select#language option[value="it"] { background-image:url(../../icons/flags/it.png); } -select#language option[value="jm"] { background-image:url(../../icons/flags/jm.png); } -select#language option[value="jo"] { background-image:url(../../icons/flags/jo.png); } -select#language option[value="jp"] { background-image:url(../../icons/flags/jp.png); } -select#language option[value="ke"] { background-image:url(../../icons/flags/ke.png); } -select#language option[value="kg"] { background-image:url(../../icons/flags/kg.png); } -select#language option[value="kh"] { background-image:url(../../icons/flags/kh.png); } -select#language option[value="ki"] { background-image:url(../../icons/flags/ki.png); } -select#language option[value="km"] { background-image:url(../../icons/flags/km.png); } -select#language option[value="kn"] { background-image:url(../../icons/flags/kn.png); } -select#language option[value="kp"] { background-image:url(../../icons/flags/kp.png); } -select#language option[value="kr"] { background-image:url(../../icons/flags/kr.png); } -select#language option[value="kw"] { background-image:url(../../icons/flags/kw.png); } -select#language option[value="ky"] { background-image:url(../../icons/flags/ky.png); } -select#language option[value="kz"] { background-image:url(../../icons/flags/kz.png); } -select#language option[value="la"] { background-image:url(../../icons/flags/la.png); } -select#language option[value="lb"] { background-image:url(../../icons/flags/lb.png); } -select#language option[value="lc"] { background-image:url(../../icons/flags/lc.png); } -select#language option[value="li"] { background-image:url(../../icons/flags/li.png); } -select#language option[value="lk"] { background-image:url(../../icons/flags/lk.png); } -select#language option[value="lr"] { background-image:url(../../icons/flags/lr.png); } -select#language option[value="ls"] { background-image:url(../../icons/flags/ls.png); } -select#language option[value="lt"] { background-image:url(../../icons/flags/lt.png); } -select#language option[value="lu"] { background-image:url(../../icons/flags/lu.png); } -select#language option[value="lv"] { background-image:url(../../icons/flags/lv.png); } -select#language option[value="ly"] { background-image:url(../../icons/flags/ly.png); } -select#language option[value="ma"] { background-image:url(../../icons/flags/ma.png); } -select#language option[value="mc"] { background-image:url(../../icons/flags/mc.png); } -select#language option[value="md"] { background-image:url(../../icons/flags/md.png); } -select#language option[value="me"] { background-image:url(../../icons/flags/me.png); } -select#language option[value="mg"] { background-image:url(../../icons/flags/mg.png); } -select#language option[value="mh"] { background-image:url(../../icons/flags/mh.png); } -select#language option[value="mk"] { background-image:url(../../icons/flags/mk.png); } -select#language option[value="ml"] { background-image:url(../../icons/flags/ml.png); } -select#language option[value="mm"] { background-image:url(../../icons/flags/mm.png); } -select#language option[value="mn"] { background-image:url(../../icons/flags/mn.png); } -select#language option[value="mo"] { background-image:url(../../icons/flags/mo.png); } -select#language option[value="mp"] { background-image:url(../../icons/flags/mp.png); } -select#language option[value="mq"] { background-image:url(../../icons/flags/mq.png); } -select#language option[value="mr"] { background-image:url(../../icons/flags/mr.png); } -select#language option[value="ms"] { background-image:url(../../icons/flags/ms.png); } -select#language option[value="mt"] { background-image:url(../../icons/flags/mt.png); } -select#language option[value="mu"] { background-image:url(../../icons/flags/mu.png); } -select#language option[value="mv"] { background-image:url(../../icons/flags/mv.png); } -select#language option[value="mw"] { background-image:url(../../icons/flags/mw.png); } -select#language option[value="mx"] { background-image:url(../../icons/flags/mx.png); } -select#language option[value="my"] { background-image:url(../../icons/flags/my.png); } -select#language option[value="mz"] { background-image:url(../../icons/flags/mz.png); } -select#language option[value="na"] { background-image:url(../../icons/flags/na.png); } -select#language option[value="nc"] { background-image:url(../../icons/flags/nc.png); } -select#language option[value="ne"] { background-image:url(../../icons/flags/ne.png); } -select#language option[value="nf"] { background-image:url(../../icons/flags/nf.png); } -select#language option[value="ng"] { background-image:url(../../icons/flags/ng.png); } -select#language option[value="ni"] { background-image:url(../../icons/flags/ni.png); } -select#language option[value="nl"] { background-image:url(../../icons/flags/nl.png); } -select#language option[value="no"] { background-image:url(../../icons/flags/no.png); } -select#language option[value="np"] { background-image:url(../../icons/flags/np.png); } -select#language option[value="nr"] { background-image:url(../../icons/flags/nr.png); } -select#language option[value="nu"] { background-image:url(../../icons/flags/nu.png); } -select#language option[value="nz"] { background-image:url(../../icons/flags/nz.png); } -select#language option[value="om"] { background-image:url(../../icons/flags/om.png); } -select#language option[value="pa"] { background-image:url(../../icons/flags/pa.png); } -select#language option[value="pe"] { background-image:url(../../icons/flags/pe.png); } -select#language option[value="pf"] { background-image:url(../../icons/flags/pf.png); } -select#language option[value="pg"] { background-image:url(../../icons/flags/pg.png); } -select#language option[value="ph"] { background-image:url(../../icons/flags/ph.png); } -select#language option[value="pk"] { background-image:url(../../icons/flags/pk.png); } -select#language option[value="pl"] { background-image:url(../../icons/flags/pl.png); } -select#language option[value="pm"] { background-image:url(../../icons/flags/pm.png); } -select#language option[value="pn"] { background-image:url(../../icons/flags/pn.png); } -select#language option[value="pr"] { background-image:url(../../icons/flags/pr.png); } -select#language option[value="ps"] { background-image:url(../../icons/flags/ps.png); } -select#language option[value="pt"] { background-image:url(../../icons/flags/pt.png); } -select#language option[value="pw"] { background-image:url(../../icons/flags/pw.png); } -select#language option[value="py"] { background-image:url(../../icons/flags/py.png); } -select#language option[value="qa"] { background-image:url(../../icons/flags/qa.png); } -select#language option[value="re"] { background-image:url(../../icons/flags/re.png); } -select#language option[value="ro"] { background-image:url(../../icons/flags/ro.png); } -select#language option[value="rs"] { background-image:url(../../icons/flags/rs.png); } -select#language option[value="ru"] { background-image:url(../../icons/flags/ru.png); } -select#language option[value="rw"] { background-image:url(../../icons/flags/rw.png); } -select#language option[value="sa"] { background-image:url(../../icons/flags/sa.png); } -select#language option[value="sb"] { background-image:url(../../icons/flags/sb.png); } -select#language option[value="sc"] { background-image:url(../../icons/flags/sc.png); } -select#language option[value="sd"] { background-image:url(../../icons/flags/sd.png); } -select#language option[value="se"] { background-image:url(../../icons/flags/se.png); } -select#language option[value="sg"] { background-image:url(../../icons/flags/sg.png); } -select#language option[value="sh"] { background-image:url(../../icons/flags/sh.png); } -select#language option[value="si"] { background-image:url(../../icons/flags/si.png); } -select#language option[value="sj"] { background-image:url(../../icons/flags/sj.png); } -select#language option[value="sk"] { background-image:url(../../icons/flags/sk.png); } -select#language option[value="sl"] { background-image:url(../../icons/flags/sl.png); } -select#language option[value="sm"] { background-image:url(../../icons/flags/sm.png); } -select#language option[value="sn"] { background-image:url(../../icons/flags/sn.png); } -select#language option[value="so"] { background-image:url(../../icons/flags/so.png); } -select#language option[value="sr"] { background-image:url(../../icons/flags/sr.png); } -select#language option[value="st"] { background-image:url(../../icons/flags/st.png); } -select#language option[value="sv"] { background-image:url(../../icons/flags/sv.png); } -select#language option[value="sy"] { background-image:url(../../icons/flags/sy.png); } -select#language option[value="sz"] { background-image:url(../../icons/flags/sz.png); } -select#language option[value="tc"] { background-image:url(../../icons/flags/tc.png); } -select#language option[value="td"] { background-image:url(../../icons/flags/td.png); } -select#language option[value="tf"] { background-image:url(../../icons/flags/tf.png); } -select#language option[value="tg"] { background-image:url(../../icons/flags/tg.png); } -select#language option[value="th"] { background-image:url(../../icons/flags/th.png); } -select#language option[value="tj"] { background-image:url(../../icons/flags/tj.png); } -select#language option[value="tk"] { background-image:url(../../icons/flags/tk.png); } -select#language option[value="tl"] { background-image:url(../../icons/flags/tl.png); } -select#language option[value="tm"] { background-image:url(../../icons/flags/tm.png); } -select#language option[value="tn"] { background-image:url(../../icons/flags/tn.png); } -select#language option[value="to"] { background-image:url(../../icons/flags/to.png); } -select#language option[value="tr"] { background-image:url(../../icons/flags/tr.png); } -select#language option[value="tt"] { background-image:url(../../icons/flags/tt.png); } -select#language option[value="tv"] { background-image:url(../../icons/flags/tv.png); } -select#language option[value="tw"] { background-image:url(../../icons/flags/tw.png); } -select#language option[value="tz"] { background-image:url(../../icons/flags/tz.png); } -select#language option[value="ua"] { background-image:url(../../icons/flags/ua.png); } -select#language option[value="ug"] { background-image:url(../../icons/flags/ug.png); } -select#language option[value="um"] { background-image:url(../../icons/flags/um.png); } -select#language option[value="us"] { background-image:url(../../icons/flags/us.png); } -select#language option[value="uy"] { background-image:url(../../icons/flags/uy.png); } -select#language option[value="uz"] { background-image:url(../../icons/flags/uz.png); } -select#language option[value="va"] { background-image:url(../../icons/flags/va.png); } -select#language option[value="vc"] { background-image:url(../../icons/flags/vc.png); } -select#language option[value="ve"] { background-image:url(../../icons/flags/ve.png); } -select#language option[value="vg"] { background-image:url(../../icons/flags/vg.png); } -select#language option[value="vi"] { background-image:url(../../icons/flags/vi.png); } -select#language option[value="vn"] { background-image:url(../../icons/flags/vn.png); } -select#language option[value="vu"] { background-image:url(../../icons/flags/vu.png); } -select#language option[value="wf"] { background-image:url(../../icons/flags/wf.png); } -select#language option[value="ws"] { background-image:url(../../icons/flags/ws.png); } -select#language option[value="ye"] { background-image:url(../../icons/flags/ye.png); } -select#language option[value="yt"] { background-image:url(../../icons/flags/yt.png); } -select#language option[value="za"] { background-image:url(../../icons/flags/za.png); } -select#language option[value="zm"] { background-image:url(../../icons/flags/zm.png); } -select#language option[value="zw"] { background-image:url(../../icons/flags/zw.png); } - - - - - /* IE6 BUG FIXES ==================================================================== */ - form .pnl_formsarea { - height:expression('1%'); /* IE Pick-a-boo bug fix */ - } - form .pnl_formsarea fieldset { - position:expression('relative'); /* Fixes IE problem with fieldset+legend boundaries */ - margin-top:expression('1em'); - padding-top:expression('1.5em'); - overflow: expression('visible'); - } - form .pnl_formsarea fieldset legend { - position: expression('absolute'); - top: expression('-.5em'); /* Fixes IE problem with fieldset+legend boundaries */ - left:expression('.5em'); - } - form .pnl_formsarea .wf_inlineSection .wf_oneField { - display: expression('inline-block'); - } - .pnl_formsarea label, form .pnl_formsarea .wf_label { - font-size: expression('90%'); - } - .pnl_formsarea label.wf_preField, form .pnl_formsarea .wf_inlineSection .wf_oneField .wf_inlineLabel { - width: expression('7em'); - white-space: expression('nowrap'); - } - -/* === */ - - form .pnl_formsarea .wf_oneField fieldset { - border: none; - margin: 0; - padding-left: 8px; - } - -/* === */ - - .tbl_col_server_name input { width: 150px; } - .tbl_col_mail_server input, .tbl_col_web_server input, .tbl_col_dns_server input, .tbl_col_file_server input, .tbl_col_db_server input, .tbl_col_vserver_server input { - width: 20px; - } - .tbl_col_client_id input, .tbl_col_domain_id input { width: 40px; } - .tbl_col_country input { width: 20px; } - -/* === */ - -} diff --git a/interface/web/themes/default/images/buttonHolder_bg.gif b/interface/web/themes/default/images/buttonHolder_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..45dc0da38b2608cf1bb0c5079105e8a8bbfbe95b GIT binary patch literal 609 zcmZ?wbhEHbY-G@8xXJ(m|NsC0_wWDTzyE&x`up|ApF7XL+2d;ID8lTWvveSZAr+sh9>-hBG``s0st_uiks|NiRZk2juvy8r6y zqc`6kzW)03-S;PNzde8d{lnK^-+uo2`TOsmzyH4c`2GFYpI<=M|Nno1R{sAFwx1$G z@h1x-1A``m4#*UcpBUKwJ9HO#Y%$PU-cWQh$7+5+YN6NKsO85~N={FWYwdR__xU&L z{859-y)MywEZgq9To?cFbKc)al21ODH3rwz)%!Q{inJ9s^*VKS`}PW`Ow8$=%!z{rhUI94EZ9G2#g8AJy_#_)vZanU zH7RrAC3TmsPpi6jp5#?L`b_R}(dXa=M^Ck%6*-$;SiDN#+tQrp?&(uayk8~>+0304 IBfww{0BZFy)c^nh literal 0 HcmV?d00001 diff --git a/interface/web/themes/default/licences.txt b/interface/web/themes/default/licences.txt index 85fb3c8262..5a50cbb39e 100644 --- a/interface/web/themes/default/licences.txt +++ b/interface/web/themes/default/licences.txt @@ -3,6 +3,6 @@ Theme created by Martin Henne (red-ray.de) based on: Templates: http://www.yaml.de -Web-Forms: http://formassembly.com/blog/category/wforms-documentation +Web-Forms: http://www.sprawsm.com/uni-form/ Icons: http://www.pinvoke.com and http://www.randomjabber.com/static/sizcons Know-How: http://particletree.com/features/rediscovering-the-button-element diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index 3975f01de9..3dd6f1e663 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -1,70 +1,115 @@ - - - - <tmpl_var name="app_title"> <tmpl_var name="app_version"> - "/> - - - - - - - - - -
    -
    - - - - - -
    - -
    -
    -
     
    -
    -
    - - -
    -
    - - -
    -
    -
    -
    -
     
    - -
    - -
    - - - -
    -
    - - + + + + <tmpl_var name="app_title"> <tmpl_var name="app_version"> + "/> + + + + + + + + + + + + +
    +
    + + + + + +
    + +
    +
    +
     
    +
    +
    + + +
    +
    + + +
    +
    +
    +
    +
     
    + +
    + +
    + + + +
    +
    + + diff --git a/interface/web/themes/default/templates/tabbed_form.tpl.htm b/interface/web/themes/default/templates/tabbed_form.tpl.htm index 0a12676573..0e31bc0565 100644 --- a/interface/web/themes/default/templates/tabbed_form.tpl.htm +++ b/interface/web/themes/default/templates/tabbed_form.tpl.htm @@ -1,11 +1,6 @@

    - - -
    -
    -
      @@ -18,6 +13,14 @@
    + + +

    +
    + +

    ERROR

    +
    +
    diff --git a/interface/web/tools/templates/user_settings.htm b/interface/web/tools/templates/user_settings.htm index 7d751ab948..208d56437b 100644 --- a/interface/web/tools/templates/user_settings.htm +++ b/interface/web/tools/templates/user_settings.htm @@ -1,26 +1,29 @@

    +

    -
    {tmpl_var name='Settings'} - - - - - - {tmpl_var name='password_strength_txt'} -
     
    -
    - - - - - - - - -
    +
    Users +
    + + +
    +
    +

    {tmpl_var name='password_strength_txt'}

    +
    +

     

    +
    +
    + + +
    +
    + + +
    -- GitLab