From 47b61f05c0caa5d75038c3818efebc9747eb5aca Mon Sep 17 00:00:00 2001 From: Dmitriy Simushev Date: Mon, 10 Feb 2014 13:32:29 +0000 Subject: [PATCH] Use Handlebars.php as template engine --- src/composer.json | 2 +- src/mibew/install/index.php | 4 + .../classes/Mibew/Handlebars/HelpersSet.php | 573 ++++++++++++++++++ .../libs/classes/Mibew/Style/PageStyle.php | 48 +- src/mibew/libs/common/csrf.php | 10 +- src/mibew/libs/common/string.php | 12 + src/mibew/libs/init.php | 3 + src/mibew/libs/operator.php | 4 + src/mibew/license.php | 1 + src/mibew/operator/ban.php | 2 +- src/mibew/operator/blocked.php | 5 + src/mibew/operator/canned.php | 10 +- src/mibew/operator/cannededit.php | 4 +- src/mibew/operator/getcode.php | 2 +- src/mibew/operator/groupmembers.php | 24 +- src/mibew/operator/groups.php | 20 +- src/mibew/operator/history.php | 24 +- src/mibew/operator/index.php | 3 +- src/mibew/operator/operator.php | 3 +- src/mibew/operator/operators.php | 19 +- src/mibew/operator/opgroups.php | 26 +- src/mibew/operator/permissions.php | 11 +- src/mibew/operator/statistics.php | 18 +- src/mibew/operator/threadprocessor.php | 13 +- src/mibew/operator/tracked.php | 1 + src/mibew/operator/translate.php | 9 +- src/mibew/operator/userhistory.php | 12 +- src/mibew/operator/users.php | 4 +- .../styles/pages/default/css/default.css | 9 +- .../styles/pages/default/css/default_ie.css | 5 + .../server_side}/.htaccess | 0 .../server_side/_errors.handlebars | 13 + .../server_side/_locales.handlebars | 14 + .../server_side/_menu.handlebars | 51 ++ .../server_side/_tabs.handlebars | 11 + .../server_side/avatar.handlebars | 84 +++ .../templates_src/server_side/ban.handlebars | 85 +++ .../server_side/blocked_visitors.handlebars | 81 +++ .../server_side/canned.handlebars | 93 +++ .../server_side/canned_edit.handlebars | 67 ++ .../server_side/confirm.handlebars | 67 ++ .../server_side/features.handlebars | 188 ++++++ .../server_side/get_code.handlebars | 144 +++++ .../server_side/group.handlebars | 164 +++++ .../server_side/group_members.handlebars | 52 ++ .../server_side/groups.handlebars | 142 +++++ .../server_side/history.handlebars | 104 ++++ .../server_side/index.handlebars | 186 ++++++ .../server_side/install_err.handlebars | 7 + .../server_side/install_index.handlebars | 76 +++ .../server_side/invitation_themes.handlebars | 57 ++ .../server_side/layout.handlebars | 65 ++ .../server_side/license.handlebars | 21 + .../server_side/login.handlebars | 66 ++ .../server_side/operator.handlebars | 129 ++++ .../server_side/operator_groups.handlebars | 58 ++ .../server_side/operators.handlebars | 131 ++++ .../server_side/page_themes.handlebars | 48 ++ .../server_side/performance.handlebars | 140 +++++ .../server_side/permissions.handlebars | 53 ++ .../server_side/resetpwd.handlebars | 90 +++ .../server_side/restore.handlebars | 73 +++ .../server_side/settings.handlebars | 180 ++++++ .../server_side/statistics.handlebars | 233 +++++++ .../server_side/themes.handlebars | 49 ++ .../server_side/thread_log.handlebars | 97 +++ .../server_side/tracked.handlebars | 44 ++ .../server_side/translate.handlebars | 59 ++ .../server_side/translate_list.handlebars | 105 ++++ .../server_side/updates.handlebars | 54 ++ .../server_side/user_history.handlebars | 43 ++ .../server_side/users.handlebars | 137 +++++ .../styles/pages/default/views/agent.php | 135 ----- .../styles/pages/default/views/agents.php | 137 ----- .../styles/pages/default/views/avatar.php | 94 --- src/mibew/styles/pages/default/views/ban.php | 100 --- .../pages/default/views/blocked_visitors.php | 117 ---- .../styles/pages/default/views/canned.php | 118 ---- .../styles/pages/default/views/cannededit.php | 78 --- .../styles/pages/default/views/confirm.php | 56 -- .../styles/pages/default/views/features.php | 199 ------ .../styles/pages/default/views/gen_button.php | 133 ---- .../styles/pages/default/views/group.php | 175 ------ .../pages/default/views/groupmembers.php | 65 -- .../styles/pages/default/views/groups.php | 154 ----- .../styles/pages/default/views/inc_errors.php | 32 - .../pages/default/views/inc_locales.php | 36 -- .../styles/pages/default/views/inc_main.php | 90 --- .../styles/pages/default/views/inc_menu.php | 73 --- .../styles/pages/default/views/inc_tabbar.php | 30 - .../pages/default/views/install_err.php | 30 - .../pages/default/views/install_index.php | 84 --- .../pages/default/views/invitation_themes.php | 68 --- .../styles/pages/default/views/license.php | 43 -- .../styles/pages/default/views/login.php | 87 --- src/mibew/styles/pages/default/views/menu.php | 189 ------ .../pages/default/views/operator_groups.php | 68 --- .../pages/default/views/page_themes.php | 60 -- .../pages/default/views/pending_users.php | 161 ----- .../pages/default/views/performance.php | 152 ----- .../pages/default/views/permissions.php | 64 -- .../styles/pages/default/views/resetpwd.php | 104 ---- .../styles/pages/default/views/restore.php | 90 --- .../styles/pages/default/views/settings.php | 176 ------ .../styles/pages/default/views/statistics.php | 267 -------- .../styles/pages/default/views/themes.php | 60 -- .../styles/pages/default/views/thread_log.php | 123 ---- .../pages/default/views/thread_search.php | 128 ---- .../styles/pages/default/views/tracked.php | 83 --- .../styles/pages/default/views/translate.php | 75 --- .../pages/default/views/translatelist.php | 123 ---- .../styles/pages/default/views/updates.php | 68 --- .../pages/default/views/userhistory.php | 81 --- 113 files changed, 4379 insertions(+), 4269 deletions(-) create mode 100644 src/mibew/libs/classes/Mibew/Handlebars/HelpersSet.php rename src/mibew/styles/pages/default/{views => templates_src/server_side}/.htaccess (100%) create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/_errors.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/_locales.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/_menu.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/_tabs.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/avatar.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/ban.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/blocked_visitors.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/canned.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/canned_edit.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/confirm.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/features.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/get_code.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/group.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/group_members.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/groups.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/history.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/index.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/install_err.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/install_index.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/invitation_themes.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/layout.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/license.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/login.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/operator.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/operator_groups.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/operators.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/page_themes.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/performance.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/permissions.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/resetpwd.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/restore.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/settings.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/statistics.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/themes.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/thread_log.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/tracked.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/translate.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/translate_list.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/updates.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/user_history.handlebars create mode 100644 src/mibew/styles/pages/default/templates_src/server_side/users.handlebars delete mode 100644 src/mibew/styles/pages/default/views/agent.php delete mode 100644 src/mibew/styles/pages/default/views/agents.php delete mode 100644 src/mibew/styles/pages/default/views/avatar.php delete mode 100644 src/mibew/styles/pages/default/views/ban.php delete mode 100644 src/mibew/styles/pages/default/views/blocked_visitors.php delete mode 100644 src/mibew/styles/pages/default/views/canned.php delete mode 100644 src/mibew/styles/pages/default/views/cannededit.php delete mode 100644 src/mibew/styles/pages/default/views/confirm.php delete mode 100644 src/mibew/styles/pages/default/views/features.php delete mode 100644 src/mibew/styles/pages/default/views/gen_button.php delete mode 100644 src/mibew/styles/pages/default/views/group.php delete mode 100644 src/mibew/styles/pages/default/views/groupmembers.php delete mode 100644 src/mibew/styles/pages/default/views/groups.php delete mode 100644 src/mibew/styles/pages/default/views/inc_errors.php delete mode 100644 src/mibew/styles/pages/default/views/inc_locales.php delete mode 100644 src/mibew/styles/pages/default/views/inc_main.php delete mode 100644 src/mibew/styles/pages/default/views/inc_menu.php delete mode 100644 src/mibew/styles/pages/default/views/inc_tabbar.php delete mode 100644 src/mibew/styles/pages/default/views/install_err.php delete mode 100644 src/mibew/styles/pages/default/views/install_index.php delete mode 100644 src/mibew/styles/pages/default/views/invitation_themes.php delete mode 100644 src/mibew/styles/pages/default/views/license.php delete mode 100644 src/mibew/styles/pages/default/views/login.php delete mode 100644 src/mibew/styles/pages/default/views/menu.php delete mode 100644 src/mibew/styles/pages/default/views/operator_groups.php delete mode 100644 src/mibew/styles/pages/default/views/page_themes.php delete mode 100644 src/mibew/styles/pages/default/views/pending_users.php delete mode 100644 src/mibew/styles/pages/default/views/performance.php delete mode 100644 src/mibew/styles/pages/default/views/permissions.php delete mode 100644 src/mibew/styles/pages/default/views/resetpwd.php delete mode 100644 src/mibew/styles/pages/default/views/restore.php delete mode 100644 src/mibew/styles/pages/default/views/settings.php delete mode 100644 src/mibew/styles/pages/default/views/statistics.php delete mode 100644 src/mibew/styles/pages/default/views/themes.php delete mode 100644 src/mibew/styles/pages/default/views/thread_log.php delete mode 100644 src/mibew/styles/pages/default/views/thread_search.php delete mode 100644 src/mibew/styles/pages/default/views/tracked.php delete mode 100644 src/mibew/styles/pages/default/views/translate.php delete mode 100644 src/mibew/styles/pages/default/views/translatelist.php delete mode 100644 src/mibew/styles/pages/default/views/updates.php delete mode 100644 src/mibew/styles/pages/default/views/userhistory.php diff --git a/src/composer.json b/src/composer.json index 4152f80a..a85f70a8 100644 --- a/src/composer.json +++ b/src/composer.json @@ -1,6 +1,6 @@ { "require": { - "xamin/handlebars.php": "dev-master#44a6f96e9658ef526bbb2a06bc754abc71cdba99" + "xamin/handlebars.php": "dev-master#5b188ce19e9b07170238c82bd34051a31bdeebbf" }, "config": { "vendor-dir": "mibew/vendor" diff --git a/src/mibew/install/index.php b/src/mibew/install/index.php index d8792887..8bae8eab 100644 --- a/src/mibew/install/index.php +++ b/src/mibew/install/index.php @@ -34,6 +34,9 @@ require_once(MIBEW_FS_ROOT.'/libs/config.php'); */ define('MIBEW_CONFIG_WEB_ROOT', $mibewroot); +// Initialize external dependencies +require_once(MIBEW_FS_ROOT . '/vendor/autoload.php'); + // Try to get actual base URL of the Mibew $requestUri = $_SERVER["REQUEST_URI"]; if (!preg_match('/^(.*)\\/install(\\/[^\\/\\\\]*)?$/', $requestUri, $matches)) { @@ -57,6 +60,7 @@ require_once(MIBEW_FS_ROOT.'/libs/common/string.php'); require_once(MIBEW_FS_ROOT.'/libs/classes/Mibew/Style/StyleInterface.php'); require_once(MIBEW_FS_ROOT.'/libs/classes/Mibew/Style/AbstractStyle.php'); require_once(MIBEW_FS_ROOT.'/libs/classes/Mibew/Style/PageStyle.php'); +require_once(MIBEW_FS_ROOT.'/libs/classes/Mibew/Handlebars/HelpersSet.php'); // Include database structure require_once(MIBEW_FS_ROOT.'/install/dbinfo.php'); diff --git a/src/mibew/libs/classes/Mibew/Handlebars/HelpersSet.php b/src/mibew/libs/classes/Mibew/Handlebars/HelpersSet.php new file mode 100644 index 00000000..5f4df721 --- /dev/null +++ b/src/mibew/libs/classes/Mibew/Handlebars/HelpersSet.php @@ -0,0 +1,573 @@ +helpersList(); + } + + /** + * A helper for string localization. + * + * Example of usage: + * + * {{l10n "localization.string" arg1 arg2 arg3}} + * + * where: + * - "localization.string" is localization constant. + * - arg* are arguments that will be passed to getlocal2 function. There + * can be arbitrary number of such arguments. + */ + public function localizationHelper($template, $context, $args, $source) + { + // Check if there is at least one argument + $parsed_arguments = $template->parseArguments($args); + if (empty($parsed_arguments)) { + return ''; + } + + $text = $context->get(array_shift($parsed_arguments)); + + // We need to escape extra arguments passed to the helper. Thus we need + // to get escape function and its arguments from the template engine. + $escape_func = $template->getEngine()->getEscape(); + $escape_args = $template->getEngine()->getEscapeArgs(); + + // Check if there are any other arguments passed into helper and escape + // them. + $local_args = array(); + foreach ($parsed_arguments as $parsed_argument) { + // Get locale argument string and add it to escape function + // arguments. + array_unshift($escape_args, $context->get($parsed_argument)); + + // Escape locale argument's value + $local_args[] = call_user_func_array( + $escape_func, + array_values($escape_args) + ); + + // Remove locale argument's value from escape function argument + array_shift($escape_args); + } + + if (empty($local_args)) { + $result = getlocal($text); + } else { + $result = getlocal2($text, $local_args); + } + + return new \Handlebars\SafeString($result); + } + + /** + * Conditional helper that checks if two values are equal or not. + * + * Example of usage: + * + * {{#ifEqual first second}} + * The first argument is equal to the second one. + * {{else}} + * The arguments are not equal. + * {{/ifEqual}} + * + */ + public function ifEqualHelper($template, $context, $args, $source) + { + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args) || count($parsed_args) < 2) { + return ''; + } + + $condition = ($context->get($parsed_args[0]) == $context->get($parsed_args[1])); + + if ($condition) { + $template->setStopToken('else'); + $buffer = $template->render($context); + $template->setStopToken(false); + } else { + $template->setStopToken('else'); + $template->discard(); + $template->setStopToken(false); + $buffer = $template->render($context); + } + + return $buffer; + } + + /** + * Conditional helper that checks if at least one argumet can be treated as + * "true" value. + * + * Example of usage: + * + * {{#ifAny first second third}} + * At least one of argument can be threated as "true". + * {{else}} + * All values are "falsy" + * {{/ifAny}} + * + */ + public function ifAnyHelper($template, $context, $args, $source) + { + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args)) { + return ''; + } + + $condition = false; + foreach ($parsed_args as $parsed_arg) { + $value = $context->get($parsed_arg); + + if ($value instanceof \Handlebars\String) { + // We need to get internal string. Casting any object of + // \Handlebars\String will have positive result even for those + // with empty internal strings. + $value = $value->getString(); + } + + if ($value) { + $condition = true; + break; + } + } + + if ($condition) { + $template->setStopToken('else'); + $buffer = $template->render($context); + $template->setStopToken(false); + } else { + $template->setStopToken('else'); + $template->discard(); + $template->setStopToken(false); + $buffer = $template->render($context); + } + + return $buffer; + } + + /** + * A helper for templates inheritance. + * + * Example of usage: + * + * {{#extends "parentTemplateName"}} + * {{#override "blockName"}} + * Overridden first block + * {{/override}} + * + * {{#override "anotherBlockName"}} + * Overridden second block + * {{/override}} + * {{/extends}} + * + */ + public function extendsHelper($template, $context, $args, $source) + { + // Get name of the parent template + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args)) { + return ''; + } + $parent_template = $context->get(array_shift($parsed_args)); + + // Render content inside "extends" block to override blocks + $template->render($context); + + // We need to another instance of \Handlebars\Template to render parent + // template. It can be got from Handlebars engine, so get the latter. + $handlebars = $template->getEngine(); + + // Render the parent template + return $handlebars->render($parent_template, $context); + } + + /** + * A helper for defining default content of a block. + * + * Example of usage: + * + * {{#block "blockName"}} + * Default content for the block + * {{/block}} + * + */ + public function blockHelper($template, $context, $args, $source) + { + // Get block name + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args)) { + return ''; + } + $block_name = $context->get(array_shift($parsed_args)); + + // If the block is not overridden render and show the default value + if (!isset($this->blocksStorage[$block_name])) { + return $template->render($context); + } + + // Show overridden content + return $this->blocksStorage[$block_name]; + } + + /** + * A helper for overriding content of a block. + * + * Example of usage: + * + * {{#extends "parentTemplateName"}} + * {{#override "blockName"}} + * Overridden first block + * {{/override}} + * + * {{#override "anotherBlockName"}} + * Overridden second block + * {{/override}} + * {{/extends}} + * + */ + public function overrideHelper($template, $context, $args, $source) + { + // Get block name + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args)) { + return ''; + } + $block_name = $context->get(array_shift($parsed_args)); + + // We need to provide unlimited inheritence level. Rendering is started + // from the deepest level template. If the content is in the block + // storage it is related with the deepest level template. Thus we do not + // need to override it. + if (!isset($this->blocksStorage[$block_name])) { + $this->blocksStorage[$block_name] = $template->render($context); + } + } + + /** + * Conditional helper that checks if block overridden or not. + * + * Example of usage: + * + * {{#ifOverridden "blockName"}} + * The block was overridden + * {{else}} + * The block was not overridden + * {{/ifOverriden}} + * + */ + public function ifOverriddenHelper($template, $context, $args, $source) + { + // Get block name + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args)) { + return ''; + } + $block_name = $context->get(array_shift($parsed_args)); + + // Check condition and render blocks + if (isset($this->blocksStorage[$block_name])) { + $template->setStopToken('else'); + $buffer = $template->render($context); + $template->setStopToken(false); + } else { + $template->setStopToken('else'); + $template->discard(); + $template->setStopToken(false); + $buffer = $template->render($context); + } + + return $buffer; + } + + /** + * Conditional helper that checks if block overridden or not. + * + * Example of usage: + * + * {{#unlessOverridden "blockName"}} + * The block was not overridden + * {{else}} + * The block was overridden + * {{/unlessOverriden}} + * + */ + public function unlessOverriddenHelper($template, $context, $args, $source) + { + // Get block name + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args)) { + return ''; + } + $block_name = $context->get(array_shift($parsed_args)); + + // Check condition and render blocks + if (!isset($this->blocksStorage[$block_name])) { + $template->setStopToken('else'); + $buffer = $template->render($context); + $template->setStopToken(false); + } else { + $template->setStopToken('else'); + $template->discard(); + $template->setStopToken(false); + $buffer = $template->render($context); + } + + return $buffer; + } + + /** + * Generates markup with hidden input tag for CSRF token. + * + * Example of usage: + * + * {{csrfTokenInput}} + * + */ + public function csrfTokenInputHelper() + { + return new \Handlebars\SafeString(get_csrf_token_input()); + } + + /** + * Generates CSRF taken formated prepared to insert in URLs. + * + * Example of usage: + * + * {{csrfTokenInUrl}} + * + */ + public function csrfTokenInUrlHelper() + { + return new \Handlebars\SafeString(get_csrf_token_in_url()); + } + + /** + * Generates pagination block. + * + * Example of usage: + * + * {{generatePagination stylePath paginationInfo bottom}} + * + * where: + * - "stylePath" is expression for path to current style. + * - "paginationInfo" is 'info' key from the result of setup_pagination + * function. + * - "bottom": optional argument that indicate if pagination block shoud + * be generated for a page bottom or not. If specified and equal to + * string "false" then boolean false will be passed into + * generate_pagination. In all other cases boolean true will be used. + */ + public function generatePaginationHelper($template, $context, $args, $source) + { + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args) || count($parsed_args) < 2) { + return ''; + } + + $stylePath = $context->get($parsed_args[0]); + $pagination_info = $context->get($parsed_args[1]); + $bottom = empty($parsed_args[2]) ? true : $context->get($parsed_args[2]); + + $pagination = generate_pagination( + $stylePath, + $pagination_info, + ($bottom === "false") ? false : true + ); + + return new \Handlebars\SafeString($pagination); + } + + /** + * Escapes special characters to use result as a valid JavaScript string + * enclosed with single quotes (') or duouble quotes ("). + * + * Example of usage: + * + * var a = "{{#jsString}}some string to escape{{/jsString}}"; + * + */ + public function jsStringHelper($template, $context, $args, $source) + { + return str_replace("\n", "\\n", addslashes($template->render($context))); + } + + /** + * Helper for repeating content. + * + * Example of usage: + * + * {{#repeat times}}content to repeat{{/repeat}} + * + */ + public function repeatHelper($template, $context, $args, $source) + { + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args)) { + return ''; + } + + $times = intval($context->get($parsed_args[0])); + $string = $template->render($context); + + return str_repeat($string, $times); + } + + /** + * Helper for replacing substrings. + * + * Example of usage: + * + * {{#replace search replacement}}target content{{/replace}} + * + */ + public function replaceHelper($template, $context, $args, $source) + { + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args) || count($parsed_args) < 2) { + return ''; + } + + $search = $context->get($parsed_args[0]); + $replacement = $context->get($parsed_args[1]); + $subject = $template->render($context); + + return str_replace($search, $replacement, $subject); + } + + /** + * Format date using internal format. + * + * Example of usage: + * + * {{formatDate unixTimestamp}} + * + */ + public function formatDateHelper($template, $context, $args, $source) + { + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args)) { + return ''; + } + + $timestamp = intval($context->get($parsed_args[0])); + + return date_to_text($timestamp); + } + + /** + * Format date difference using internal format. + * + * Example of usage: + * + * {{formatDateDiff seconds}} + * + */ + public function formatDateDiffHelper($template, $context, $args, $source) + { + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args)) { + return ''; + } + + $seconds = intval($context->get($parsed_args[0])); + + return date_diff_to_text($seconds); + } + + /** + * Cut string if it exceeds specified length. + * + * Example of usage: + * + * {{cutString string length}} + * + */ + public function cutStringHelper($template, $context, $args, $source) + { + $parsed_args = $template->parseArguments($args); + if (empty($parsed_args) || count($parsed_args) < 2) { + return ''; + } + + $string = $context->get($parsed_args[0]); + $length = intval($context->get($parsed_args[1])); + + return substr($string, 0, $length); + } + + /** + * Actually builds helpers list. + * + * @return array List of helpers + */ + protected function helpersList() + { + return array( + 'l10n' => array($this, 'localizationHelper'), + 'extends' => array($this, 'extendsHelper'), + 'block' => array($this, 'blockHelper'), + 'override' => array($this, 'overrideHelper'), + 'ifOverridden' => array($this, 'ifOverriddenHelper'), + 'unlessOverridden' => array($this, 'unlessOverriddenHelper'), + 'ifEqual' => array($this, 'ifEqualHelper'), + 'ifAny' => array($this, 'ifAnyHelper'), + 'generatePagination' => array($this, 'generatePaginationHelper'), + 'jsString' => array($this, 'jsStringHelper'), + 'repeat' => array($this, 'repeatHelper'), + 'replace' => array($this, 'replaceHelper'), + 'formatDate' => array($this, 'formatDateHelper'), + 'formatDateDiff' => array($this, 'formatDateDiffHelper'), + 'cutString' => array($this, 'cutStringHelper'), + 'csrfTokenInput' => array($this, 'csrfTokenInputHelper'), + 'csrfTokenInUrl' => array($this, 'csrfTokenInUrlHelper'), + ); + } +} diff --git a/src/mibew/libs/classes/Mibew/Style/PageStyle.php b/src/mibew/libs/classes/Mibew/Style/PageStyle.php index 32673528..42196964 100644 --- a/src/mibew/libs/classes/Mibew/Style/PageStyle.php +++ b/src/mibew/libs/classes/Mibew/Style/PageStyle.php @@ -19,12 +19,44 @@ namespace Mibew\Style; // Import namespaces and classes of the core use Mibew\Settings; +use Mibew\Handlebars\HelpersSet; /** * Represents a style for operator pages */ class PageStyle extends AbstractStyle implements StyleInterface { + /** + * Template engine for chat templates. + * + * @var \Handlebars\Handlebars + */ + protected $templateEngine; + + /** + * Object constructor + * + * @param string $style_name Name of the style + */ + public function __construct($style_name) + { + parent::__construct($style_name); + + $templates_loader = new \Handlebars\Loader\FilesystemLoader( + MIBEW_FS_ROOT . '/' . $this->filesPath() . '/templates_src/server_side/' + ); + + $this->templateEngine = new \Handlebars\Handlebars(array( + 'loader' => $templates_loader, + 'partials_loader' => $templates_loader, + 'helpers' => new \Handlebars\Helpers(HelpersSet::getHelpers()) + )); + + // Use custom function to escape strings + $this->templateEngine->setEscape('safe_htmlspecialchars'); + $this->templateEngine->setEscapeArgs(array()); + } + /** * Builds base path for style files. This path is relative Mibew root and * does not contain neither leading nor trailing slash. @@ -49,20 +81,18 @@ class PageStyle extends AbstractStyle implements StyleInterface // Prepare to output html start_html_output(); - // Build full view name. Remove '\' and '/' characters form the - // specified view name - $full_view_name = MIBEW_FS_ROOT . '/' . $this->filesPath() . '/views/' - . str_replace("/\\", '', $template_name) . '.php'; - // $page variable is used in included views files, so we need to create // it as an alias of $data argument. $page = $data; - // Add template root value to page variables - $page['stylepath'] = MIBEW_WEB_ROOT . '/' . $this->filesPath(); + // Pass additional variables to template + $page['mibewRoot'] = MIBEW_WEB_ROOT; + $page['mibewVersion'] = MIBEW_VERSION; + $page['currentLocale'] = CURRENT_LOCALE; + $page['rtl'] = (getlocal("localedirection") == 'rtl'); + $page['stylePath'] = MIBEW_WEB_ROOT . '/' . $this->filesPath(); - // Load and execute the view - require($full_view_name); + echo($this->templateEngine->render($template_name, $page)); } /** diff --git a/src/mibew/libs/common/csrf.php b/src/mibew/libs/common/csrf.php index 50057a03..c51176a1 100644 --- a/src/mibew/libs/common/csrf.php +++ b/src/mibew/libs/common/csrf.php @@ -33,20 +33,18 @@ function csrf_check_token() } } -/* print csrf token as a hidden field */ -function print_csrf_token_input() +function get_csrf_token_input() { set_csrf_token(); - echo ""; + return ''; } -/* print csrf token in url format */ -function print_csrf_token_in_url() +function get_csrf_token_in_url() { set_csrf_token(); - echo "&csrf_token=" . $_SESSION['csrf_token']; + return "&csrf_token=" . $_SESSION['csrf_token']; } /* set csrf token */ diff --git a/src/mibew/libs/common/string.php b/src/mibew/libs/common/string.php index 3802d0fe..490bd78d 100644 --- a/src/mibew/libs/common/string.php +++ b/src/mibew/libs/common/string.php @@ -155,3 +155,15 @@ function sanitize_reg_escape($string) return strtr($string, $conversions); } + +/** + * Wrapper for htmlspecialchars with single quotes conversion enabled by default + * + * @param string $string Target string + * @return string Escaped string + */ +function safe_htmlspecialchars($string) +{ + $string = preg_replace('/[\x00-\x08\x10-\x1f]/', '', $string); + return htmlspecialchars($string, ENT_QUOTES); +} diff --git a/src/mibew/libs/init.php b/src/mibew/libs/init.php index 4cb46584..1d477578 100644 --- a/src/mibew/libs/init.php +++ b/src/mibew/libs/init.php @@ -47,6 +47,9 @@ require_once(MIBEW_FS_ROOT . '/libs/common/constants.php'); require_once(MIBEW_FS_ROOT . '/libs/common/autoload.php'); spl_autoload_register('class_autoload'); +// Initialize external dependencies +require_once(MIBEW_FS_ROOT . '/vendor/autoload.php'); + // Include common libs require_once(MIBEW_FS_ROOT . '/libs/common/configurations.php'); require_once(MIBEW_FS_ROOT . '/libs/common/verification.php'); diff --git a/src/mibew/libs/operator.php b/src/mibew/libs/operator.php index 549c2077..10d8efb5 100644 --- a/src/mibew/libs/operator.php +++ b/src/mibew/libs/operator.php @@ -761,6 +761,10 @@ function prepare_menu($operator, $has_right = true) $result = array(); $result['operator'] = to_page(get_operator_name($operator)); + $result['goOnlineLink'] = getlocal2( + "menu.goonline", + array(MIBEW_WEB_ROOT . "/operator/users.php?nomenu") + ); if ($has_right) { $result['showban'] = Settings::get('enableban') == "1"; $result['showstat'] = Settings::get('enablestatistics') == "1"; diff --git a/src/mibew/license.php b/src/mibew/license.php index 4781924b..e4a65019 100644 --- a/src/mibew/license.php +++ b/src/mibew/license.php @@ -25,6 +25,7 @@ $page = array(); $page['title'] = getlocal("license.title"); $page['no_right_menu'] = true; $page['fixedwrap'] = true; +$page['show_small_login'] = false; $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('license', $page); diff --git a/src/mibew/operator/ban.php b/src/mibew/operator/ban.php index e49772f1..4ccacb9e 100644 --- a/src/mibew/operator/ban.php +++ b/src/mibew/operator/ban.php @@ -123,7 +123,7 @@ if (isset($_POST['address'])) { $thread_id = verify_param('thread', "/^\d{1,9}$/"); $thread = Thread::load($thread_id); if ($thread) { - $page['thread'] = to_page($thread->userName); + $page['thread'] = htmlspecialchars(to_page($thread->userName)); $page['threadid'] = $thread_id; $page['formaddress'] = to_page($thread->remote); $page['formdays'] = 15; diff --git a/src/mibew/operator/blocked.php b/src/mibew/operator/blocked.php index 364fcfc5..f0e4b917 100644 --- a/src/mibew/operator/blocked.php +++ b/src/mibew/operator/blocked.php @@ -57,6 +57,11 @@ $blocked_list = $db->query( array('return_rows' => Database::RETURN_ALL_ROWS) ); +foreach ($blocked_list as &$item) { + $item['comment'] = to_page($item['comment']); +} +unset($item); + $page['title'] = getlocal("page_bans.title"); $page['menuid'] = "blocked"; diff --git a/src/mibew/operator/canned.php b/src/mibew/operator/canned.php index 709cbdc9..6f0fd8b2 100644 --- a/src/mibew/operator/canned.php +++ b/src/mibew/operator/canned.php @@ -92,8 +92,14 @@ if (isset($_GET['act']) && $_GET['act'] == 'delete') { // Get messages and setup pagination -$messages = load_canned_messages($lang, $group_id); -$pagination = setup_pagination($messages); +$canned_messages = load_canned_messages($lang, $group_id); +foreach ($canned_messages as &$message) { + $message['vctitle'] = to_page($message['vctitle']); + $message['vcvalue'] = to_page($message['vcvalue']); +} +unset($message); + +$pagination = setup_pagination($canned_messages); $page['pagination'] = $pagination['info']; $page['pagination.items'] = $pagination['items']; diff --git a/src/mibew/operator/cannededit.php b/src/mibew/operator/cannededit.php index 74c42e36..a24f77bb 100644 --- a/src/mibew/operator/cannededit.php +++ b/src/mibew/operator/cannededit.php @@ -71,7 +71,7 @@ if (isset($_POST['message']) && isset($_POST['title'])) { } $page['saved'] = true; $page = array_merge($page, prepare_menu($operator, false)); - $page_style->render('cannededit', $page); + $page_style->render('canned_edit', $page); exit; } } @@ -84,4 +84,4 @@ $page['title'] = empty($string_id) ? getlocal("cannednew.title") : getlocal("can $page = array_merge($page, prepare_menu($operator, false)); -$page_style->render('cannededit', $page); +$page_style->render('canned_edit', $page); diff --git a/src/mibew/operator/getcode.php b/src/mibew/operator/getcode.php index af728ea8..e307b0b5 100644 --- a/src/mibew/operator/getcode.php +++ b/src/mibew/operator/getcode.php @@ -121,4 +121,4 @@ $page['menuid'] = "getcode"; $page = array_merge($page, prepare_menu($operator)); $page_style = new PageStyle(PageStyle::currentStyle()); -$page_style->render('gen_button', $page); +$page_style->render('get_code', $page); diff --git a/src/mibew/operator/groupmembers.php b/src/mibew/operator/groupmembers.php index a3e3db5a..601818d4 100644 --- a/src/mibew/operator/groupmembers.php +++ b/src/mibew/operator/groupmembers.php @@ -27,10 +27,12 @@ $operator = check_login(); csrf_check_token(); $group_id = verify_param("gid", "/^\d{1,9}$/"); -$page = array('groupid' => $group_id); -$page['operators'] = get_operators_list(); -$page['errors'] = array(); +$page = array( + 'groupid' => $group_id, + 'errors' => array(), +); +$operators = get_operators_list(); $group = group_by_id($group_id); if (!$group) { @@ -38,7 +40,7 @@ if (!$group) { } elseif (isset($_POST['gid'])) { $new_members = array(); - foreach ($page['operators'] as $op) { + foreach ($operators as $op) { if (verify_param("op" . $op['operatorid'], "/^on$/", "") == "on") { $new_members[] = $op['operatorid']; } @@ -52,8 +54,18 @@ if (!$group) { $page['formop'] = array(); $page['currentgroup'] = $group ? to_page(htmlspecialchars($group['vclocalname'])) : ""; +$checked_operators = array(); foreach (get_group_members($group_id) as $rel) { - $page['formop'][] = $rel['operatorid']; + $checked_operators[] = $rel['operatorid']; +} + +$page['operators'] = array(); +foreach ($operators as $op) { + $op['vclocalename'] = to_page($op['vclocalename']); + $op['vclogin'] = to_page($op['vclogin']); + $op['checked'] = in_array($op['operatorid'], $checked_operators); + + $page['operators'][] = $op; } $page['stored'] = isset($_GET['stored']); @@ -65,4 +77,4 @@ $page = array_merge($page, prepare_menu($operator)); $page['tabs'] = setup_group_settings_tabs($group_id, 1); $page_style = new PageStyle(PageStyle::currentStyle()); -$page_style->render('groupmembers', $page); +$page_style->render('group_members', $page); diff --git a/src/mibew/operator/groups.php b/src/mibew/operator/groups.php index a9038c3d..02279b35 100644 --- a/src/mibew/operator/groups.php +++ b/src/mibew/operator/groups.php @@ -27,6 +27,10 @@ require_once(MIBEW_FS_ROOT . '/libs/groups.php'); $operator = check_login(); csrf_check_token(); +$page = array( + 'errors' => array(), +); + if (isset($_GET['act']) && $_GET['act'] == 'del') { $group_id = isset($_GET['gid']) ? $_GET['gid'] : ""; @@ -49,10 +53,22 @@ if (isset($_GET['act']) && $_GET['act'] == 'del') { } } -$page = array(); $sort['by'] = verify_param("sortby", "/^(name|lastseen|weight)$/", "name"); $sort['desc'] = (verify_param("sortdirection", "/^(desc|asc)$/", "desc") == "desc"); -$page['groups'] = get_sorted_groups($sort); + +// Load and prepare groups +$groups = get_sorted_groups($sort); +foreach ($groups as &$group) { + $group['vclocalname'] = to_page($group['vclocalname']); + $group['vclocaldescription'] = to_page($group['vclocaldescription']); + $group['isOnline'] = group_is_online($group); + $group['isAway'] = group_is_away($group); + $group['lastTimeOnline'] = time() - ($group['ilastseen'] ? $group['ilastseen'] : time()); + $group['inumofagents'] = to_page($group['inumofagents']); +} +unset($group); + +$page['groups'] = $groups; $page['formsortby'] = $sort['by']; $page['formsortdirection'] = $sort['desc'] ? 'desc' : 'asc'; $page['canmodify'] = is_capable(CAN_ADMINISTRATE, $operator); diff --git a/src/mibew/operator/history.php b/src/mibew/operator/history.php index d9ce2d34..37929099 100644 --- a/src/mibew/operator/history.php +++ b/src/mibew/operator/history.php @@ -54,7 +54,6 @@ if ($query !== false) { foreach ($groups as $group) { $group_name[$group['groupid']] = $group['vclocalname']; } - $page['groupName'] = $group_name; $values = array( ':query' => "%{$query}%", @@ -119,7 +118,24 @@ if ($query !== false) { ); foreach ($threads_list as $item) { - $page['pagination.items'][] = Thread::createFromDbInfo($item); + $thread = Thread::createFromDbInfo($item); + + $group_name_set = ($thread->groupId + && $thread->groupId != 0 + && isset($group_name[$thread->groupId])); + + $page['pagination.items'][] = array( + 'threadId' => $thread->id, + 'userName' => to_page($thread->userName), + 'userAddress' => get_user_addr(to_page($thread->remote)), + 'agentName' => to_page($thread->agentName), + 'messageCount' => to_page($thread->messageCount), + 'groupName' => ($group_name_set + ? to_page($group_name[$thread->groupId]) + : false), + 'chatTime' => $thread->modified - $thread->created, + 'chatCreated' => $thread->created, + ); } } else { $page['pagination'] = false; @@ -136,8 +152,10 @@ $page['formtype'] = $search_type; $page['forminsystemmessages'] = $search_in_system_messages; $page['title'] = getlocal("page_analysis.search.title"); $page['menuid'] = "history"; +$page['canSearchInSystemMessages'] = ($search_type != 'all') + && ($search_type != 'message'); $page = array_merge($page, prepare_menu($operator)); $page_style = new PageStyle(PageStyle::currentStyle()); -$page_style->render('thread_search', $page); +$page_style->render('history', $page); diff --git a/src/mibew/operator/index.php b/src/mibew/operator/index.php index 14a5d91b..7a991c68 100644 --- a/src/mibew/operator/index.php +++ b/src/mibew/operator/index.php @@ -38,6 +38,7 @@ $page = array( 'newFeatures' => Settings::get('featuresversion') != FEATURES_VERSION, 'featuresPage' => MIBEW_WEB_ROOT . "/operator/features.php", 'isOnline' => $is_online, + 'warnOffline' => true, 'title' => getlocal("topMenu.admin"), 'menuid' => "main", ); @@ -45,4 +46,4 @@ $page = array( $page = array_merge($page, prepare_menu($operator)); $page_style = new PageStyle(PageStyle::currentStyle()); -$page_style->render('menu', $page); +$page_style->render('index', $page); diff --git a/src/mibew/operator/operator.php b/src/mibew/operator/operator.php index c8d3cfd2..482d9a99 100644 --- a/src/mibew/operator/operator.php +++ b/src/mibew/operator/operator.php @@ -167,10 +167,11 @@ $page['canchangelogin'] = is_capable(CAN_ADMINISTRATE, $operator); $page['needChangePassword'] = check_password_hash($operator['vclogin'], '', $operator['vcpassword']); $page['title'] = getlocal("page_agent.title"); $page['menuid'] = ($op_id == $operator['operatorid']) ? "profile" : "operators"; +$page['requirePassword'] = (!$op_id || $page['needChangePassword']); $page = array_merge($page, prepare_menu($operator)); $page['tabs'] = setup_operator_settings_tabs($op_id, 0); $page_style = new PageStyle(PageStyle::currentStyle()); -$page_style->render('agent', $page); +$page_style->render('operator', $page); diff --git a/src/mibew/operator/operators.php b/src/mibew/operator/operators.php index 5f267635..03a509e8 100644 --- a/src/mibew/operator/operators.php +++ b/src/mibew/operator/operators.php @@ -104,7 +104,22 @@ $list_options['sort'] = $sort; if (in_isolation($operator)) { $list_options['isolated_operator_id'] = $operator['operatorid']; } -$page['allowedAgents'] = get_operators_list($list_options); + +$operators_list = get_operators_list($list_options); + +// Prepare operator to render in template +foreach ($operators_list as &$item) { + $item['vclogin'] = to_page($item['vclogin']); + $item['vclocalename'] = to_page($item['vclocalename']); + $item['vccommonname'] = to_page($item['vccommonname']); + $item['isAvailable'] = operator_is_available($item); + $item['isAway'] = operator_is_away($item); + $item['lastTimeOnline'] = time() - $item['time']; + $item['isDisabled'] = operator_is_disabled($item); +} +unset($item); + +$page['allowedAgents'] = $operators_list; $page['canmodify'] = is_capable(CAN_ADMINISTRATE, $operator); $page['availableOrders'] = array( array('id' => 'login', 'name' => getlocal('page_agents.login')), @@ -125,4 +140,4 @@ setlocale(LC_TIME, getstring("time.locale")); $page = array_merge($page, prepare_menu($operator)); $page_style = new PageStyle(PageStyle::currentStyle()); -$page_style->render('agents', $page); +$page_style->render('operators', $page); diff --git a/src/mibew/operator/opgroups.php b/src/mibew/operator/opgroups.php index 525b5023..f13b4c91 100644 --- a/src/mibew/operator/opgroups.php +++ b/src/mibew/operator/opgroups.php @@ -29,11 +29,14 @@ csrf_check_token(); $operator_in_isolation = in_isolation($operator); $op_id = verify_param("op", "/^\d{1,9}$/"); -$page = array('opid' => $op_id); -$page['groups'] = $operator_in_isolation +$page = array( + 'opid' => $op_id, + 'errors' => array() +); + +$groups = $operator_in_isolation ? get_all_groups_for_operator($operator) : get_all_groups(); -$page['errors'] = array(); $can_modify = is_capable(CAN_ADMINISTRATE, $operator); @@ -49,7 +52,7 @@ if (!$op) { if (count($page['errors']) == 0) { $new_groups = array(); - foreach ($page['groups'] as $group) { + foreach ($groups as $group) { if (verify_param("group" . $group['groupid'], "/^on$/", "") == "on") { $new_groups[] = $group['groupid']; } @@ -61,21 +64,30 @@ if (!$op) { } } -$page['formgroup'] = array(); $page['currentop'] = $op ? to_page(get_operator_name($op)) . " (" . $op['vclogin'] . ")" : getlocal("not_found"); $page['canmodify'] = $can_modify ? "1" : ""; +$checked_groups = array(); if ($op) { foreach (get_operator_group_ids($op_id) as $rel) { - $page['formgroup'][] = $rel['groupid']; + $checked_groups[] = $rel['groupid']; } } +$page['groups'] = array(); +foreach ($groups as $group) { + $group['vclocalname'] = to_page($group['vclocalname']); + $group['vclocaldescription'] = to_page($group['vclocaldescription']); + $group['checked'] = in_array($group['groupid'], $checked_groups); + + $page['groups'][] = $group; +} + $page['stored'] = isset($_GET['stored']); $page['title'] = getlocal("operator.groups.title"); -$page['menuid'] = ($page['operatorid'] == $op_id) ? "profile" : "operators"; +$page['menuid'] = ($operator['operatorid'] == $op_id) ? "profile" : "operators"; $page = array_merge($page, prepare_menu($operator)); diff --git a/src/mibew/operator/permissions.php b/src/mibew/operator/permissions.php index 8d02d681..376987ad 100644 --- a/src/mibew/operator/permissions.php +++ b/src/mibew/operator/permissions.php @@ -64,18 +64,23 @@ if (!$op) { } } -$page['permissionsList'] = get_permission_list(); -$page['formpermissions'] = array(""); $page['currentop'] = $op ? to_page(get_operator_name($op)) . " (" . $op['vclogin'] . ")" : getlocal("not_found"); +$checked_permissions = array(); if ($op) { foreach (permission_ids() as $perm => $id) { if (is_capable($perm, $op)) { - $page['formpermissions'][] = $id; + $checked_permissions[] = $id; } } } +$page['permissionsList'] = array(); +foreach(get_permission_list() as $perm) { + $perm['checked'] = in_array($perm['id'], $checked_permissions); + $page['permissionsList'][] = $perm; +} + $page['stored'] = isset($_GET['stored']); $page['title'] = getlocal("permissions.title"); $page['menuid'] = ($operator['operatorid'] == $op_id) ? "profile" : "operators"; diff --git a/src/mibew/operator/statistics.php b/src/mibew/operator/statistics.php index 859f6e83..9f26fe65 100644 --- a/src/mibew/operator/statistics.php +++ b/src/mibew/operator/statistics.php @@ -44,8 +44,13 @@ $page['showbydate'] = ($statistics_type == 'bydate'); $page['showbyagent'] = ($statistics_type == 'byagent'); $page['showbypage'] = ($statistics_type == 'bypage'); -$page['cron_path'] = cron_get_uri(Settings::get('cron_key')); -$page['last_cron_run'] = Settings::get('_last_cron_run'); +$page['pageDescription'] = getlocal2( + "statistics.description.full", + array( + date_to_text(Settings::get('_last_cron_run')), + cron_get_uri(Settings::get('cron_key')), + ) +); $page['show_invitations_info'] = (bool) Settings::get('enabletracking'); @@ -159,6 +164,15 @@ if ($statistics_type == 'bydate') { ), array('return_rows' => Database::RETURN_ALL_ROWS) ); + + // We need to pass operator name through "to_page" function because we + // cannot do it in a template. + // TODO: Remove this block when "to_page" function will be removed. + foreach ($page['reportByAgent'] as &$row) { + $row['name'] = to_page($row['name']); + } + unset($row); + $active_tab = 1; } elseif ($statistics_type == 'bypage') { $page['reportByPage'] = $db->query( diff --git a/src/mibew/operator/threadprocessor.php b/src/mibew/operator/threadprocessor.php index ce224d1c..0a615909 100644 --- a/src/mibew/operator/threadprocessor.php +++ b/src/mibew/operator/threadprocessor.php @@ -40,14 +40,19 @@ if (isset($_GET['threadid'])) { $group = group_by_id($thread->groupId); $thread_info = array( - 'thread' => $thread, - 'groupName' => get_group_name($group), + 'userName' => to_page($thread->userName), + 'userAddress' => get_user_addr(to_page($thread->remote)), + 'userAgentVersion' => get_user_agent_version(to_page($thread->userAgent)), + 'agentName' => to_page($thread->agentName), + 'chatTime' => ($thread->modified - $thread->created), + 'chatStarted' => $thread->created, + 'groupName' => to_page(get_group_name($group)), ); - $page['thread_info'] = $thread_info; + $page['threadInfo'] = $thread_info; // Build messages list $last_id = -1; - $messages = $thread_info['thread']->getMessages(false, $last_id); + $messages = $thread->getMessages(false, $last_id); $page['threadMessages'] = json_encode($messages); } diff --git a/src/mibew/operator/tracked.php b/src/mibew/operator/tracked.php index 237bb7ce..0a4ccf5a 100644 --- a/src/mibew/operator/tracked.php +++ b/src/mibew/operator/tracked.php @@ -63,6 +63,7 @@ foreach ($path as $k => $v) { } $page['title'] = getlocal("tracked.path"); +$page['show_small_login'] = false; $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('tracked', $page); diff --git a/src/mibew/operator/translate.php b/src/mibew/operator/translate.php index c84f27c3..dce08e62 100644 --- a/src/mibew/operator/translate.php +++ b/src/mibew/operator/translate.php @@ -43,8 +43,8 @@ $lang2 = $messages[$target]; $page = array( 'lang1' => $source, 'lang2' => $target, - 'title1' => isset($lang1["localeid"]) ? $lang1["localeid"] : $source, - 'title2' => isset($lang2["localeid"]) ? $lang2["localeid"] : $target, + 'title1' => to_page(isset($lang1["localeid"]) ? $lang1["localeid"] : $source), + 'title2' => to_page(isset($lang2["localeid"]) ? $lang2["localeid"] : $target), 'errors' => array(), ); @@ -117,6 +117,9 @@ foreach ($all_keys as $key) { 'id' => $key, 'l1' => $t_source, 'l2' => $value, + 'idToPage' => to_page($key), + 'l1ToPage' => to_page($t_source), + 'l2ToPage' => to_page($value), ); } } @@ -163,4 +166,4 @@ $page['menuid'] = "translate"; $page = array_merge($page, prepare_menu($operator)); -$page_style->render('translatelist', $page); +$page_style->render('translate_list', $page); diff --git a/src/mibew/operator/userhistory.php b/src/mibew/operator/userhistory.php index e51c2597..573ffddc 100644 --- a/src/mibew/operator/userhistory.php +++ b/src/mibew/operator/userhistory.php @@ -71,11 +71,19 @@ $page['pagination'] = $pagination['info']; $page['pagination.items'] = $pagination['items']; foreach ($page['pagination.items'] as $key => $item) { - $page['pagination.items'][$key] = Thread::createFromDbInfo($item); + $thread = Thread::createFromDbInfo($item); + $page['pagination.items'][$key] = array( + 'threadId' => to_page($thread->id), + 'userName' => to_page($thread->userName), + 'userAddress' => get_user_addr(to_page($thread->remote)), + 'agentName' => to_page($thread->agentName), + 'chatTime' => ($thread->modified - $thread->created), + 'chatCreated' => $thread->created, + ); } $page['title'] = getlocal("page.analysis.userhistory.title"); $page['menuid'] = "history"; $page_style = new PageStyle(PageStyle::currentStyle()); -$page_style->render('userhistory', $page); +$page_style->render('user_history', $page); diff --git a/src/mibew/operator/users.php b/src/mibew/operator/users.php index 76009a12..699ca8e9 100644 --- a/src/mibew/operator/users.php +++ b/src/mibew/operator/users.php @@ -35,7 +35,7 @@ notify_operator_alive($operator['operatorid'], $status); $_SESSION[SESSION_PREFIX . "operatorgroups"] = get_operator_groups_list($operator['operatorid']); $page = array(); -$page['havemenu'] = isset($_GET['nomenu']) ? "0" : "1"; +$page['havemenu'] = !isset($_GET['nomenu']); $page['showpopup'] = (Settings::get('enablepopupnotification') == '1') ? "1" : "0"; $page['frequency'] = Settings::get('updatefrequency_operator'); $page['istatus'] = $status; @@ -68,4 +68,4 @@ $page = array_merge($page, get_plugins_data('users')); $page = array_merge($page, prepare_menu($operator)); -$page_style->render('pending_users', $page); +$page_style->render('users', $page); diff --git a/src/mibew/styles/pages/default/css/default.css b/src/mibew/styles/pages/default/css/default.css index 06ac7385..b6abf542 100644 --- a/src/mibew/styles/pages/default/css/default.css +++ b/src/mibew/styles/pages/default/css/default.css @@ -800,10 +800,13 @@ table.awaiting .no-threads, table.awaiting .no-visitors { } .dashitem { - width:33%; - margin: 0px 2em 5em 0px; - padding: 5px 2em 5em; + width:32%; vertical-align: top; + display: inline-block; +} + +.dashitem-content { + padding: 5px 2em 5em; } .dashitem:hover { diff --git a/src/mibew/styles/pages/default/css/default_ie.css b/src/mibew/styles/pages/default/css/default_ie.css index 2f6377c0..a9e406f9 100644 --- a/src/mibew/styles/pages/default/css/default_ie.css +++ b/src/mibew/styles/pages/default/css/default_ie.css @@ -18,3 +18,8 @@ display: inline; zoom: 1; } + +.dashitem { + display: inline; + zoom: 1; +} diff --git a/src/mibew/styles/pages/default/views/.htaccess b/src/mibew/styles/pages/default/templates_src/server_side/.htaccess similarity index 100% rename from src/mibew/styles/pages/default/views/.htaccess rename to src/mibew/styles/pages/default/templates_src/server_side/.htaccess diff --git a/src/mibew/styles/pages/default/templates_src/server_side/_errors.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/_errors.handlebars new file mode 100644 index 00000000..7e2835db --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/_errors.handlebars @@ -0,0 +1,13 @@ +{{#if errors}} +
+ + {{l10n "errors.header"}} + {{#each errors}} + {{l10n "errors.prefix"}} + {{{this}}} + {{l10n "errors.suffix"}} + {{/each}} + {{l10n "errors.footer"}} +
+
+{{/if}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/_locales.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/_locales.handlebars new file mode 100644 index 00000000..cd5893f3 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/_locales.handlebars @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/_menu.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/_menu.handlebars new file mode 100644 index 00000000..d44c4bb1 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/_menu.handlebars @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/_tabs.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/_tabs.handlebars new file mode 100644 index 00000000..bbdf2546 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/_tabs.handlebars @@ -0,0 +1,11 @@ +{{#if tabs}} + +{{/if}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/avatar.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/avatar.handlebars new file mode 100644 index 00000000..049ed6a6 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/avatar.handlebars @@ -0,0 +1,84 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "page_avatar.intro"}} + +
+
+ + {{> _errors}} + +
+ {{csrfTokenInput}} + + +
+ {{> _tabs}} +
+
+
+
+ +
+

{{currentop}}‎

+ +
+ + {{#if avatar}} +
+
{{l10n "form.field.avatar.current"}}
+
+ cannot load avatar
+ {{#if canmodify}} + + {{l10n "page_agent.clear_avatar"}} + + {{/if}} +
+
— {{l10n "form.field.avatar.current.description"}}
+
+
+ {{else}} + {{#unless canmodify}} +
+
+ No avatar +
+
+ {{/unless}} + {{/if}} + + {{#if canmodify}} +
+ +
+ +
+ +
+
+ +
+ +
+ {{/if}} +
+ +
+ +
+
+
+ +
+
+ +
+ {{l10n "common.asterisk_explanation"}} +
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/ban.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/ban.handlebars new file mode 100644 index 00000000..3e0fc337 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/ban.handlebars @@ -0,0 +1,85 @@ +{{#extends "layout"}} + {{#override "content"}} + {{#if saved}} + {{l10n "page_ban.sent" address}} + + + {{else}} + {{l10n "page_ban.intro"}} + +
+
+ + {{> _errors}} + + {{#if thread}} + {{l10n "page_ban.thread" thread}}
+
+ {{/if}} + +
+ {{csrfTokenInput}} + + + {{#if threadid}} + + {{/if}} + +
+
+
+
+ +
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+
+ +
+
+
+
+ +
+ {{l10n "common.asterisk_explanation"}} +
+ +
+ {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/blocked_visitors.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/blocked_visitors.handlebars new file mode 100644 index 00000000..d7c68812 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/blocked_visitors.handlebars @@ -0,0 +1,81 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "header"}} + + + {{/override}} + + {{#override "content"}} + {{l10n "page_ban.intro"}} + +
+
+ + {{> _errors}} + +
+ + {{l10n "page_bans.add"}} +
+
+ + + + + + + + + + + + + {{#each [pagination.items]}} + + + + + + + + + + {{else}} + + + + {{/each}} + +
{{l10n "form.field.address"}}{{l10n "page_bans.to"}}{{l10n "form.field.ban_comment"}}{{l10n "page_bans.edit"}}
+ + {{address}} + + {{formatDate till}}{{cutString comment "30"}} + + {{l10n "remove.item"}} + , + {{l10n "edit.item"}} +
+ {{l10n "tag.pagination.no_items.elements"}} +
+ + {{#if pagination}} +
+ {{generatePagination stylePath pagination}} + {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/canned.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/canned.handlebars new file mode 100644 index 00000000..ea1206ac --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/canned.handlebars @@ -0,0 +1,93 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "canned.descr"}} + +
+
+ + {{> _errors}} + +
+
+
+
+
+ +
+
+ {{l10n "canned.locale"}}
+ +
+ +
+ {{l10n "canned.group"}}
+ +
+ +
+
+ +
+
+
+
+
+
+ +
+ + + {{l10n "canned.add"}} + +
+
+ + + + + + + + + + + + {{#each [pagination.items]}} + + + + + + {{else}} + + + + {{/each}} + +
{{l10n "canned.message_title"}}{{l10n "cannededit.message"}}{{l10n "canned.actions"}}
+ {{#replace "\n" ""}}{{vctitle}}{{/replace}} + + {{#replace "\n" "
"}}{{vcvalue}}{{/replace}} +
+ {{l10n "canned.actions.edit"}}, + {{l10n "canned.actions.del"}} +
{{l10n "tag.pagination.no_items.elements"}}
+ + {{#if pagination}} +
+ {{generatePagination stylePath pagination}} + {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/canned_edit.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/canned_edit.handlebars new file mode 100644 index 00000000..136d7bfd --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/canned_edit.handlebars @@ -0,0 +1,67 @@ +{{#extends "layout"}} + {{#override "content"}} + {{#if saved}} + {{l10n "cannededit.done"}} + + {{else}} + {{#if key}} + {{l10n "cannededit.descr"}} + {{else}} + {{l10n "cannednew.descr"}} + {{/if}} + +
+
+ + {{> _errors}} + +
+ {{csrfTokenInput}} + + + {{#unless key}} + + + {{/unless}} + +
+
+
+
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+ +
+
+
+
+
+ + {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/confirm.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/confirm.handlebars new file mode 100644 index 00000000..c686a0a2 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/confirm.handlebars @@ -0,0 +1,67 @@ +{{#extends "layout"}} + {{#override "content"}} +
+
+
+
+
+ +
+ {{l10n "confirm.take.message" user agent}} + +
+
+
+ +
+ + + + + + +
+ + + + + + {{l10n "confirm.take.yes"}} + + + + + +
+ + + + + + + +
+ + + + + + {{l10n "confirm.take.no"}} + + + + + +
+ +
+
+
+ +
+
+
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/features.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/features.handlebars new file mode 100644 index 00000000..794e56ce --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/features.handlebars @@ -0,0 +1,188 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "header"}} + + + {{/override}} + + {{#override "content"}} + {{l10n "page_settings.intro"}} + +
+
+ + {{> _errors}} + + {{#if stored}} +
{{l10n "features.saved"}}
+ {{/if}} + +
+ {{csrfTokenInput}} + + +
+ {{> _tabs}} + +
+
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ + {{#if canmodify}} +
+ +
+ {{/if}} +
+ +
+ +
+
+
+ +
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/get_code.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/get_code.handlebars new file mode 100644 index 00000000..8accbab4 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/get_code.handlebars @@ -0,0 +1,144 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "page.gen_button.intro"}} + +
+
+ + {{> _errors}} + +
+
+
+
+
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+
+
+ + {{#unless operator_code}} +
+ +
+ +
+
+ + {{#if enabletracking}} +
+ +
+ +
+
+ {{/if}} + +
+ {{/unless}} + +
+ +
+ +
+
+
+ +
+ +
+ +
+
+ + {{#if formhostname}} +
+ +
+ +
+
+ {{/if}} + +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+
{{l10n "page.gen_button.sample"}}
+
+ {{{buttonCode}}} +
+
+
+
+ +
+
+
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/group.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/group.handlebars new file mode 100644 index 00000000..443e5b6d --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/group.handlebars @@ -0,0 +1,164 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "header"}} + + + {{/override}} + + {{#override "content"}} + {{#if grid}} + {{l10n "page.group.intro"}} + {{else}} + {{l10n "page.group.create_new"}} + {{/if}} + +
+
+ + {{> _errors}} + + {{#if stored}} +
{{l10n "data.saved"}}
+ {{/if}} + +
+ {{csrfTokenInput}} + + +
+ {{> _tabs}} + +
+
+
+
+ +
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+
{{l10n "page.group.extrafields.title"}}
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+ +
+ {{l10n "common.asterisk_explanation"}} +
+ +
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/group_members.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/group_members.handlebars new file mode 100644 index 00000000..fcb88fa4 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/group_members.handlebars @@ -0,0 +1,52 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "page.groupmembers.intro"}} + +
+
+ + {{> _errors}} + + {{#if stored}} +
{{l10n "data.saved"}}
+ {{/if}} + +
+ {{csrfTokenInput}} + + +
+ {{> _tabs}} + +
+
+
+
+ +
+

{{currentgroup}}

+ + {{#each operators}} +
+
+ + +
+
+ {{/each}} + +
+ +
+
+ +
+
+
+
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/groups.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/groups.handlebars new file mode 100644 index 00000000..7b85df82 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/groups.handlebars @@ -0,0 +1,142 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "header"}} + + + {{/override}} + + {{#override "content"}} + {{l10n "page.groups.intro"}} + +
+
+ + {{> _errors}} + +
+
+
+
+
+ +
+
+ {{l10n "page.groups.sort"}}
+ +
+ +
+ {{l10n "page.groups.sortdirection"}}
+ +
+ +
+
+ +
+
+
+
+
+
+ + {{#if canmodify}} +
+ + + {{l10n "page.groups.new"}} + +
+
+ {{/if}} + + + + + + + + + + {{#if canmodify}} + + {{/if}} + + + + + {{#each groups}} + + + + + + + + + + + + {{#if ../canmodify}} + + {{/if}} + + {{else}} + + + + {{/each}} + +
{{l10n "form.field.groupname"}}{{l10n "form.field.groupdesc"}}{{l10n "page_agents.status"}}{{l10n "page.group.membersnum"}}{{l10n "page.groups.weight"}}
+ + {{vclocalname}} + + + {{#if vclocaldescription}} + {{vclocaldescription}} + {{else}} + <none> + {{/if}} + + {{#ifAny isOnline isAway}} + {{#if isOnline}} + {{l10n "page.groups.isonline"}} + {{else}} + {{l10n "page.groups.isaway"}} + {{/if}} + {{else}} + {{formatDate lastTimeOnline}} + {{/ifAny}} + + + {{inumofagents}} + + + {{iweight}} + + + {{l10n "remove.item"}} + +
{{l10n "tag.pagination.no_items.elements"}}
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/history.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/history.handlebars new file mode 100644 index 00000000..ce93de91 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/history.handlebars @@ -0,0 +1,104 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "page_search.intro"}} + +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+ +

+ +
+
+
+
+
+ +
+
+
+
+
+
+ + + + + + + + + + + + + + + {{#each [pagination.items]}} + + + + + + + + {{else}} + + + + {{/each}} + +
{{l10n "page.analysis.search.head_name"}}{{l10n "page.analysis.search.head_host"}}{{l10n "page.analysis.search.head_operator"}}{{l10n "page.analysis.search.head_messages"}}{{l10n "page.analysis.search.head_time"}}
+ {{userName}} + + {{{userAddress}}} + + {{#if agentName}} + {{agentName}} + {{else}} + {{#if groupName}} + - {{groupName}} - + {{/if}} + {{/if}} + + {{messageCount}} + + {{formatDateDiff chatTime}}, {{formatDate chatCreated}} +
+ {{l10n "tag.pagination.no_items"}} +
+ + {{#if pagination}} +
+ {{generatePagination stylePath pagination}} + {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/index.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/index.handlebars new file mode 100644 index 00000000..18f70536 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/index.handlebars @@ -0,0 +1,186 @@ +{{#extends "layout"}} + {{#override "header"}} + {{#if localeLinks}} + + + {{/if}} + {{/override}} + + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} +
+ {{#if needChangePassword}} +
{{l10n "error.no_password"}} {{l10n "error.no_password.visit_profile" profilePage}}
+
+ {{else}} + {{#if needUpdate}} +
{{l10n "install.updatedb" updateWizard}}
+
+ {{else}} + {{#if newFeatures}} +
{{l10n "install.newfeatures" featuresPage mibewVersion}}
+
+ {{/if}} + {{/if}} + {{/if}} + +
+
+
+ + + {{l10n "topMenu.users"}} + + {{l10n "page_client.pending_users"}} +
+
+ +
+
+ + + {{l10n "page_analysis.search.title"}} + + {{l10n "content.history"}} +
+
+ + {{#if showstat}} +
+
+ + + {{l10n "statistics.title"}} + + {{l10n "statistics.description"}} +
+
+ {{/if}} + + {{#if showban}} +
+
+ + + {{l10n "menu.blocked"}} + + {{l10n "content.blocked"}} +
+
+ {{/if}} + +
+
+ + + {{l10n "menu.canned"}} + + {{l10n "canned.descr"}} +
+
+ + {{#if showadmin}} +
+
+ + + {{l10n "leftMenu.client_gen_button"}} + + {{l10n "admin.content.client_gen_button"}} +
+
+ +
+
+ + + {{l10n "leftMenu.client_agents"}} + + {{l10n "admin.content.client_agents"}} +
+
+ +
+
+ + + {{l10n "menu.groups"}} + + {{l10n "menu.groups.content"}} +
+
+ +
+
+ + + {{l10n "leftMenu.client_settings"}} + + {{l10n "admin.content.client_settings"}} +
+
+ {{/if}} + + {{#if currentopid}} +
+
+ + + {{l10n "menu.profile"}} + + {{l10n "menu.profile.content"}} +
+
+ {{/if}} + + {{#if localeLinks}} +
+
+ + + {{l10n "menu.locale"}} + + {{l10n "menu.locale.content"}} +
+
+ {{/if}} + + {{#if showadmin}} +
+
+ + + {{l10n "menu.updates"}} + + {{l10n "menu.updates.content"}} +
+
+ {{/if}} + +
+
+ + + {{l10n "topMenu.logoff"}} + + {{l10n "content.logoff"}} +
+
+ +
+ + {{#if localeLinks}} +
+ X +

{{l10n "lang.choose"}}

+ +
+
+ {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/install_err.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/install_err.handlebars new file mode 100644 index 00000000..d7a3abf1 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/install_err.handlebars @@ -0,0 +1,7 @@ +{{#extends "layout"}} + {{#override "content"}} + {{> _errors}} + + {{l10n "install.err.back"}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/install_index.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/install_index.handlebars new file mode 100644 index 00000000..e885a4be --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/install_index.handlebars @@ -0,0 +1,76 @@ +{{#extends "layout"}} + {{#if localeLinks}} + {{#override "menu"}}{{> _locales}}{{/override}} + {{/if}} + + {{#override "header"}} + {{#if soundcheck}} + + + + + + + + + + + + + + {{/if}} + {{/override}} + + {{#override "content"}} + {{l10n "install.message"}} + +
+
+ + {{> _errors}} + + {{#if done}} +
+
+
+
+
+ +
+ {{l10n "install.done"}} + +
    + {{#each done}} +
  • {{{this}}}
  • + {{/each}} +
+ + {{#if nextstep}} +
+
+ + {{l10n "install.next"}} + +
    +
  • + {{#if nextnotice}} + {{nextnotice}}

    + {{/if}} + + {{nextstep}} +
  • +
+ {{/if}} +
+ +
+
+
+
+
+ {{/if}} + +
+ {{l10n "install.license"}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/invitation_themes.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/invitation_themes.handlebars new file mode 100644 index 00000000..3a392ac0 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/invitation_themes.handlebars @@ -0,0 +1,57 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "header"}} + + {{/override}} + + {{#override "content"}} + {{l10n "page.preview.intro"}} + +
+
+ +
+
+ {{> _tabs}} + +
+
+
+
+ +
+
+
+ +
+ +
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+ × +
+

{{operatorName}}

+
{{l10n "invitation.message"}}
+
{{l10n "invitation.accept.caption"}}
+
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/layout.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/layout.handlebars new file mode 100644 index 00000000..065f597f --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/layout.handlebars @@ -0,0 +1,65 @@ + + + + + + + {{#block "header"}}{{/block}} + + {{title}} - {{l10n "app.title"}} + + + + + + + +
+ + +
+ +
+ + {{#ifOverridden "menu"}} +
+ {{else}} +
+ {{/ifOverridden}} + {{#block "content"}}{{/block}} +
+
+ + {{#block "menu"}}{{/block}} + +
 
+ +
 
+
+ + + + \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/license.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/license.handlebars new file mode 100644 index 00000000..24b3112d --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/license.handlebars @@ -0,0 +1,21 @@ +{{#extends "layout"}} + {{#override "content"}} +

Copyright 2005-2013 the original author or authors.

+ +
+ +

Licensed under the Apache License, Version 2.0 (the "License").

+ +
+ +

You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

+ +
+ +

Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License.

+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/login.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/login.handlebars new file mode 100644 index 00000000..4ab94836 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/login.handlebars @@ -0,0 +1,66 @@ +{{#extends "layout"}} + {{#if localeLinks}} + {{#override "menu"}}{{> _locales}}{{/override}} + {{/if}} + + {{#override "content"}} +
+

{{l10n "app.descr"}}

+
+ +
+
+ +
+

{{l10n "page_login.title"}}

+
+ +
+ {{l10n "page_login.intro"}} + +
+
+ + {{> _errors}} + +
+
{{l10n "page_login.login"}}
+
+ +
+
+
+ +
+
{{l10n "page_login.password"}}
+
+ +
+
+
+ +
+
 
+
+ +
+
+
+ + + +
+ +
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/operator.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/operator.handlebars new file mode 100644 index 00000000..08652125 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/operator.handlebars @@ -0,0 +1,129 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{#if opid}} + {{l10n "page_agent.intro"}} + {{else}} + {{l10n "page_agent.create_new"}} + {{/if}} + +
+
+ + {{> _errors}} + + {{#if needChangePassword}} +
{{l10n "error.no_password"}}
+
+ {{else}} + {{#if stored}} +
{{l10n "data.saved"}}
+ {{/if}} + {{/if}} + + {{#ifAny opid canmodify}} +
+ {{csrfTokenInput}} + + +
+ {{#unless needChangePassword}}{{> _tabs}}{{/unless}} + +
+
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ + {{#if canmodify}} +
+ +
+ {{/if}} +
+
+ +
+
+
+
+
+ +
+ {{l10n "common.asterisk_explanation"}} +
+ +
+ {{/ifAny}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/operator_groups.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/operator_groups.handlebars new file mode 100644 index 00000000..3332717a --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/operator_groups.handlebars @@ -0,0 +1,58 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "operator.groups.intro"}} + +
+
+ + {{> _errors}} + + {{#if stored}} +
{{l10n "data.saved"}}
+ {{/if}} + +
+ {{csrfTokenInput}} + + +
+ {{> _tabs}} +
+
+
+
+ +
+

{{currentop}}‎

+ + {{#each groups}} +
+ +
+ +
+ +
+
+ {{/each}} + + {{#if canmodify}} +
+ +
+ {{/if}} +
+ +
+
+
+ +
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/operators.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/operators.handlebars new file mode 100644 index 00000000..2ba0bdcf --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/operators.handlebars @@ -0,0 +1,131 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "header"}} + + + {{/override}} + + {{#override "content"}} + {{l10n "page_agents.intro"}} + +
+
+ + {{> _errors}} + +
+
+
+
+
+ +
+
+ {{l10n "page_agents.sort"}}
+ +
+ +
+ {{l10n "page_agents.sortdirection"}}
+ +
+ +
+
+ +
+
+
+
+
+
+ + {{#if canmodify}} + +
+ {{/if}} + + + + + + + + {{#if canmodify}} + + + {{/if}} + + + + + {{#each allowedAgents}} + + + + + + + + {{#if ../canmodify}} + + + + {{/if}} + + {{/each}} + +
{{l10n "page_agents.login"}}{{l10n "page_agents.agent_name"}}{{l10n "page_agents.status"}}
+ + {{vclogin}} + + + {{vclocalename}} / {{vccommonname}} + + {{#ifAny isAvailable isAway}} + {{#if isAvailable}} + {{l10n "page_agents.isonline"}} + {{else}} + {{l10n "page_agents.isaway"}} + {{/if}} + {{else}} + {{formatDate lastTimeOnline}} + {{/ifAny}} + + {{#if isDisabled}} + {{l10n "page_agents.enable.agent"}} + {{else}} + {{l10n "page_agents.disable.agent"}} + {{/if}} + + + {{l10n "remove.item"}} + +
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/page_themes.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/page_themes.handlebars new file mode 100644 index 00000000..e7f4bf2a --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/page_themes.handlebars @@ -0,0 +1,48 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "page.preview.intro"}} +
+
+ +
+
+ {{> _tabs}} + +
+
+
+
+ +
+
+
+ +
+ +
+
+ {{#each screenshotsList}} +
+
{{description}}
+
+ {{name}} +
+
+ {{/each}} +
+
+ +
+
+
+
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/performance.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/performance.handlebars new file mode 100644 index 00000000..69fd9f12 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/performance.handlebars @@ -0,0 +1,140 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "page_settings.intro"}} + +
+
+ + {{> _errors}} + + {{#if stored}} +
{{l10n "settings.saved"}}
+ {{/if}} + +
+ {{csrfTokenInput}} + +
+ {{> _tabs}} + +
+
+
+
+ +
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ + {{#if enabletracking}} +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ {{/if}} + +
+ +
+ +
+
+ +
+
+
+
+
+ +
+ {{l10n "common.asterisk_explanation"}} +
+ +
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/permissions.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/permissions.handlebars new file mode 100644 index 00000000..b2f83352 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/permissions.handlebars @@ -0,0 +1,53 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "permissions.intro"}} + +
+
+ + {{> _errors}} + + {{#if stored}} +
{{l10n "data.saved"}}
+ {{/if}} + +
+ {{csrfTokenInput}} + + +
+ {{> _tabs}} + +
+
+
+
+ +
+

{{currentop}}‎

+ + {{#each permissionsList}} + +
+ {{/each}} + + {{#if canmodify}} +
+ +
+ {{/if}} +
+ +
+
+
+
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/resetpwd.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/resetpwd.handlebars new file mode 100644 index 00000000..0bfe1102 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/resetpwd.handlebars @@ -0,0 +1,90 @@ +{{#extends "layout"}} + {{#if localeLinks}} + {{#override "menu"}}{{> _locales}}{{/override}} + {{/if}} + + {{#override "content"}} + {{#if isdone}} +
+
+

{{l10n "resetpwd.changed.title"}}

+
+ +
+ {{l10n "resetpwd.changed"}} +
+
+ {{l10n "resetpwd.login"}} +
+
+ {{else}} +
+ + + +
+ +
+

{{l10n "resetpwd.title"}}

+
+ +
+ {{l10n "resetpwd.intro"}} + +
+
+ + {{> _errors}} + + {{#if showform}} +
+
{{l10n "form.field.password"}}
+
+ +
+
+
+ +
+
{{l10n "form.field.password_confirm"}}
+
+ +
+
+
+ + + {{else}} + {{l10n "restore.back_to_login"}} + {{/if}} +
+ +
+
+ {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/restore.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/restore.handlebars new file mode 100644 index 00000000..136bad45 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/restore.handlebars @@ -0,0 +1,73 @@ +{{#extends "layout"}} + {{#if localeLinks}} + {{#override "menu"}}{{> _locales}}{{/override}} + {{/if}} + + {{#override "content"}} + {{#if isdone}} +
+
+

{{l10n "restore.sent.title"}}

+
+ +
+ {{l10n "restore.sent"}} +
+
+ {{l10n "restore.back_to_login"}} +
+
+ {{else}} +
+
+ +
+

{{l10n "restore.title"}}

+
+ +
+ {{l10n "restore.intro"}}

+ + {{> _errors}} + +
+
{{l10n "restore.emailorlogin"}}
+
+ +
+
+
+ + + +
+ +
+
+ {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/settings.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/settings.handlebars new file mode 100644 index 00000000..8a380937 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/settings.handlebars @@ -0,0 +1,180 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "page_settings.intro"}} + +
+
+ + {{> _errors}} + + {{#if stored}} +
{{l10n "settings.saved"}}
+ {{/if}} + +
+ {{csrfTokenInput}} + +
+ {{> _tabs}} + +
+
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ + {{#if enabletracking}} +
+ +
+ +
+ +
+
+ {{/if}} + +
+
{{l10n "settings.sendmessagekey"}}
+
+ + +
+
+ +
+ +
+ +
+ +
+ +
+
+
+
+
+ +
+ {{l10n "common.asterisk_explanation"}} +
+ +
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/statistics.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/statistics.handlebars new file mode 100644 index 00000000..9a2bdc2c --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/statistics.handlebars @@ -0,0 +1,233 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{{pageDescription}}} + +
+
+ + {{> _errors}} + +
+ + + {{> _tabs}} + +
+
+
+
+ +
+
+
+
{{l10n "statistics.dates"}}
+
+
+ + + + +
+
+ + + + +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ + {{#if showresults}} + {{#if showbydate}} +
+
+ +
+ {{l10n "report.bydate.title"}} +
+ + + + + + + + + + + + {{#if show_invitations_info}} + + + + + {{/if}} + + + + {{#if reportByDate}} + {{#each reportByDate}} + + + + + + + + + {{#if ../show_invitations_info}} + + + + + {{/if}} + + {{/each}} + + + + + + + + + {{#if show_invitations_info}} + + + + + {{/if}} + + {{else}} + + + + {{/if}} + +
{{l10n "report.bydate.1"}}{{l10n "report.bydate.2"}}{{l10n "report.bydate.7"}}{{l10n "report.bydate.3"}}{{l10n "report.bydate.4"}}{{l10n "report.bydate.5"}}{{l10n "report.bydate.6"}}{{l10n "report.bydate.8"}}{{l10n "report.bydate.9"}}{{l10n "report.bydate.10"}}{{l10n "report.bydate.11"}}
{{date}}{{threads}}{{missedthreads}}{{agents}}{{users}}{{avgwaitingtime}}{{avgchattime}}{{sentinvitations}}{{acceptedinvitations}}{{rejectedinvitations}}{{ignoredinvitations}}
{{l10n "report.total"}}{{reportByDateTotal.threads}}{{reportByDateTotal.missedthreads}}{{reportByDateTotal.agents}}{{reportByDateTotal.users}}{{reportByDateTotal.avgwaitingtime}}{{reportByDateTotal.avgchattime}}{{reportByDateTotal.sentinvitations}}{{reportByDateTotal.acceptedinvitations}}{{reportByDateTotal.rejectedinvitations}}{{reportByDateTotal.ignoredinvitations}}
+ {{l10n "report.no_items"}} +
+ {{/if}} + + {{#if showbyagent}} +
+
+ +
{{l10n "report.byoperator.title"}}
+ + + + + + + + {{#if show_invitations_info}} + + + + + {{/if}} + + + + + {{#each reportByAgent}} + + + + + + {{#if ../show_invitations_info}} + + + + + {{/if}} + + {{else}} + + + + {{/each}} + +
{{l10n "report.byoperator.1"}}{{l10n "report.byoperator.2"}}{{l10n "report.byoperator.3"}}{{l10n "report.byoperator.4"}}{{l10n "report.byoperator.5"}}{{l10n "report.byoperator.6"}}{{l10n "report.byoperator.7"}}{{l10n "report.byoperator.8"}}
{{name}}{{threads}}{{msgs}}{{avglen}}{{sentinvitations}}{{acceptedinvitations}}{{rejectedinvitations}}{{ignoredinvitations}}
+ {{l10n "report.no_items"}} +
+ {{/if}} + + {{#if showbypage}} +
+
+ +
{{l10n "report.bypage.title"}}
+ + + + + + + {{#if show_invitations_info}} + + + + + {{/if}} + + + + + {{#each reportByPage}} + + + + + {{#if ../show_invitations_info}} + + + + + {{/if}} + + {{else}} + + + + {{/each}} + +
{{l10n "report.bypage.1"}}{{l10n "report.bypage.2"}}{{l10n "report.bypage.3"}}{{l10n "report.bypage.4"}}{{l10n "report.bypage.5"}}{{l10n "report.bypage.6"}}{{l10n "report.bypage.7"}}
{{address}}{{visittimes}}{{chattimes}}{{sentinvitations}}{{acceptedinvitations}}{{rejectedinvitations}}{{ignoredinvitations}}
+ {{l10n "report.no_items"}} +
+ {{/if}} + {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/themes.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/themes.handlebars new file mode 100644 index 00000000..da59cd31 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/themes.handlebars @@ -0,0 +1,49 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "page.preview.intro"}} + +
+
+ +
+
+ {{> _tabs}} + +
+
+
+
+ +
+
+
+ +
+ +
+
+ {{#each screenshotsList}} +
+
{{description}}
+
+ {{name}} +
+
+ {{/each}} +
+
+ +
+
+
+
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/thread_log.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/thread_log.handlebars new file mode 100644 index 00000000..5ec8fa3c --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/thread_log.handlebars @@ -0,0 +1,97 @@ +{{#extends "layout"}} + {{#override "header"}} + + + + + + + + + + + + + + + + {{/override}} + + {{#override "content"}} + {{l10n "thread.intro"}} + +

+ +
+
+ +
+ {{l10n "page.analysis.search.head_name"}}: +
+
+ {{threadInfo.userName}} +
+
+ +
+ {{l10n "page.analysis.search.head_host"}}: +
+
+ {{{threadInfo.userAddress}}} +
+
+ +
+ {{l10n "page.analysis.search.head_browser"}}: +
+
+ {{threadInfo.userAgentVersion}} +
+
+ + {{#if threadInfo.groupName}} +
+ {{l10n "page.analysis.search.head_group"}}: +
+
+ {{threadInfo.groupName}} +
+
+ {{/if}} + + {{#if threadInfo.agentName}} +
+ {{l10n "page.analysis.search.head_operator"}}: +
+
+ {{threadInfo.agentName}} +
+
+ {{/if}} + +
+ {{l10n "page.analysis.search.head_time"}}: +
+
+ {{formatDateDiff threadInfo.chatTime}} + ({{formatDate threadInfo.chatStarted}}) +
+
+
+ +
+
+ +
+ + {{l10n "thread.back_to_search"}} + +
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/tracked.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/tracked.handlebars new file mode 100644 index 00000000..3d94c5b3 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/tracked.handlebars @@ -0,0 +1,44 @@ +{{#extends "layout"}} + {{#override "content"}} + {{l10n "tracked.intro"}} + +

+ +
+
+
+ {{l10n "tracked.visitor.came.from"}}: +
+ +
+ {{#if entry}} + {{entry}} + {{else}} + {{l10n "tracked.empty.referrer"}} + {{/if}} +
+
+
+ +
+ + + + + + + + + + {{#each history}} + + + + + {{/each}} + +
{{l10n "tracked.date"}}{{l10n "tracked.link"}}
{{date}}{{link}}
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/translate.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/translate.handlebars new file mode 100644 index 00000000..fb493e98 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/translate.handlebars @@ -0,0 +1,59 @@ +{{#extends "layout"}} + {{#override "content"}} + {{#if saved}} + {{l10n "page.translate.done"}} + + + {{else}} + {{l10n "page.translate.one"}} + +
+
+ + {{> _errors}} + +
+ {{csrfTokenInput}} + + + +
+
+
+
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+ +
+
+
+
+
+ {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/translate_list.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/translate_list.handlebars new file mode 100644 index 00000000..4fa0fd8a --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/translate_list.handlebars @@ -0,0 +1,105 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "content"}} + {{l10n "page.translate.descr"}} + +
+
+ +
+ +
+
+
+
+ +
+
+ {{l10n "translate.direction"}}
+ + => + +
+ +
+ {{l10n "translate.sort"}}
+ +
+ +
+ {{l10n "translate.show"}}
+ +
+ +
+ +
+ +
+
+
+
+
+
+ + + {{#if pagination}} + {{generatePagination stylePath pagination "false"}} + {{/if}} + + + + + + + + {{#each [pagination.items]}} + + + + + + {{else}} + + + + {{/each}} + + +
+ Key + + {{title1}} + + {{title2}} +
+ {{idToPage}} + + {{{l1ToPage}}} + + {{{l2ToPage}}} +
{{l10n "tag.pagination.no_items"}}
+ + {{#if pagination}} +
+ {{generatePagination stylePath pagination}} + {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/updates.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/updates.handlebars new file mode 100644 index 00000000..82ae7520 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/updates.handlebars @@ -0,0 +1,54 @@ +{{#extends "layout"}} + {{#override "menu"}}{{> _menu}}{{/override}} + + {{#override "header"}} + + + + {{/override}} + + {{#override "content"}} + {{l10n "updates.intro"}} + +
+
+ +
+
+
+
+
+ +
+ {{l10n "updates.news"}}
+
+ + {{l10n "updates.current"}}
+
{{version}}
+ +
+ + {{l10n "updates.latest"}} +
+ +
+ + {{l10n "updates.installed_locales"}}
+ {{#each localizations}} + {{this}} + {{/each}} + +

+ + {{l10n "updates.env"}}
+ PHP {{phpVersion}} + +
+ +
+
+
+
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/user_history.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/user_history.handlebars new file mode 100644 index 00000000..61998641 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/user_history.handlebars @@ -0,0 +1,43 @@ +{{#extends "layout"}} + {{#override "content"}} + {{l10n "page.analysis.userhistory.intro"}} + +
+
+ + + + + + + + + + + + + {{#each [pagination.items]}} + + + + + + + {{else}} + + + + {{/each}} + +
{{l10n "page.analysis.search.head_name"}}{{l10n "page.analysis.search.head_host"}}{{l10n "page.analysis.search.head_operator"}}{{l10n "page.analysis.search.head_time"}}
+ {{userName}} + {{{userAddress}}}{{agentName}}{{formatDateDiff chatTime}}, {{formatDate chatCreated}}
+ {{l10n "tag.pagination.no_items"}} +
+ + {{#if pagination}} +
+ {{generatePagination stylePath pagination}} + {{/if}} + {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/templates_src/server_side/users.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/users.handlebars new file mode 100644 index 00000000..b53210c2 --- /dev/null +++ b/src/mibew/styles/pages/default/templates_src/server_side/users.handlebars @@ -0,0 +1,137 @@ +{{#extends "layout"}} + {{#if havemenu}} + {{#override "menu"}}{{> _menu}}{{/override}} + {{/if}} + + {{#override "header"}} + + {{{additional_css}}} + + + + + + + + + + + + + + + + + {{{additional_js}}} + + + + + + + {{/override}} + + {{#override "content"}} +
+ + {{l10n "clients.intro"}} +
+ {{l10n "clients.how_to"}} +
+
+ +
+ + {{#if showvisitors}} +
{{l10n "visitors.title"}}
+ {{l10n "visitors.intro"}} +
+ {{l10n "visitors.how_to"}} +
+
+ {{/if}} + +
+
+ {{/override}} +{{/extends}} \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/agent.php b/src/mibew/styles/pages/default/views/agent.php deleted file mode 100644 index 7a4c81d6..00000000 --- a/src/mibew/styles/pages/default/views/agent.php +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - -
-
- - -
-
- -
- - - - - -
- - -
- -
- -
-
- -
- /> -
- -
-
- -
- -
- /> -
- -
-
- -
- -
- autocomplete="off"/> -
- -
-
- -
- -
- autocomplete="off"/> -
- -
-
- -
- -
- /> -
- -
-
- -
- -
- /> -
- -
-
- -
- -
- /> -
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/agents.php b/src/mibew/styles/pages/default/views/agents.php deleted file mode 100644 index b9c50132..00000000 --- a/src/mibew/styles/pages/default/views/agents.php +++ /dev/null @@ -1,137 +0,0 @@ - - - - - -
-
- - -
- -
- -
-
- -
- -
-
- -
- -
- -
-
-
- - -
- - "> - - -
-
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
- - - - - / - - - - - - - - - - - - - - - - - - -
- - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/avatar.php b/src/mibew/styles/pages/default/views/avatar.php deleted file mode 100644 index a5986f6f..00000000 --- a/src/mibew/styles/pages/default/views/avatar.php +++ /dev/null @@ -1,94 +0,0 @@ - - - -
-
- - -
- - -
- -
- -

- -

- -
- - -
-
- -
-
-
- -
-
- No avatar -
-
- - - -
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
-
- - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/ban.php b/src/mibew/styles/pages/default/views/ban.php deleted file mode 100644 index 6e0a44d0..00000000 --- a/src/mibew/styles/pages/default/views/ban.php +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - -
-
- - - - -
-
- - -
- - - - - -
- -
-
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
- -
- -
- - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/blocked_visitors.php b/src/mibew/styles/pages/default/views/blocked_visitors.php deleted file mode 100644 index afd739a0..00000000 --- a/src/mibew/styles/pages/default/views/blocked_visitors.php +++ /dev/null @@ -1,117 +0,0 @@ - - - - - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
- - - - - - - 30 ) { - echo htmlspecialchars(substr(to_page($b['comment']),0,30)); - } else { - echo htmlspecialchars(to_page($b['comment'])); - } -?> - - - , - -
- -
-"; - echo generate_pagination($page['stylepath'], $page['pagination']); -} -?> - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/canned.php b/src/mibew/styles/pages/default/views/canned.php deleted file mode 100644 index 00110a21..00000000 --- a/src/mibew/styles/pages/default/views/canned.php +++ /dev/null @@ -1,118 +0,0 @@ - - - -
-
- - -
- -
- -
-
- -
- -
-
- -
- - -
- -
-
-
- - -
- - - - - - - - - - - - - - - - - - -
- - - - - -
- - - ",htmlspecialchars(to_page($localstr['vcvalue']))) ?> - - , - &group="> -
- -
-"; - echo generate_pagination($page['stylepath'], $page['pagination']); -} -?> - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/cannededit.php b/src/mibew/styles/pages/default/views/cannededit.php deleted file mode 100644 index a3762c2d..00000000 --- a/src/mibew/styles/pages/default/views/cannededit.php +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - -
-
- - -
- - - - - - -
- -
-
- -
- -
-
- -
- -
- -
-
- -
- -
-
- -
-
- - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/confirm.php b/src/mibew/styles/pages/default/views/confirm.php deleted file mode 100644 index a9574e6e..00000000 --- a/src/mibew/styles/pages/default/views/confirm.php +++ /dev/null @@ -1,56 +0,0 @@ - - -
-
- -

-
- -
- - - - -
- - -
- - - - - -
- - -
- -
-
- -
-
- - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/features.php b/src/mibew/styles/pages/default/views/features.php deleted file mode 100644 index 708d7b1b..00000000 --- a/src/mibew/styles/pages/default/views/features.php +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - -
-
- - -
- - -
- - -
- -
- -
-
- -
- /> -
- -
-
- -
- -
- /> -
- -
- -
- -
- /> -
- -
-
-
- -
- -
- /> -
- -
- -
- -
- /> -
- -
-
-
- -
- -
- /> -
- -
-
- -
- -
- /> -
- -
-
- -
- -
- /> -
- -
-
- -
- -
- /> -
- -
- -
- -
- /> -
- -
-
- -
- -
- /> -
- -
-
- -
- -
- /> -
- -
-
-
- -
- -
- /> -
- -
-
- -
- -
- /> -
- -
-
- -
- -
- /> -
- -
-
- - -
- -
- -
- -
-
-
- - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/gen_button.php b/src/mibew/styles/pages/default/views/gen_button.php deleted file mode 100644 index 33d47990..00000000 --- a/src/mibew/styles/pages/default/views/gen_button.php +++ /dev/null @@ -1,133 +0,0 @@ - - - -
-
- - -
-
- -
-
- -
- -
-
- -
- -
- -
-
-
- -
- -
- -
-
-
- - -
- -
- -
-
- - -
- -
- -
-
- -
- - -
- -
- -
-
-
- -
- -
- onchange="this.form.submit();"/> -
-
- - - -
- -
- onchange="this.form.submit();"/> -
-
- -
- -
- -
- onchange="this.form.submit();"/> -
-
- -
- -
- -
- -
-
- -
-
-
- -
-
-
- -
-
- - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/group.php b/src/mibew/styles/pages/default/views/group.php deleted file mode 100644 index c748f3aa..00000000 --- a/src/mibew/styles/pages/default/views/group.php +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - - - -
-
- - -
- - -
- - -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- -
-
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- -
-
- -
- -
- -
- -
-
-
- -
- -
-
- -
-
- -
- -
- -
- - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/groupmembers.php b/src/mibew/styles/pages/default/views/groupmembers.php deleted file mode 100644 index 9d89d5bb..00000000 --- a/src/mibew/styles/pages/default/views/groupmembers.php +++ /dev/null @@ -1,65 +0,0 @@ - - - -
-
- - -
- - -
- - -
- -
- -

- -

- -
-
- /> - -
-
- - -
- -
- -
-
-
- - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/groups.php b/src/mibew/styles/pages/default/views/groups.php deleted file mode 100644 index 807d1a87..00000000 --- a/src/mibew/styles/pages/default/views/groups.php +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -
-
- - -
- -
- -
-
- -
- -
-
- -
- -
- -
-
-
- - -
- - "> - - -
-
- - - - - - - - - - 0) { - foreach( $page['groups'] as $grp ) { ?> - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/inc_errors.php b/src/mibew/styles/pages/default/views/inc_errors.php deleted file mode 100644 index 14834235..00000000 --- a/src/mibew/styles/pages/default/views/inc_errors.php +++ /dev/null @@ -1,32 +0,0 @@ - 0 ) { ?> -
- - -
-
- \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/inc_locales.php b/src/mibew/styles/pages/default/views/inc_locales.php deleted file mode 100644 index 4f333d18..00000000 --- a/src/mibew/styles/pages/default/views/inc_locales.php +++ /dev/null @@ -1,36 +0,0 @@ - -
  • -

    -
      - $title) { ?> - > - -
    -
  • - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/inc_main.php b/src/mibew/styles/pages/default/views/inc_main.php deleted file mode 100644 index d00cc15f..00000000 --- a/src/mibew/styles/pages/default/views/inc_main.php +++ /dev/null @@ -1,90 +0,0 @@ - - - dir="rtl"> - - - - - - <?php echo $page['title'] ?> - <?php echo getlocal("app.title") ?> - - - - - - style="min-width: 400px;"> -
    " class="l"> - - -
    - -
    - -
    - -
    - - -
    -
    - - - - -
     
    - -
     
    -
    - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/inc_menu.php b/src/mibew/styles/pages/default/views/inc_menu.php deleted file mode 100644 index a40a2e5b..00000000 --- a/src/mibew/styles/pages/default/views/inc_menu.php +++ /dev/null @@ -1,73 +0,0 @@ - -
  • - -

    -
  • - -
  • -

    - -
  • -
  • -

    - -
  • -
  • -

    - -
  • - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/inc_tabbar.php b/src/mibew/styles/pages/default/views/inc_tabbar.php deleted file mode 100644 index 513868b6..00000000 --- a/src/mibew/styles/pages/default/views/inc_tabbar.php +++ /dev/null @@ -1,30 +0,0 @@ - -
      - - $v) { if($v) { ?> -
    • - -
    • -
    - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/install_err.php b/src/mibew/styles/pages/default/views/install_err.php deleted file mode 100644 index e988e962..00000000 --- a/src/mibew/styles/pages/default/views/install_err.php +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/install_index.php b/src/mibew/styles/pages/default/views/install_index.php deleted file mode 100644 index e508a065..00000000 --- a/src/mibew/styles/pages/default/views/install_index.php +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    -
    - -
      - -
    • - -
    - -

    - -
      -
    • -

      - -
    • -
    - -
    -
    - - -
    - - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/invitation_themes.php b/src/mibew/styles/pages/default/views/invitation_themes.php deleted file mode 100644 index eba372ae..00000000 --- a/src/mibew/styles/pages/default/views/invitation_themes.php +++ /dev/null @@ -1,68 +0,0 @@ - - - - - -
    -
    - -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    -
    -
    - -
    -
    -
    - × -
    -

    -
    -
    -
    -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/license.php b/src/mibew/styles/pages/default/views/license.php deleted file mode 100644 index a1b0b64b..00000000 --- a/src/mibew/styles/pages/default/views/license.php +++ /dev/null @@ -1,43 +0,0 @@ - - -

    Copyright 2005-2013 the original author or authors.

    - -
    - -

    Licensed under the Apache License, Version 2.0 (the "License").

    - -
    - -

    You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

    - -
    - -

    Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License.

    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/login.php b/src/mibew/styles/pages/default/views/login.php deleted file mode 100644 index ee03b569..00000000 --- a/src/mibew/styles/pages/default/views/login.php +++ /dev/null @@ -1,87 +0,0 @@ - - -
    -

    -
    - -
    -
    - -
    -

    -
    - -
    - -

    - - - -
    -
    -
    - -
    -
    -
    - -
    -
    -
    - -
    -
    -
    - -
    -
     
    -
    - -
    -
    -
    - -
    - - - -
    - -
    - -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/menu.php b/src/mibew/styles/pages/default/views/menu.php deleted file mode 100644 index 3cc42039..00000000 --- a/src/mibew/styles/pages/default/views/menu.php +++ /dev/null @@ -1,189 +0,0 @@ - - - -"; } -} - -function tpl_content($page) { -?> - -
    - - -
    -
    - -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '> - - - - - - - - - - - - - - - - - -
    - - -
    - X -

    -

    -
      - $title) { ?> - > - -
    -
    -
    - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/operator_groups.php b/src/mibew/styles/pages/default/views/operator_groups.php deleted file mode 100644 index f82f5739..00000000 --- a/src/mibew/styles/pages/default/views/operator_groups.php +++ /dev/null @@ -1,68 +0,0 @@ - - - -
    -
    - - -
    - - -
    - - -
    - -
    - -

    - -

    - -
    - -
    - /> -
    - -
    -
    - - - -
    - -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/page_themes.php b/src/mibew/styles/pages/default/views/page_themes.php deleted file mode 100644 index af5f67f0..00000000 --- a/src/mibew/styles/pages/default/views/page_themes.php +++ /dev/null @@ -1,60 +0,0 @@ - - - -
    -
    - -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    - -
    -
    - <?php echo($screenshot['name']); ?> -
    -
    - -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/pending_users.php b/src/mibew/styles/pages/default/views/pending_users.php deleted file mode 100644 index 91b7e64e..00000000 --- a/src/mibew/styles/pages/default/views/pending_users.php +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    - -
    - - -
    - -
    - -
    -
    - - -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/performance.php b/src/mibew/styles/pages/default/views/performance.php deleted file mode 100644 index 11963db3..00000000 --- a/src/mibew/styles/pages/default/views/performance.php +++ /dev/null @@ -1,152 +0,0 @@ - - - -
    -
    - - -
    - - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/permissions.php b/src/mibew/styles/pages/default/views/permissions.php deleted file mode 100644 index aac2b0ec..00000000 --- a/src/mibew/styles/pages/default/views/permissions.php +++ /dev/null @@ -1,64 +0,0 @@ - - - -
    -
    - - -
    - - -
    - - -
    - -
    - -

    - -

    - - -
    - - - -
    - -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/resetpwd.php b/src/mibew/styles/pages/default/views/resetpwd.php deleted file mode 100644 index 10d0deac..00000000 --- a/src/mibew/styles/pages/default/views/resetpwd.php +++ /dev/null @@ -1,104 +0,0 @@ - -
    -
    -

    -
    - -
    - -
    -
    - -
    -
    - - - -
    - - - -
    - -
    -

    -
    - -
    - -

    - - - - -
    -
    -
    - -
    -
    -
    - -
    -
    -
    - -
    -
    -
    - -
    - - - - -
    - - -
    - - -
    - - - -
    - -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/restore.php b/src/mibew/styles/pages/default/views/restore.php deleted file mode 100644 index 58ccc6d5..00000000 --- a/src/mibew/styles/pages/default/views/restore.php +++ /dev/null @@ -1,90 +0,0 @@ - -
    -
    -

    -
    - -
    - -
    -
    - -
    -
    - - - -
    -
    - -
    -

    -
    - -
    - -

    - - - -
    -
    -
    - -
    -
    -
    - -
    - - - - -
    - - -
    - - -
    - -
    - -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/settings.php b/src/mibew/styles/pages/default/views/settings.php deleted file mode 100644 index 5ad2b0b1..00000000 --- a/src/mibew/styles/pages/default/views/settings.php +++ /dev/null @@ -1,176 +0,0 @@ - - - -
    -
    - - -
    - - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    -
    -
    - /> - /> -
    -
    - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/statistics.php b/src/mibew/styles/pages/default/views/statistics.php deleted file mode 100644 index fcdd82e8..00000000 --- a/src/mibew/styles/pages/default/views/statistics.php +++ /dev/null @@ -1,267 +0,0 @@ - - - -
    -
    - - -
    - - - - -
    - -
    -
    -
    -
    -
    - - - - -
    -
    - - - - -
    -
    - -
    -
    -
    -
    -
    - -
    -
    - - - - -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - -
    - - - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/themes.php b/src/mibew/styles/pages/default/views/themes.php deleted file mode 100644 index b789bb95..00000000 --- a/src/mibew/styles/pages/default/views/themes.php +++ /dev/null @@ -1,60 +0,0 @@ - - - -
    -
    - -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    - -
    -
    - <?php echo($screenshot['name']); ?> -
    -
    - -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/thread_log.php b/src/mibew/styles/pages/default/views/thread_log.php deleted file mode 100644 index ac9d97c0..00000000 --- a/src/mibew/styles/pages/default/views/thread_log.php +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - -

    - -
    -
    - -
    - : -
    -
    - userName)) ?> -
    -
    - -
    - : -
    -
    - remote)) ?> -
    -
    - -
    - : -
    -
    - userAgent)) ?> -
    -
    - - -
    - : -
    -
    - -
    -
    - - - agentName ) { ?> -
    - : -
    -
    - agentName)) ?> -
    -
    - - -
    - : -
    -
    - modified-$chatthread->created) ?> - (created) ?>) -
    -
    -
    - -
    -
    - -
    - - -
    - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/thread_search.php b/src/mibew/styles/pages/default/views/thread_search.php deleted file mode 100644 index ffb1394f..00000000 --- a/src/mibew/styles/pages/default/views/thread_search.php +++ /dev/null @@ -1,128 +0,0 @@ - - - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - -
    -
    - -

    - -
    -
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - -
    - userName)) ?> - - remote)) ?> - - agentName ) { - echo to_page(htmlspecialchars($chatthread->agentName)); - } else if($chatthread->groupId && $chatthread->groupId != 0 && isset($page['groupName'][$chatthread->groupId])) { - echo "- ".to_page(htmlspecialchars($page['groupName'][$chatthread->groupId]))." -"; - } - ?> - - messageCount)) ?> - - modified-$chatthread->created) ?>, created) ?> -
    - -
    -"; - echo generate_pagination($page['stylepath'], $page['pagination']); -} -?> - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/tracked.php b/src/mibew/styles/pages/default/views/tracked.php deleted file mode 100644 index 6a222b9d..00000000 --- a/src/mibew/styles/pages/default/views/tracked.php +++ /dev/null @@ -1,83 +0,0 @@ - - - - -

    - -
    - - -
    - -
    - : -
    -
    - - - - - -
    -
    -
    - -
    - - - - - - - - - 0) { - foreach( $page['history'] as $step ) { -?> - - - - - - -
    - - - -
    - - - -
    - -
    -
    - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/translate.php b/src/mibew/styles/pages/default/views/translate.php deleted file mode 100644 index 92ce273a..00000000 --- a/src/mibew/styles/pages/default/views/translate.php +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - -
    -
    - - -
    - - - -
    - -
    -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/translatelist.php b/src/mibew/styles/pages/default/views/translatelist.php deleted file mode 100644 index c21d6014..00000000 --- a/src/mibew/styles/pages/default/views/translatelist.php +++ /dev/null @@ -1,123 +0,0 @@ - - - -
    -
    - -
    - -
    - -
    -
    - - => - -
    - -
    -
    - -
    - -
    -
    - -
    - -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    - Key - - - - -
    - - - - - -
    - -
    -"; - echo generate_pagination($page['stylepath'], $page['pagination']); -} -?> - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/updates.php b/src/mibew/styles/pages/default/views/updates.php deleted file mode 100644 index 35692e41..00000000 --- a/src/mibew/styles/pages/default/views/updates.php +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    -
    - -
    - - -
    - -
    - -
    - - - - -

    - -
    - PHP - -
    -
    - - \ No newline at end of file diff --git a/src/mibew/styles/pages/default/views/userhistory.php b/src/mibew/styles/pages/default/views/userhistory.php deleted file mode 100644 index 239181c8..00000000 --- a/src/mibew/styles/pages/default/views/userhistory.php +++ /dev/null @@ -1,81 +0,0 @@ - - - -
    -
    - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - -
    - userName)) ?> - - remote)) ?> - - agentName ) { ?>agentName)) ?> - - modified-$chatthread->created) ?>, created) ?> -
    - -
    -"; - echo generate_pagination($page['stylepath'], $page['pagination']); -} -?> - - \ No newline at end of file