diff --git a/components/ILIAS/Administration/GlobalScreen/classes/AdministrationMainBarProvider.php b/components/ILIAS/Administration/GlobalScreen/classes/AdministrationMainBarProvider.php index cff4b674ecc5..c9f2146325d0 100755 --- a/components/ILIAS/Administration/GlobalScreen/classes/AdministrationMainBarProvider.php +++ b/components/ILIAS/Administration/GlobalScreen/classes/AdministrationMainBarProvider.php @@ -209,7 +209,7 @@ private function getGroups(): array // admin menu layout $layout = array( "maintenance" => - array("adm", "cron", "lngf", "hlps", "wfe", 'fils', 'logs', 'sysc', "recf", "root"), + array("adm", "cron", "bnmk", "lngf", "hlps", "wfe", 'fils', 'logs', 'sysc', "recf", "root"), "layout_and_navigation" => array("mme", "gsfo", "dshs", "stys", "adve"), "repository_and_objects" => diff --git a/components/ILIAS/Administration/classes/class.ilAdministrationGUI.php b/components/ILIAS/Administration/classes/class.ilAdministrationGUI.php index c54ad0c1a4e2..546a5144c018 100755 --- a/components/ILIAS/Administration/classes/class.ilAdministrationGUI.php +++ b/components/ILIAS/Administration/classes/class.ilAdministrationGUI.php @@ -94,7 +94,7 @@ public function __construct() $ilCtrl = $DIC->ctrl(); $this->lng = $lng; - $this->lng->loadLanguageModule('administration'); + $this->lng->loadLanguageModule('benchmark'); $this->tpl = $tpl; $this->tree = $tree; $this->rbacsystem = $rbacsystem; diff --git a/components/ILIAS/Benchmark/Benchmark.php b/components/ILIAS/Benchmark/Benchmark.php new file mode 100644 index 000000000000..2bbd3b3ae6f5 --- /dev/null +++ b/components/ILIAS/Benchmark/Benchmark.php @@ -0,0 +1,40 @@ + + new \ILIAS\Benchmark\Setup\Agent( + $pull[\ILIAS\Refinery\Factory::class] + ); + } +} diff --git a/components/ILIAS/Benchmark/classes/Setup/Agent.php b/components/ILIAS/Benchmark/classes/Setup/Agent.php new file mode 100644 index 000000000000..eea7547fe676 --- /dev/null +++ b/components/ILIAS/Benchmark/classes/Setup/Agent.php @@ -0,0 +1,77 @@ +refinery->identity(); + } + + public function getInstallObjective(?Config $config = null): Objective + { + return new NullObjective(); + } + + public function getUpdateObjective(?Config $config = null): Objective + { + return new ilTreeAdminNodeAddedObjective('bnmk', 'Benchmark'); + } + + public function getBuildObjective(): Objective + { + return new NullObjective(); + } + + public function getStatusObjective(Storage $storage): Objective + { + return new NullObjective(); + } + + public function getMigrations(): array + { + return []; + } + + public function getNamedObjectives(?Config $config = null): array + { + return []; + } +} diff --git a/components/ILIAS/Database/classes/class.ilBenchmark.php b/components/ILIAS/Benchmark/classes/class.ilBenchmark.php similarity index 100% rename from components/ILIAS/Database/classes/class.ilBenchmark.php rename to components/ILIAS/Benchmark/classes/class.ilBenchmark.php diff --git a/components/ILIAS/SystemFolder/classes/class.ilBenchmarkTableGUI.php b/components/ILIAS/Benchmark/classes/class.ilBenchmarkTableGUI.php similarity index 100% rename from components/ILIAS/SystemFolder/classes/class.ilBenchmarkTableGUI.php rename to components/ILIAS/Benchmark/classes/class.ilBenchmarkTableGUI.php diff --git a/components/ILIAS/Benchmark/classes/class.ilObjBenchmark.php b/components/ILIAS/Benchmark/classes/class.ilObjBenchmark.php new file mode 100644 index 000000000000..2ada8f30bb17 --- /dev/null +++ b/components/ILIAS/Benchmark/classes/class.ilObjBenchmark.php @@ -0,0 +1,29 @@ +type = self::TYPE; + } +} diff --git a/components/ILIAS/Benchmark/classes/class.ilObjBenchmarkAccess.php b/components/ILIAS/Benchmark/classes/class.ilObjBenchmarkAccess.php new file mode 100644 index 000000000000..4d3336f8ea0e --- /dev/null +++ b/components/ILIAS/Benchmark/classes/class.ilObjBenchmarkAccess.php @@ -0,0 +1,23 @@ +wrapper = $DIC->http()->wrapper(); + $this->bench = $DIC["ilBench"]; + } + + public function getType(): string + { + return ilObjBenchmark::TYPE; + } + + public function executeCommand(): void + { + $this->checkPermission('read'); + + $this->lng->loadLanguageModule($this->getType()); + $this->prepareOutput(); + + switch ($this->ctrl->getNextClass($this)) { + case strtolower(ilPermissionGUI::class): + $this->tabs_gui->activateTab('permissions'); + $perm_gui = new ilPermissionGUI($this); + $this->ctrl->forwardCommand($perm_gui); + break; + + default: + $cmd = $this->ctrl->getCmd("view"); + switch ($cmd) { + case 'settings': + case 'update': + $this->tabs_gui->activateTab('settings'); + $this->checkPermission('write'); + $this->$cmd(); + break; + + case 'view': + case 'slowest_first': + case 'sorted_by_sql': + case 'by_first_table': + $this->getViewSubtabs(); + $this->tabs_gui->activateTab('view'); + $this->tabs_gui->activateSubTab($cmd); + $this->view(); + break; + } + } + } + + public function getAdminTabs(): void + { + $this->tabs_gui->addTab( + 'view', + $this->lng->txt('view'), + $this->ctrl->getLinkTarget($this, 'view') + ); + + if ($this->checkPermissionBool('write')) { + $this->tabs_gui->addTab( + 'settings', + $this->lng->txt('settings'), + $this->ctrl->getLinkTarget($this, 'settings') + ); + } + if ($this->checkPermissionBool('edit_permission')) { + $this->tabs_gui->addTab( + 'permissions', + $this->lng->txt('perm_settings'), + $this->ctrl->getLinkTargetByClass([self::class, ilPermissionGUI::class], 'perm') + ); + } + } + + private function getViewSubtabs(): void + { + $this->tabs_gui->addSubTab( + 'view', + $this->lng->txt('adm_db_bench_chronological'), + $this->ctrl->getLinkTarget($this, 'view') + ); + + $this->tabs_gui->addSubTab( + 'slowest_first', + $this->lng->txt('adm_db_bench_slowest_first'), + $this->ctrl->getLinkTarget($this, 'slowest_first') + ); + + $this->tabs_gui->addSubTab( + 'sorted_by_sql', + $this->lng->txt('adm_db_bench_sorted_by_sql'), + $this->ctrl->getLinkTarget($this, 'sorted_by_sql') + ); + + $this->tabs_gui->addSubTab( + 'by_first_table', + $this->lng->txt('adm_db_bench_by_first_table'), + $this->ctrl->getLinkTarget($this, 'by_first_table') + ); + } + + private function settings(): void + { + $this->form = new ilPropertyFormGUI(); + + // Activate DB Benchmark + $cb = new ilCheckboxInputGUI($this->lng->txt("adm_activate_db_benchmark"), ilBenchmark::ENABLE_DB_BENCH); + $cb->setChecked((bool) $this->settings->get(ilBenchmark::ENABLE_DB_BENCH)); + $cb->setInfo($this->lng->txt("adm_activate_db_benchmark_desc")); + $this->form->addItem($cb); + + // DB Benchmark User + $ti = new ilTextInputGUI($this->lng->txt("adm_db_benchmark_user"), ilBenchmark::DB_BENCH_USER); + $login = ilObjUser::_lookupLogin((int) ($this->settings->get(ilBenchmark::DB_BENCH_USER))); + $ti->setValue($login); + $ti->setInfo($this->lng->txt("adm_db_benchmark_user_desc")); + $this->form->addItem($ti); + + $this->form->setTitle($this->lng->txt("adm_db_benchmark")); + $this->form->setFormAction($this->ctrl->getFormAction($this)); + $this->form->addCommandButton('update', $this->lng->txt('save')); + + $this->tpl->setContent($this->form->getHTML()); + } + + public function update(): void + { + if ($this->wrapper->post()->has(ilBenchmark::ENABLE_DB_BENCH) + && $this->wrapper->post()->has(ilBenchmark::DB_BENCH_USER)) { + $activate = $this->wrapper->post()->retrieve(ilBenchmark::ENABLE_DB_BENCH, $this->refinery->kindlyTo()->bool()); + if ($activate) { + $user_name = $this->wrapper->post()->retrieve(ilBenchmark::DB_BENCH_USER, $this->refinery->kindlyTo()->string()); + $this->bench->clearData(); + $this->bench->enableDbBenchmarkForUserName($user_name); + } + } else { + $this->bench->clearData(); + $this->bench->disableDbBenchmark(); + } + + $this->tpl->setOnScreenMessage('success', $this->lng->txt("msg_obj_modified"), true); + $this->ctrl->redirect($this, 'settings'); + } + + public function view(): void + { + $cmd = $this->ctrl->getCmd("view"); + $mode = $cmd === 'view' ? 'chronological' : $cmd; + + $table = new ilBenchmarkTableGUI($this, $cmd, $this->bench->getDbBenchRecords(), $mode); + $this->tpl->setContent($table->getHTML()); + } +} diff --git a/components/ILIAS/Benchmark/service.xml b/components/ILIAS/Benchmark/service.xml new file mode 100644 index 000000000000..6f43aad08c86 --- /dev/null +++ b/components/ILIAS/Benchmark/service.xml @@ -0,0 +1,11 @@ + + + + + + + adm + + + + diff --git a/components/ILIAS/SystemFolder/classes/class.ilObjSystemFolderGUI.php b/components/ILIAS/SystemFolder/classes/class.ilObjSystemFolderGUI.php index 079121b3a226..96e490039f6c 100755 --- a/components/ILIAS/SystemFolder/classes/class.ilObjSystemFolderGUI.php +++ b/components/ILIAS/SystemFolder/classes/class.ilObjSystemFolderGUI.php @@ -43,7 +43,6 @@ class ilObjSystemFolderGUI extends ilObjectGUI protected ilStyleDefinition $style_definition; protected ilHelpGUI $help; protected ilIniFile $client_ini; - protected ilBenchmark $bench; public string $type; protected \ILIAS\HTTP\Wrapper\WrapperFactory $wrapper; protected \ILIAS\Refinery\Factory $refinery; @@ -73,7 +72,6 @@ public function __construct($a_data, $a_id, $a_call_by_reference) $this->toolbar = $DIC->toolbar(); $this->client_ini = $DIC["ilClientIniFile"]; $this->type = "adm"; - $this->bench = $DIC["ilBench"]; $this->wrapper = $DIC->http()->wrapper(); $this->refinery = $DIC->refinery(); parent::__construct($a_data, $a_id, $a_call_by_reference, false); @@ -159,200 +157,6 @@ public function cancelObject(): void $this->ctrl->redirect($this, "view"); } - - /** - * Benchmark settings - */ - public function benchmarkObject(): void - { - if (!$this->rbacsystem->checkAccess("visible,read", $this->object->getRefId())) { - $this->error->raiseError($this->lng->txt("permission_denied"), $this->error->MESSAGE); - } - - $write_access = $this->rbacsystem->checkAccess("write", $this->object->getRefId()); - - $this->benchmarkSubTabs("settings"); - - $this->form = new ilPropertyFormGUI(); - - // Activate DB Benchmark - $cb = new ilCheckboxInputGUI($this->lng->txt("adm_activate_db_benchmark"), ilBenchmark::ENABLE_DB_BENCH); - $cb->setChecked((bool) $this->settings->get(ilBenchmark::ENABLE_DB_BENCH)); - $cb->setInfo($this->lng->txt("adm_activate_db_benchmark_desc")); - $cb->setDisabled(!$write_access); - $this->form->addItem($cb); - - // DB Benchmark User - $ti = new ilTextInputGUI($this->lng->txt("adm_db_benchmark_user"), ilBenchmark::DB_BENCH_USER); - $user_id = ($this->settings->get(ilBenchmark::DB_BENCH_USER)) ?? null; - if ($user_id !== null && ilObjUser::_lookupLogin((int) $user_id) !== '') { - $ti->setValue(ilObjUser::_lookupLogin($user_id)); - } else { - $ti->setValue(''); - } - $ti->setInfo($this->lng->txt("adm_db_benchmark_user_desc")); - $ti->setDisabled(!$write_access); - $this->form->addItem($ti); - - if ($write_access) { - $this->form->addCommandButton("saveBenchSettings", $this->lng->txt("save")); - } - - $this->form->setTitle($this->lng->txt("adm_db_benchmark")); - $this->form->setFormAction($this->ctrl->getFormAction($this)); - - $this->tpl->setContent($this->form->getHTML()); - } - - /** - * Show db benchmark results - */ - public function showDbBenchChronologicalObject(): void - { - $this->benchmarkSubTabs("chronological"); - $this->showDbBenchResults("chronological"); - } - - /** - * Show db benchmark results - */ - public function showDbBenchSlowestFirstObject(): void - { - $this->benchmarkSubTabs("slowest_first"); - $this->showDbBenchResults("slowest_first"); - } - - /** - * Show db benchmark results - */ - public function showDbBenchSortedBySqlObject(): void - { - $this->benchmarkSubTabs("sorted_by_sql"); - $this->showDbBenchResults("sorted_by_sql"); - } - - /** - * Show db benchmark results - */ - public function showDbBenchByFirstTableObject(): void - { - $this->benchmarkSubTabs("by_first_table"); - $this->showDbBenchResults("by_first_table"); - } - - /** - * Show Db Benchmark Results - * - * @param string mode - */ - public function showDbBenchResults($a_mode): void - { - $tpl = $this->tpl; - - $ilBench = $this->bench; - $rec = $ilBench->getDbBenchRecords(); - - $table = new ilBenchmarkTableGUI($this, "benchmark", $rec, $a_mode); - $tpl->setContent($table->getHTML()); - } - - /** - * Benchmark sub tabs - * - * @param - * @return - */ - public function benchmarkSubTabs($a_current): void - { - $ilTabs = $this->tabs; - $lng = $this->lng; - $ilCtrl = $this->ctrl; - - $ilBench = $this->bench; - $ilTabs->activateTab("benchmarks"); // #18083 - - $ilTabs->addSubtab( - "settings", - $lng->txt("settings"), - $ilCtrl->getLinkTarget($this, "benchmark") - ); - - $rec = $ilBench->getDbBenchRecords(); - if ($rec !== []) { - $ilTabs->addSubtab( - "chronological", - $lng->txt("adm_db_bench_chronological"), - $ilCtrl->getLinkTarget($this, "showDbBenchChronological") - ); - $ilTabs->addSubtab( - "slowest_first", - $lng->txt("adm_db_bench_slowest_first"), - $ilCtrl->getLinkTarget($this, "showDbBenchSlowestFirst") - ); - $ilTabs->addSubtab( - "sorted_by_sql", - $lng->txt("adm_db_bench_sorted_by_sql"), - $ilCtrl->getLinkTarget($this, "showDbBenchSortedBySql") - ); - $ilTabs->addSubtab( - "by_first_table", - $lng->txt("adm_db_bench_by_first_table"), - $ilCtrl->getLinkTarget($this, "showDbBenchByFirstTable") - ); - } - - $ilTabs->activateSubTab($a_current); - } - - - /** - * Save benchmark settings - */ - public function saveBenchSettingsObject(): void - { - $write_access = $this->rbacsystem->checkAccess("write", $this->object->getRefId()); - if (!$write_access) { - $this->error->raiseError($this->lng->txt("permission_denied"), $this->error->MESSAGE); - return; - } - - if ($this->wrapper->post()->has(ilBenchmark::ENABLE_DB_BENCH) - && $this->wrapper->post()->has(ilBenchmark::DB_BENCH_USER)) { - $activate = $this->wrapper->post()->retrieve(ilBenchmark::ENABLE_DB_BENCH, $this->refinery->kindlyTo()->bool()); - if ($activate) { - $user_name = $this->wrapper->post()->retrieve(ilBenchmark::DB_BENCH_USER, $this->refinery->kindlyTo()->string()); - $this->bench->enableDbBenchmarkForUserName($user_name); - } - } else { - $this->bench->disableDbBenchmark(); - } - - $this->tpl->setOnScreenMessage('success', $this->lng->txt("msg_obj_modified"), true); - - $this->ctrl->redirect($this, "benchmark"); - } - - - /** - * save benchmark settings - */ - public function switchBenchModuleObject(): void - { - $this->ctrl->setParameter($this, 'cur_mod', $_POST['module']); - $this->ctrl->redirect($this, "benchmark"); - } - - - /** - * delete all benchmark records - */ - public function clearBenchObject(): void - { - $ilBench = $this->bench; - $ilBench->clearData(); - $this->saveBenchSettingsObject(); - } - // get tabs public function getAdminTabs(): void { @@ -383,15 +187,6 @@ public function getAdminTabs(): void ); } - if ($rbacsystem->checkAccess('visible,read', $this->object->getRefId())) { - $this->tabs_gui->addTarget( - 'benchmarks', - $this->ctrl->getLinkTarget($this, 'benchmark'), - 'benchmark', - get_class($this) - ); - } - if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId())) { $this->tabs_gui->addTarget( "perm_settings", diff --git a/lang/ilias_de.lang b/lang/ilias_de.lang index 936065aadeed..47a1c2bbb33b 100644 --- a/lang/ilias_de.lang +++ b/lang/ilias_de.lang @@ -79,20 +79,11 @@ adm#:#adm_awrn_support_contacts_info#:#Alle Benutzer für die technische Betreuu adm#:#adm_support_contacts#:#Technische Betreuung adm#:#adm_support_contacts_info#:#Bitte tragen Sie hier komma-separiert die Anmeldenamen der Personen ein, die bei Fragen und technischen Problemen kontaktiert werden können. Die Kontaktaufnahme erfolgt per Mail über den Link „Technische Betreuung kontaktieren“ im Footer von ILIAS. Ist die „Wer ist online?“-Anzeige aktiv, werden diese Personen auch dort als technische Betreuung angezeigt. administration#:#adm_achievements#:#Lernerfolge -administration#:#adm_activate_db_benchmark#:#Messung aktivieren -administration#:#adm_activate_db_benchmark_desc#:#Die Messung wird automatisch nach einem Server-Request beendet. administration#:#adm_adm_role_protect#:#Rolle „Administration“ schützen administration#:#adm_adm_role_protect_info#:#Nur Personen, welche selbst die Rolle „Administration“ inne haben, können weitere ILIAS-Konten in diese Rolle eintragen. administration#:#adm_auth_login#:#Authentifizierung Login administration#:#adm_auth_reg#:#Authentifizierung Registrierung administration#:#adm_communication#:#Kommunikation -administration#:#adm_db_bench_by_first_table#:#Aggregiert nach dem ersten Tabellennamen -administration#:#adm_db_bench_chronological#:#Chronologisch -administration#:#adm_db_bench_slowest_first#:#Langsamste zuerst -administration#:#adm_db_bench_sorted_by_sql#:#Nach SQL sortieren -administration#:#adm_db_benchmark#:#Datenbank Benchmark -administration#:#adm_db_benchmark_user#:#Anmeldename -administration#:#adm_db_benchmark_user_desc#:#Für dieses ILIAS-Konto wird die Messung durchgeführt. Aktivieren Sie diese Funktion nicht für Ihr eigenes Konto. administration#:#adm_extending_ilias#:#ILIAS erweitern administration#:#adm_external_setting_edit#:#Einstellungen bearbeiten administration#:#adm_hide#:#Im Einstellungsformular ausblenden @@ -127,9 +118,7 @@ administration#:#adm_repository_and_objects#:#Magazin und Objekte administration#:#adm_search_and_find#:#Suchen und finden administration#:#adm_show_comments_tagging_in_lists#:#Anzahl der Notizen, Kommentare und Tags in Objektlisten anzeigen administration#:#adm_show_comments_tagging_in_lists_tags#:#Einzelne Tags anstatt Anzahl auflisten -administration#:#adm_sql#:#SQL administration#:#adm_table#:#Tabelle -administration#:#adm_time#:#Zeit administration#:#adm_user_administration#:#Konten und Rollen administration#:#adm_user_starting_point#:#Persönliche Startseite administration#:#adm_user_starting_point_info#:#Wählen Sie die Seite oder Objekt, welche nach dem Login gezeigt wird. @@ -2289,6 +2278,17 @@ badge#:#sort_by_title_desc#:#Titel, absteigend badge#:#table_view#:#Tabelle badge#:#tile_view#:#Kacheln badge#:#valid_until#:#Gültig bis +benchmark#:#adm_activate_db_benchmark#:#Messung aktivieren +benchmark#:#adm_activate_db_benchmark_desc#:#Die Messung wird automatisch nach einem Server-Request beendet. +benchmark#:#adm_db_bench_by_first_table#:#Aggregiert nach dem ersten Tabellennamen +benchmark#:#adm_db_bench_chronological#:#Chronologisch +benchmark#:#adm_db_bench_slowest_first#:#Langsamste zuerst +benchmark#:#adm_db_bench_sorted_by_sql#:#Nach SQL sortieren +benchmark#:#adm_db_benchmark#:#Datenbank Benchmark +benchmark#:#adm_db_benchmark_user#:#Anmeldename +benchmark#:#adm_db_benchmark_user_desc#:#Für dieses ILIAS-Konto wird die Messung durchgeführt. Aktivieren Sie diese Funktion nicht für Ihr eigenes Konto. +benchmark#:#adm_sql#:#SQL +benchmark#:#adm_time#:#Zeit bgtask#:#bgtask_blocked#:#Laufender Download bgtask#:#bgtask_blocked_cancel_new#:#Neuen Download abbrechen bgtask#:#bgtask_blocked_cancel_old#:#Laufenden Download abbrechen @@ -3611,8 +3611,6 @@ common#:#basedn#:#BaseDN common#:#basic_settings#:#Grundeinstellungen common#:#before#:#vor common#:#behind#:#Nach -common#:#benchmark#:#Benchmark -common#:#benchmarks#:#Benchmarks common#:#bib_data#:#Bibliographische Daten common#:#bibl_add#:#Literaturliste anlegen common#:#birthday#:#Geburtstag @@ -4868,6 +4866,8 @@ common#:#obj_bibs#:#Literaturliste common#:#obj_bibs_desc#:#Literaturlisten-Administration common#:#obj_blog#:#Blog common#:#obj_blog_duplicate#:#Blog kopieren +common#:#obj_bnmk#:#Benchmarking +common#:#obj_bnmk_desc#:#Aufzeichnung und Auswertung der Dauer von Datenbankabfragen common#:#obj_book#:#Buchungspool common#:#obj_cadm#:#Benutzerkontakte common#:#obj_cadm_desc#:#Administration für Benutzerkontakte diff --git a/lang/ilias_en.lang b/lang/ilias_en.lang index 8e42198b1336..ec89cf712030 100644 --- a/lang/ilias_en.lang +++ b/lang/ilias_en.lang @@ -79,20 +79,11 @@ adm#:#adm_awrn_support_contacts_info#:#All users assigned as contacts for techni adm#:#adm_support_contacts#:#Technical Support adm#:#adm_support_contacts_info#:#Please enter the login names of the people who can be contacted with questions and technical problems here, separated by commas. They can be contacted by e-mail via the "Contact technical support" link in the ILIAS footer. If the "Who is online?" display is active, these people will also be displayed there as technical support. administration#:#adm_achievements#:#Achievements -administration#:#adm_activate_db_benchmark#:#Activate Benchmarking -administration#:#adm_activate_db_benchmark_desc#:#Benchmarking will be automatically disabled after one request. administration#:#adm_adm_role_protect#:#Protect Administrator Role administration#:#adm_adm_role_protect_info#:#Only allow administrators to assign or remove users from the role of administrator. administration#:#adm_auth_login#:#Authentication Login administration#:#adm_auth_reg#:#Authentication Registration administration#:#adm_communication#:#Communication -administration#:#adm_db_bench_by_first_table#:#Aggregated by First Table in SQL -administration#:#adm_db_bench_chronological#:#Chronological -administration#:#adm_db_bench_slowest_first#:#Slowest First -administration#:#adm_db_bench_sorted_by_sql#:#Sorted by SQL -administration#:#adm_db_benchmark#:#DB Benchmark -administration#:#adm_db_benchmark_user#:#User Account Name -administration#:#adm_db_benchmark_user_desc#:#Measurements will be made for this user only. The username entered should not belong to the user initiating the benchmarking. administration#:#adm_extending_ilias#:#Extending ILIAS administration#:#adm_external_setting_edit#:#Edit Settings administration#:#adm_hide#:#Hide in Settings Form @@ -127,9 +118,7 @@ administration#:#adm_repository_and_objects#:#Repository and Objects administration#:#adm_search_and_find#:#Search and Find administration#:#adm_show_comments_tagging_in_lists#:#Show Number of Notes, Comments and Tags in Object Lists administration#:#adm_show_comments_tagging_in_lists_tags#:#Display tags instead of number -administration#:#adm_sql#:#SQL administration#:#adm_table#:#Table -administration#:#adm_time#:#Time administration#:#adm_user_administration#:#Users and Roles administration#:#adm_user_starting_point#:#Personal Starting Point administration#:#adm_user_starting_point_info#:#Select the page or object which is to be shown after login. @@ -2290,6 +2279,17 @@ badge#:#sort_by_title_desc#:#Title Descending badge#:#table_view#:#Table View badge#:#tile_view#:#Tile View badge#:#valid_until#:#Valid until +benchmark#:#adm_activate_db_benchmark#:#Activate Benchmarking +benchmark#:#adm_activate_db_benchmark_desc#:#Benchmarking will be automatically disabled after one request. +benchmark#:#adm_db_bench_by_first_table#:#Aggregated by First Table in SQL +benchmark#:#adm_db_bench_chronological#:#Chronological +benchmark#:#adm_db_bench_slowest_first#:#Slowest First +benchmark#:#adm_db_bench_sorted_by_sql#:#Sorted by SQL +benchmark#:#adm_db_benchmark#:#DB Benchmark +benchmark#:#adm_db_benchmark_user#:#User Account Name +benchmark#:#adm_db_benchmark_user_desc#:#Measurements will be made for this user only. The username entered should not belong to the user initiating the benchmarking. +benchmark#:#adm_sql#:#SQL +benchmark#:#adm_time#:#Time bgtask#:#bgtask_blocked#:#Concurrent download bgtask#:#bgtask_blocked_cancel_new#:#Cancel new download bgtask#:#bgtask_blocked_cancel_old#:#Cancel existing download @@ -3611,8 +3611,6 @@ common#:#basedn#:#BaseDN common#:#basic_settings#:#Basic Settings common#:#before#:#Before common#:#behind#:#Behind -common#:#benchmark#:#Benchmark -common#:#benchmarks#:#Benchmarks common#:#bib_data#:#Bibliographical Data common#:#bibl_add#:#Add Bibliography common#:#birthday#:#Birthday @@ -4868,6 +4866,8 @@ common#:#obj_bibs#:#Bibliography common#:#obj_bibs_desc#:#Bibliography Administration common#:#obj_blog#:#Blog common#:#obj_blog_duplicate#:#Copy Blog +common#:#obj_bnmk#:#Benchmarking +common#:#obj_bnmk_desc#:#Recording and display of database query durations common#:#obj_book#:#Booking Pool common#:#obj_cadm#:#Contacts common#:#obj_cadm_desc#:#Contacts Administration