diff --git a/src/mibew/libs/classes/Mibew/Controller/UsersController.php b/src/mibew/libs/classes/Mibew/Controller/UsersController.php new file mode 100644 index 00000000..51b9d6af --- /dev/null +++ b/src/mibew/libs/classes/Mibew/Controller/UsersController.php @@ -0,0 +1,97 @@ +attributes->get('_operator'); + $status = $request->query->has('away') ? 1 : 0; + + notify_operator_alive($operator['operatorid'], $status); + + $_SESSION[SESSION_PREFIX . "operatorgroups"] = get_operator_groups_list($operator['operatorid']); + + $page = array(); + $page['havemenu'] = !$request->query->has('nomenu'); + $page['showpopup'] = (Settings::get('enablepopupnotification') == '1') ? "1" : "0"; + $page['frequency'] = Settings::get('updatefrequency_operator'); + $page['istatus'] = $status; + $page['showonline'] = (Settings::get('showonlineoperators') == '1') ? "1" : "0"; + $page['showvisitors'] = (Settings::get('enabletracking') == '1') ? "1" : "0"; + $page['agentId'] = $operator['operatorid']; + $page['geoLink'] = Settings::get('geolink'); + $page['geoWindowParams'] = Settings::get('geolinkparams'); + + // Load dialogs style options + $chat_style = new ChatStyle(ChatStyle::getCurrentStyle()); + $style_config = $chat_style->getConfigurations(); + $page['chatStyles.chatWindowParams'] = $style_config['chat']['window_params']; + $page['coreStyles.inviteWindowParams'] = $style_config['chat']['window_params']; + + // Load page style options + $style_config = $this->getStyle()->getConfigurations(); + $page['coreStyles.threadTag'] = $style_config['users']['thread_tag']; + $page['coreStyles.visitorTag'] = $style_config['users']['visitor_tag']; + $page['coreStyles.trackedUserWindowParams'] = $style_config['tracked']['user_window_params']; + $page['coreStyles.trackedVisitorWindowParams'] = $style_config['tracked']['visitor_window_params']; + $page['coreStyles.banWindowParams'] = $style_config['ban']['window_params']; + + $page['title'] = getlocal("clients.title"); + $page['menuid'] = "users"; + + // Get additional plugins data + $page = array_merge($page, get_plugins_data('users')); + $page = array_merge($page, prepare_menu($operator)); + + return $this->render('users', $page); + } + + /** + * Generate content for "users_update" route. + * + * @param Request $request + * @return string Rendered page content + */ + public function updateAction(Request $request) + { + $processor = UsersProcessor::getInstance(); + // TODO: Remove bufferization after *Processor classes will be rewritten + // to play nice with symfony request/response objects + ob_start(); + $processor->receiveRequest($request->request->get('data')); + $content = ob_get_clean(); + + return $content; + } +} diff --git a/src/mibew/libs/operator.php b/src/mibew/libs/operator.php index fc21b083..f354523d 100644 --- a/src/mibew/libs/operator.php +++ b/src/mibew/libs/operator.php @@ -774,7 +774,7 @@ function prepare_menu($operator, $has_right = true) $result['operator'] = to_page(get_operator_name($operator)); $result['goOnlineLink'] = getlocal2( "menu.goonline", - array(MIBEW_WEB_ROOT . "/operator/users.php?nomenu") + array(MIBEW_WEB_ROOT . "/operator/users?nomenu") ); if ($has_right) { $result['showban'] = Settings::get('enableban') == "1"; diff --git a/src/mibew/libs/routing.yml b/src/mibew/libs/routing.yml index f2103678..e2599ef8 100644 --- a/src/mibew/libs/routing.yml +++ b/src/mibew/libs/routing.yml @@ -17,3 +17,15 @@ updates: defaults: _controller: Mibew\Controller\UpdatesController::indexAction _access_check: Mibew\AccessControl\Check\LoggedInCheck + +users: + path: /operator/users + defaults: + _controller: Mibew\Controller\UsersController::indexAction + _access_check: Mibew\AccessControl\Check\LoggedInCheck + +users_update: + path: /operator/users/update + defaults: + _controller: Mibew\Controller\UsersController::updateAction + _access_check: Mibew\AccessControl\Check\LoggedInCheck diff --git a/src/mibew/operator/update.php b/src/mibew/operator/update.php deleted file mode 100644 index f52095e0..00000000 --- a/src/mibew/operator/update.php +++ /dev/null @@ -1,21 +0,0 @@ -receiveRequest($_POST['data']); diff --git a/src/mibew/operator/users.php b/src/mibew/operator/users.php deleted file mode 100644 index 885f7558..00000000 --- a/src/mibew/operator/users.php +++ /dev/null @@ -1,69 +0,0 @@ -getConfigurations(); -$page['chatStyles.chatWindowParams'] = $style_config['chat']['window_params']; -$page['coreStyles.inviteWindowParams'] = $style_config['chat']['window_params']; - -// Load page style options -$page_style = new PageStyle(PageStyle::getCurrentStyle()); -$style_config = $page_style->getConfigurations(); -$page['coreStyles.threadTag'] = $style_config['users']['thread_tag']; -$page['coreStyles.visitorTag'] = $style_config['users']['visitor_tag']; -$page['coreStyles.trackedUserWindowParams'] = $style_config['tracked']['user_window_params']; -$page['coreStyles.trackedVisitorWindowParams'] = $style_config['tracked']['visitor_window_params']; -$page['coreStyles.banWindowParams'] = $style_config['ban']['window_params']; - -$page['title'] = getlocal("clients.title"); -$page['menuid'] = "users"; - -// Get additional plugins data -$page = array_merge($page, get_plugins_data('users')); - -$page = array_merge($page, prepare_menu($operator)); - -$page_style->render('users', $page); 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 index 26ab271e..b102f801 100644 --- a/src/mibew/styles/pages/default/templates_src/server_side/_menu.handlebars +++ b/src/mibew/styles/pages/default/templates_src/server_side/_menu.handlebars @@ -13,7 +13,7 @@